commit | 5b0af10410397f00f6adb6756c309aeb10157d29 | [log] [tgz] |
---|---|---|
author | David Tseng <dtseng@chromium.org> | Tue May 21 04:10:16 2019 |
committer | Commit Bot <commit-bot@chromium.org> | Tue May 21 04:10:16 2019 |
tree | ce794abcad17e5954c20227eb396cc9174a9a4a5 | |
parent | 0f9b5bc7267e249aab4fab2566ea6dfbdc57b7c4 [diff] |
Reland: Port automation api js focus computations to C++ Fixes initializer for AXEventGenerator::event_from_. TBR=nektar, katie Original change This change migrates focus/blur eventing from javascript to C++. This moves the source focus state, and logic entirely to AutomationInternalCustomBindings. There are also some misc fixes: audited and corrected AutomationAXTreeWrapper::OnAccessibilityEvents. All early returns need to clear generated events, but weren't. ax::mojom::Event::kFocusContext is inapplicable on Chrome OS. - AutomationAXTreeWrapper::IsInFocusChain did not account correctly for a detached tree (one that does not eventually have a desktop tree as ancestor). In these cases, we need to always consider it focused, given all other conditions apply. This can happen if we only have one tree in automation tabs only mode. fix some automation api tests. This suite runs all tests without restarting the browser, so all state is kept including focus states. We no longer re-fire focus events, if the node is already focused, so tests need to set focus to different nodes to get an event. Test: comprehensive coverage exists in browser_tests --gtest_filter=Automation*.* and --gtest_filter=ChromeVox*.*. Change-Id: Ie79f9b77a82ca16c515e8c2f989c0e6e8e7684ba Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1621489 Reviewed-by: David Tseng <dtseng@chromium.org> Commit-Queue: David Tseng <dtseng@chromium.org> Cr-Commit-Position: refs/heads/master@{#661614}
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.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .