Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 4900d7a90e6ea0edfd43a2bfdf37db22ad682170
https://github.com/WebKit/WebKit/commit/4900d7a90e6ea0edfd43a2bfdf37db22ad682170
Author: Tyler Wilcock <[email protected]>
Date: 2024-08-23 (Fri, 23 Aug 2024)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js
M Source/WebCore/accessibility/AccessibilityObject.cpp
M Source/WebCore/testing/Internals.cpp
M Source/WebCore/testing/Internals.h
M Source/WebCore/testing/Internals.idl
M Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp
Log Message:
-----------
AX: Flakey failures in wpt.fyi Interop 2024 accessibility tests
https://bugs.webkit.org/show_bug.cgi?id=278540
rdar://134527513
Reviewed by Chris Fleizach.
We suspect these flakey failures happen if WebDriver queries WebCore before the
render tree has been built for the first
time, meaning we aren't going to create accessibility objects correctly,
resulting in an empty string result for computed
role and computed label.
We actually worked around this problem in the implementation of
test_driver_internal.{get_computed_label, get_computed_role}
by using a mechanism to asynchronously wait for the render tree to be laid out
via `Internals::readyToRetrieveComputedRoleOrLabel`.
However, no such mechanism was put in place for the actual WebDriver
implementation of getComputedRole and getComputedLabel,
so it is probably suffering from the same problem.
With this patch, `Internals::readyToRetrieveComputedRoleOrLabel` is removed,
and instead we just force layout to ensure
renderers are attached to elements before querying these properties. We also
now force layout in the WebDriver methods
for this functionality in WebAutomationSessionProxy.cpp, which should solve the
flakiness.
* LayoutTests/imported/w3c/web-platform-tests/resources/testdriver-vendor.js:
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::computedLabel):
* Source/WebCore/testing/Internals.cpp:
(WebCore::Internals::getComputedLabel const):
(WebCore::Internals::getComputedRole const):
(WebCore::Internals::readyToRetrieveComputedRoleOrLabel const): Deleted.
* Source/WebCore/testing/Internals.h:
* Source/WebCore/testing/Internals.idl:
* Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::getAccessibilityObjectForNode):
(WebKit::WebAutomationSessionProxy::getComputedRole):
(WebKit::WebAutomationSessionProxy::getComputedLabel):
Canonical link: https://commits.webkit.org/282659@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes