RESOLVED MOVED 255169
AX: computedrole through webdriver crashes for <area> and <optgroup> elements
https://bugs.webkit.org/show_bug.cgi?id=255169
Summary AX: computedrole through webdriver crashes for <area> and <optgroup> elements
James Craig
Reported 2023-04-07 14:35:45 PDT
Created attachment 465813 [details] wpt test case AX: computedrole through webdriver crashes for <area> and <optgroup> elements Not yet sure if this is a bug in webdriver or in webcore/accessibility. Attached test case crashes in a WPT environment, and the elements are rendered in any context.
Attachments
wpt test case (1.34 KB, text/html)
2023-04-07 14:35 PDT, James Craig
no flags
James Craig
Comment 1 2023-04-07 14:35:55 PDT
% python3 ./wpt run --log-mach-level debug --log-mach - --webdriver-arg="--diagnose" safari /html-aam/webkit-computedrole-crashes.html 0:00.02 INFO Set tests_root to /path-redacted/wpt 0:00.02 INFO Set metadata_root to /path-redacted/wpt 0:00.02 INFO Set manifest_update to True 0:00.02 INFO Set manifest_download to True 0:00.03 INFO Interpreting channel 'nightly' as 'preview' 0:00.39 vcs DEBUG git rev-parse --show-toplevel 0:00.41 vcs DEBUG git rev-parse --show-cdup 0:00.42 vcs DEBUG git rev-parse HEAD 0:05.98 INFO Using 1 client processes 0:07.17 wptserve INFO Starting http server on http://web-platform.test:8000 0:07.59 wptserve INFO Starting http server on http://web-platform.test:8001 0:08.02 wptserve INFO Starting http server on http://web-platform.test:8002 0:08.45 wptserve INFO Starting http server on http://web-platform.test:8003 0:08.88 wptserve INFO Starting https server on https://web-platform.test:8443 0:09.31 wptserve INFO Starting https server on https://web-platform.test:8444 0:09.75 wptserve INFO Starting https server on https://web-platform.test:8445 0:10.19 wptserve INFO Starting https server on https://web-platform.test:8446 0:10.75 wptserve INFO Create socket on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888)) 0:10.75 wptserve INFO Bind on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888)) 0:10.75 wptserve INFO Listen on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888)) 0:11.05 wptserve INFO Create socket on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889)) 0:11.05 wptserve INFO Bind on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889)) 0:11.06 wptserve INFO Listen on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889)) 0:11.49 wptserve INFO Starting http2 server on https://web-platform.test:9000 0:11.97 SUITE_START: web-platform-test - running 1 tests 0:11.98 DEBUG using acceptInsecureCerts=True 0:11.98 DEBUG using acceptInsecureCerts=True 0:11.98 DEBUG using acceptInsecureCerts=True 0:11.98 DEBUG using acceptInsecureCerts=True 0:11.98 WARNING Unsupported test type print-reftest for product safari 0:11.98 DEBUG Using 1 processes 0:11.98 DEBUG Dispatch start_init 0:11.98 DEBUG new state: initializing 0:11.98 DEBUG Dispatch init 0:11.98 DEBUG WebDriver executable path: /Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver 0:11.98 DEBUG Safari executable path: /Applications/Safari Technology Preview.app/Contents/MacOS/../../Contents/MacOS/Safari Technology Preview 0:11.98 DEBUG Init called, starting browser and runner 0:11.98 DEBUG Starting browser with settings {'pac': None} 0:11.98 DEBUG Starting WebDriver: /Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver --port=59566 --diagnose 0:11.99 DEBUG OutputHandler.after_process_start 0:11.99 DEBUG Trying to connect to 127.0.0.1:59566 0:12.50 DEBUG Connected to 127.0.0.1:59566 0:12.50 DEBUG OutputHandler.start 0:12.50 DEBUG _run complete 0:12.50 INFO Starting runner 0:12.50 DEBUG Test runner started 0:13.12 DEBUG Got command: 'log' 0:13.12 DEBUG Executor setup 0:13.12 DEBUG Got command: 'log' 0:13.12 DEBUG Connecting to WebDriver on URL: http://127.0.0.1:59566/ 0:14.12 DEBUG Got command: 'log' 0:14.12 DEBUG Loading http://web-platform.test:8000/testharness_runner.html 0:14.23 DEBUG Got command: 'init_succeeded' 0:14.23 DEBUG new state: running 0:14.24 DEBUG Dispatch run_test 0:14.24 TEST_START: /html-aam/webkit-computedrole-crashes.html 0:14.24 DEBUG Got command: 'log' 0:14.23 DEBUG Executor setup done 0:14.51 DEBUG Got command: 'log' 0:14.51 DEBUG Got async callback: action 0:14.51 DEBUG Got command: 'log' 0:14.51 DEBUG Got action: get_computed_role 0:14.51 DEBUG Got command: 'log' 0:14.51 DEBUG Getting computed role for element: <Element node-E4F11A51-D051-47A7-9071-FE73B69965CC> 0:14.52 DEBUG Got command: 'log' 0:14.52 WARNING Action get_computed_role failed 0:14.52 DEBUG Got command: 'log' 0:14.52 WARNING Traceback (most recent call last): File "/path-redacted/wpt/tools/wptrunner/wptrunner/executors/base.py", line 741, in process_action result = action_handler(payload) File "/path-redacted/wpt/tools/wptrunner/wptrunner/executors/actions.py", line 66, in __call__ return self.protocol.accessibility.get_computed_role(element) File "/path-redacted/wpt/tools/wptrunner/wptrunner/executors/executorwebdriver.py", line 198, in get_computed_role return element.get_computed_role() File "/path-redacted/wpt/tools/webdriver/webdriver/client.py", line 22, in inner return func(self, *args, **kwargs) File "/path-redacted/wpt/tools/webdriver/webdriver/client.py", line 901, in get_computed_role return self.send_element_command("GET", "computedrole") File "/path-redacted/wpt/tools/webdriver/webdriver/client.py", line 834, in send_element_command return self.session.send_session_command(method, url, body) File "/path-redacted/wpt/tools/webdriver/webdriver/client.py", line 661, in send_session_command return self.send_command(method, url, body, timeout) File "/path-redacted/wpt/tools/webdriver/webdriver/client.py", line 625, in send_command raise err webdriver.error.UnknownErrorException: unknown error (500): 0:14.53 DEBUG Got command: 'test_ended' 0:14.53 TEST_END: CRASH, expected OK 0:14.53 INFO No more tests 0:14.53 DEBUG new state: stop 0:14.53 DEBUG TestRunnerManager main loop terminating, starting cleanup 0:14.53 DEBUG Stopping WebDriver 0:14.57 DEBUG OutputHandler.after_process_stop 0:14.57 DEBUG ensure_runner_stopped 0:14.57 DEBUG Stopping WebDriver 0:14.57 DEBUG waiting for runner process to end 0:14.57 DEBUG After join 0:14.57 DEBUG Runner process exited with code 0 0:14.57 DEBUG TestRunnerManager cleanup 0:14.53 DEBUG Hanging up on WebDriver session 0:14.53 INFO Closing logging queue 0:14.53 INFO queue closed 0:14.57 DEBUG TestRunnerManager teardown 0:14.57 DEBUG Stopping WebDriver 0:14.57 DEBUG TestRunnerManager main loop terminated 0:14.57 DEBUG Stop flag set in ManagerGroup 0:14.57 SUITE_END web-platform-test ~~~~~~~~~~~~~~~~~ Ran 1 checks (1 tests) Expected results: 0 Unexpected results: 1 test: 1 (1 crash) Unexpected Results ------------------ CRASH /html-aam/webkit-computedrole-crashes.html 0:14.57 INFO Got 1 unexpected results, with 0 unexpected passes 0:14.97 wptserve INFO Stopped http server on web-platform.test:8000 0:14.97 wptserve INFO Stopped http server on web-platform.test:8001 0:14.97 wptserve INFO Stopped http server on web-platform.test:8003 0:14.99 wptserve INFO Stopped http server on web-platform.test:8002 0:14.99 wptserve INFO Stopped http server on web-platform.test:8444 0:14.99 wptserve INFO Stopped http server on web-platform.test:8446 0:14.99 wptserve INFO Stopped http server on web-platform.test:8445 0:14.99 wptserve INFO Stopped http server on web-platform.test:8443 0:15.01 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889)) 0:15.02 wptserve INFO Stopped http server on web-platform.test:9000 0:15.02 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888)) 0:15.07 INFO Closing logging queue 0:15.07 INFO queue closed
Radar WebKit Bug Importer
Comment 2 2023-04-07 14:35:59 PDT
James Craig
Comment 3 2023-04-07 14:37:08 PDT
Found as part of Interop 2023 Accessibility Investigation for HTML-AAM role tests: https://github.com/web-platform-tests/wpt/pull/39427
James Craig
Comment 4 2023-04-07 14:51:08 PDT
Starting with Accessibility, since each of these elements is rendered as a portion of another element, it seems like the backing AccessibilityObject likely doesn't have a RenderObject.
James Craig
Comment 5 2023-04-07 14:51:41 PDT
But kick over to WebDriver if needed.
James Craig
Comment 6 2023-04-19 14:47:39 PDT
similar crash today when getting computedlabel for dialog:not([open])
James Craig
Comment 7 2023-04-19 14:52:15 PDT
The fragile HTML-AAM tests landed by the way, so repro on wpt/main is now: python3 ./wpt run --log-mach-level debug --log-mach - --webdriver-arg="--diagnose" safari html-aam/fragile/area-role.html or python3 ./wpt run --log-mach-level debug --log-mach - --webdriver-arg="--diagnose" safari html-aam/fragile/optgroup-role.html
James Craig
Comment 8 2023-04-19 23:36:50 PDT
This appears to be an issue in the WPT test harness, so tracking here instead. https://github.com/web-platform-tests/wpt/issues/39617
Note You need to log in before you can comment on or make changes to this bug.