Add means to expose the displayed/tab-strip URL to AXPlatformNodes NSAccessibility expects the URL from the active, top-level document to be exposed on the NSWindow via accessibilityDocument. In order to reliably identify and return the correct URL, push it from the BrowserView to the root platform accessible object as follows: 1. Watch for TabChangedAt in BrowserView. 2. For TabChangeType::kLoadingOnly, for the active web contents which is no longer loading, update the accessible URL for the RootView. 3. Have the RootView set the URL on the ViewAccessibility object which will cause it to be added to that object's AXNodeData so it can be retrieved via the delegate. 4. Add getters to AXPlatformNodeDelegate and AXPlatformNodeBase, the latter being the superclass of the various AXPlatformNode* classes on macOS, Linux, and Windows). Test: `out/.../views_unittests --gtest_filter="*AccessibleURL*"` Test: `out/.../accessibility_unittests --gtest_filter="*AccessibleURL*"` Test: `out/.../unit_tests --gtest_filter="*AccessibleURL*"` Test: `out/.../browser_tests \ --gtest_filter="*.AccessibilityDocumentExposedOnWindow*"` Low-Coverage-Reason: COVERAGE_UNDERREPORTED * The change in native_widget_mac_nswindow.mm is covered by the updated test expectations in browser_window_mac_browsertest.mm. * Those in ax_platform_node_delegate.cc + ax_platform_node_base.cc are covered by tests in view_ax_platform_node_delegate_unittest.cc and ax_platform_node_auralinux_unittest.cc. Bug: 363275809 Change-Id: I486d31a0630a5da78390277bd0e11d546cf9ed7c Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6187085 Reviewed-by: Jayson Adams <shrike@chromium.org> Commit-Queue: Joanmarie Diggs <jdiggs@igalia.com> Reviewed-by: David Tseng <dtseng@chromium.org> Reviewed-by: Benjamin Beaudry <benjamin.beaudry@microsoft.com> Reviewed-by: Peter Kasting <pkasting@chromium.org> Cr-Commit-Position: refs/heads/main@{#1411899}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.