1. Don't hard-code the AX tree id (currently -2) 2. Dynamically assign the ids from Chrome's AXTreeRegistry, or by generating random unguessable tokens (see issue 881986)
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4 commit ed9bc9f37d4556c7d716b55c234cc65453cf4ee4 Author: James Cook <jamescook@chromium.org> Date: Thu Sep 27 20:46:24 2018 chromeos: Eliminate hard-coded ui::RemoteAXTreeID This is a first step toward mash support for multiple remote mojo apps supplying AX node trees. * Let AXHostService generate the AXTreeID as a side-effect of being an AXHostDelegate * Inform the remote app of its AXTreeID when it connects * Push the ID into ash so it can be used for views focus support. This won't work for multi-process mash, but is fine for today's shortcut viewer app and probably for SingleProcessMash. Longer term we should probably use aura::Window properties for this. See go/mash-ax-node-tree for notes Bug: 888147 Test: updated views_mus_unittests, unit_tests, etc. Change-Id: I2400ab02d8c504a0a041646bc694976458b3228b Reviewed-on: https://chromium-review.googlesource.com/1246595 Commit-Queue: James Cook <jamescook@chromium.org> Reviewed-by: Sam McNally <sammc@chromium.org> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org> Cr-Commit-Position: refs/heads/master@{#594848} [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/ash/accessibility/accessibility_controller.h [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/ash/wm/non_client_frame_controller.cc [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/ash/wm/non_client_frame_controller_unittest.cc [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/chrome/browser/chromeos/accessibility/DEPS [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/chrome/browser/chromeos/accessibility/ax_host_service.cc [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/chrome/browser/chromeos/accessibility/ax_host_service.h [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/chrome/browser/chromeos/accessibility/ax_host_service_unittest.cc [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/chrome/browser/chromeos/accessibility/spoken_feedback_browsertest.cc [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/ui/accessibility/mojom/ax_host.mojom [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/ui/views/mus/ax_remote_host.cc [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/ui/views/mus/ax_remote_host.h [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/ui/views/mus/ax_remote_host_unittest.cc [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/ui/views/mus/ax_tree_source_mus.cc [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/ui/views/mus/ax_tree_source_mus.h [modify] https://crrev.com/ed9bc9f37d4556c7d716b55c234cc65453cf4ee4/ui/views/mus/ax_tree_source_mus_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598 commit e392dddd1fc3d73911c5eaccfbb6dcc47b75e598 Author: James Cook <jamescook@chromium.org> Date: Fri Sep 28 01:28:27 2018 chromeos: Move AXHostService into ash This is a step toward supporting multiple remote apps and widgets. We need this for browser windows under single-process-mash. Under mash the ash process is responsible for top-level window creation for remote apps. It will need to route accessibility actions (like hit testing) to the correct remote app. Likewise it manages window frames and focus. Therefore it should own the mojo AXHostService, not the browser. Accessibility events from the remote app must be routed out of ash into chrome to the accessibility extension. For now we do this with the in-process AccessibilityDelegate. I didn't introduce a new delegate because the mojo service is lazily created and it's hard to connect a new delegate at startup. Subsequent CLs will: * Always create the service at ash startup * Convert the delegate methods to mojo See go/mash-ax-node-tree for the full plan. Bug: 888147 Test: ash_unittests, manually use ChromeVox and STS with shortcut viewer Change-Id: Ia9e63689a8cb407b66397778be4617479fdf6c92 Reviewed-on: https://chromium-review.googlesource.com/1249920 Commit-Queue: James Cook <jamescook@chromium.org> Reviewed-by: Scott Violet <sky@chromium.org> Reviewed-by: David Tseng <dtseng@chromium.org> Cr-Commit-Position: refs/heads/master@{#594949} [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/ash/BUILD.gn [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/ash/accessibility/accessibility_delegate.h [rename] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/ash/accessibility/ax_host_service.cc [rename] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/ash/accessibility/ax_host_service.h [rename] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/ash/accessibility/ax_host_service_unittest.cc [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/ash/accessibility/default_accessibility_delegate.cc [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/ash/accessibility/default_accessibility_delegate.h [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/ash/ash_service.cc [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/chrome/browser/DEPS [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/chrome/browser/ash_service_registry.cc [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/chrome/browser/chromeos/BUILD.gn [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/chrome/browser/ui/ash/chrome_accessibility_delegate.cc [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/chrome/browser/ui/ash/chrome_accessibility_delegate.h [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/chrome/browser/ui/aura/accessibility/DEPS [modify] https://crrev.com/e392dddd1fc3d73911c5eaccfbb6dcc47b75e598/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/abc90186c8019f1e0fcc237d08b93aeca6eb087a commit abc90186c8019f1e0fcc237d08b93aeca6eb087a Author: James Cook <jamescook@chromium.org> Date: Fri Sep 28 20:45:09 2018 Revert "chromeos: Move AXHostService into ash" This reverts commit e392dddd1fc3d73911c5eaccfbb6dcc47b75e598. Reason for revert: Follow-up design discussions with dmazzoni and dtseng suggest that this might not be the right direction to go. Instead we might want to use AXHostService as the way that both out-of-process ash and remote app windows/widgets talk to the browser. We may also have a different mechanism for assigning AX child tree IDs per-widget. Original change's description: > chromeos: Move AXHostService into ash > > This is a step toward supporting multiple remote apps and widgets. We > need this for browser windows under single-process-mash. > > Under mash the ash process is responsible for top-level window creation > for remote apps. It will need to route accessibility actions (like hit > testing) to the correct remote app. Likewise it manages window frames > and focus. Therefore it should own the mojo AXHostService, not the > browser. > > Accessibility events from the remote app must be routed out of ash > into chrome to the accessibility extension. For now we do this with > the in-process AccessibilityDelegate. I didn't introduce a new delegate > because the mojo service is lazily created and it's hard to connect > a new delegate at startup. Subsequent CLs will: > * Always create the service at ash startup > * Convert the delegate methods to mojo > > See go/mash-ax-node-tree for the full plan. > > Bug: 888147 > Test: ash_unittests, manually use ChromeVox and STS with shortcut viewer > Change-Id: Ia9e63689a8cb407b66397778be4617479fdf6c92 > Reviewed-on: https://chromium-review.googlesource.com/1249920 > Commit-Queue: James Cook <jamescook@chromium.org> > Reviewed-by: Scott Violet <sky@chromium.org> > Reviewed-by: David Tseng <dtseng@chromium.org> > Cr-Commit-Position: refs/heads/master@{#594949} TBR=jamescook@chromium.org,sky@chromium.org,dtseng@chromium.org Change-Id: I156656b5114a28693308252ee531bbf4c3db867a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 888147 Reviewed-on: https://chromium-review.googlesource.com/1252629 Reviewed-by: James Cook <jamescook@chromium.org> Commit-Queue: James Cook <jamescook@chromium.org> Cr-Commit-Position: refs/heads/master@{#595203} [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/ash/BUILD.gn [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/ash/accessibility/accessibility_delegate.h [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/ash/accessibility/default_accessibility_delegate.cc [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/ash/accessibility/default_accessibility_delegate.h [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/ash/ash_service.cc [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/chrome/browser/DEPS [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/chrome/browser/ash_service_registry.cc [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/chrome/browser/chromeos/BUILD.gn [rename] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/chrome/browser/chromeos/accessibility/ax_host_service.cc [rename] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/chrome/browser/chromeos/accessibility/ax_host_service.h [rename] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/chrome/browser/chromeos/accessibility/ax_host_service_unittest.cc [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/chrome/browser/ui/ash/chrome_accessibility_delegate.cc [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/chrome/browser/ui/ash/chrome_accessibility_delegate.h [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/chrome/browser/ui/aura/accessibility/DEPS [modify] https://crrev.com/abc90186c8019f1e0fcc237d08b93aeca6eb087a/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc
On hold for now pending some views::Widget AX tree ID refactoring.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/9a153c9256db9e485b7afac03ad5b902fd01e3e2 commit 9a153c9256db9e485b7afac03ad5b902fd01e3e2 Author: James Cook <jamescook@chromium.org> Date: Tue Oct 02 23:42:42 2018 chromeos: Use aura::Window property for remote app AX child tree ID This avoids some cases where code in //chrome/browser is directly poking into //ash to copy around tree IDs. It will also make it easier to support multiple remote tree IDs, since we're not just storing a single one in ash::AccessibilityController any more. Bug: 888147 Test: covered by tests, manually use Select-to-speak and ChromeVox with keyboard shortcut viewer, spoken feedback and focus work as expected Change-Id: Ica5c856ed8378a69fda86a2111b97bff1ee8a441 Reviewed-on: https://chromium-review.googlesource.com/c/1252905 Commit-Queue: James Cook <jamescook@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Reviewed-by: David Tseng <dtseng@chromium.org> Reviewed-by: Greg Kerr <kerrnel@chromium.org> Cr-Commit-Position: refs/heads/master@{#596046} [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ash/accelerators/debug_commands.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ash/accessibility/accessibility_controller.h [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ash/public/cpp/mus_property_mirror_ash.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ash/public/cpp/window_properties.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ash/wm/non_client_frame_controller.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ash/wm/non_client_frame_controller_unittest.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/chrome/browser/chromeos/accessibility/DEPS [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/chrome/browser/chromeos/accessibility/ax_host_service.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/content/browser/renderer_host/render_widget_host_view_aura.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/services/ws/public/mojom/window_manager.mojom [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ui/accessibility/platform/aura_window_properties.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ui/accessibility/platform/aura_window_properties.h [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ui/views/accessibility/ax_window_obj_wrapper.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ui/views/mus/ax_remote_host.cc [modify] https://crrev.com/9a153c9256db9e485b7afac03ad5b902fd01e3e2/ui/views/mus/ax_remote_host_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cb78ef567fc08ff1b80c720325094296ad034e8b commit cb78ef567fc08ff1b80c720325094296ad034e8b Author: James Cook <jamescook@chromium.org> Date: Thu Oct 04 18:53:32 2018 chromeos: Add Ctrl-Alt-Shift-Q debug accelerator for quick_launch app This allows testing multiple remote apps with accessibility support (quick_launch and keyboard_shortcut_viewer). Remove the mash::mojom::Launchable interface from quick_launch because this simplifies both the manifests and launching code. It's also how we launch tap_visualizer. Clean up //ash deps on //mash. Bug: 888147 Test: Run with --ash-debug-shortcuts, hit Ctrl-Alt-Shift-Q Change-Id: Ie88c8fbba268ab8697bf0a3dce5725430cba7650 Reviewed-on: https://chromium-review.googlesource.com/c/1260020 Commit-Queue: James Cook <jamescook@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#596786} [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/BUILD.gn [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/DEPS [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/accelerators/accelerator_controller.cc [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/accelerators/accelerator_table.cc [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/accelerators/accelerator_table_unittest.cc [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/accelerators/debug_commands.cc [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/components/quick_launch/manifest.json [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/components/quick_launch/quick_launch_application.cc [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/components/quick_launch/quick_launch_application.h [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/manifest.json [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/public/cpp/accelerators.h [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/shell.cc [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/ash/system/flag_warning/flag_warning_tray.cc [modify] https://crrev.com/cb78ef567fc08ff1b80c720325094296ad034e8b/chrome/browser/ui/ash/ksv/keyboard_shortcut_viewer_metadata_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e752f83c330d4a3154549b3653beb90688242577 commit e752f83c330d4a3154549b3653beb90688242577 Author: James Cook <jamescook@chromium.org> Date: Thu Oct 04 23:08:15 2018 chromeos: Support multiple AXRemoteHosts from remote processes This is a step toward supporting chrome browser windows under single-process and multi-process mash. Break AXHostService into two parts. The core AXHostService manages a map of AXRemoteHostDelegates. Each AXRemoteHostDelegate is-a ui::AXHostDelegate and therefore can handle PerformAction requests from accessibility extensions. AXHostService receives incoming AXEvents from remote apps and routes them to the correct AXRemoteHostDelegate, which forwards them to the extension. Integration tests already exist in SpokenFeedbackTest. Added unit tests. Bug: 888147 Test: unit_tests, views_mus_unittests Change-Id: If2ee438b310acba9437a251bd77e06bfb7d9a099 Reviewed-on: https://chromium-review.googlesource.com/c/1260205 Commit-Queue: James Cook <jamescook@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: David Tseng <dtseng@chromium.org> Cr-Commit-Position: refs/heads/master@{#596906} [modify] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/chrome/browser/chromeos/BUILD.gn [modify] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/chrome/browser/chromeos/accessibility/ax_host_service.cc [modify] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/chrome/browser/chromeos/accessibility/ax_host_service.h [modify] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/chrome/browser/chromeos/accessibility/ax_host_service_unittest.cc [add] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/chrome/browser/chromeos/accessibility/ax_remote_host_delegate.cc [add] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/chrome/browser/chromeos/accessibility/ax_remote_host_delegate.h [modify] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/ui/accessibility/ax_host_delegate.h [modify] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/ui/accessibility/mojom/ax_host.mojom [modify] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/ui/views/mus/ax_remote_host.cc [modify] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/ui/views/mus/ax_remote_host.h [modify] https://crrev.com/e752f83c330d4a3154549b3653beb90688242577/ui/views/mus/ax_remote_host_unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e6db68f859da56f940b92077e2e571881901c013 commit e6db68f859da56f940b92077e2e571881901c013 Author: James Cook <jamescook@chromium.org> Date: Fri Oct 05 22:20:54 2018 Add accessibility support to quick_launch test app, fix window frame This allows testing ChromeVox with multiple simultaneous mash apps. * Turn on a11y support in AuraInit::InitParams * Initialize ash window property transport Bug: 888147, 892743 Change-Id: I3114787aa687dd6a233b7411739fa3f938cf4399 Reviewed-on: https://chromium-review.googlesource.com/c/1265535 Commit-Queue: James Cook <jamescook@chromium.org> Reviewed-by: Michael Wasserman <msw@chromium.org> Cr-Commit-Position: refs/heads/master@{#597341} [modify] https://crrev.com/e6db68f859da56f940b92077e2e571881901c013/ash/components/quick_launch/BUILD.gn [modify] https://crrev.com/e6db68f859da56f940b92077e2e571881901c013/ash/components/quick_launch/quick_launch_application.cc [modify] https://crrev.com/e6db68f859da56f940b92077e2e571881901c013/ash/components/shortcut_viewer/shortcut_viewer_application.cc [modify] https://crrev.com/e6db68f859da56f940b92077e2e571881901c013/ash/public/cpp/BUILD.gn [add] https://crrev.com/e6db68f859da56f940b92077e2e571881901c013/ash/public/cpp/ash_client.cc [add] https://crrev.com/e6db68f859da56f940b92077e2e571881901c013/ash/public/cpp/ash_client.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/695bc51a229d97de9829d78b251b391b7549b3b2 commit 695bc51a229d97de9829d78b251b391b7549b3b2 Author: James Cook <jamescook@chromium.org> Date: Fri Oct 12 17:34:14 2018 Assert ViewsDelegate::HandleAccessibilityEvent requires non-null view The only callers pass |this| for the view argument, so CHECK that it isn't null and remove some dead code. This simplifies an upcoming refactor in AXRemoteHost for mash. TBR=msw@chromium.org Bug: 888147 Test: existing unit tests Change-Id: I93c9bb9ea5a9e55cbca5f51340625ffe60fe64d8 Reviewed-on: https://chromium-review.googlesource.com/c/1273991 Reviewed-by: James Cook <jamescook@chromium.org> Reviewed-by: Michael Wasserman <msw@chromium.org> Reviewed-by: David Tseng <dtseng@chromium.org> Commit-Queue: James Cook <jamescook@chromium.org> Cr-Commit-Position: refs/heads/master@{#599272} [modify] https://crrev.com/695bc51a229d97de9829d78b251b391b7549b3b2/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc [modify] https://crrev.com/695bc51a229d97de9829d78b251b391b7549b3b2/ui/views/mus/ax_remote_host.cc [modify] https://crrev.com/695bc51a229d97de9829d78b251b391b7549b3b2/ui/views/views_delegate.h
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/748888c0d57fee009f96f8e1489fd998aabe19dc commit 748888c0d57fee009f96f8e1489fd998aabe19dc Author: Dominic Mazzoni <dmazzoni@chromium.org> Date: Thu Nov 01 22:34:59 2018 Remove assumption that the parent AX tree is the desktop. Currently we have a single root accessibility tree (the "desktop" tree) containing all aura Windows and views in the browser process, and all WebContents accessibility trees are direct children of that tree. Under multi-process mash, we're going to want it to be possible for a remote app to host a WebContents, so we need to remove the assumption that the parent accessibility tree of a WebContents must be the root accessibility tree. To do this, modify AutomationInternalCustomBindings::GetParent so that it checks for any tree that lists the current tree as its child tree, rather than only trying the desktop tree. To make this efficient, have AutomationAXTreeWrapper keep track of a map from child tree ID to its host. This is reasonably well-covered by existing tests - if GetParent doesn't work correctly, nearly all automation tests break. Bug: 888147 Change-Id: Ib7350d51dffed345dd03ec11e6cc0b7591bb243c Reviewed-on: https://chromium-review.googlesource.com/c/1286903 Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org> Reviewed-by: David Tseng <dtseng@chromium.org> Reviewed-by: James Cook <jamescook@chromium.org> Cr-Commit-Position: refs/heads/master@{#604729} [modify] https://crrev.com/748888c0d57fee009f96f8e1489fd998aabe19dc/chrome/renderer/extensions/automation_ax_tree_wrapper.cc [modify] https://crrev.com/748888c0d57fee009f96f8e1489fd998aabe19dc/chrome/renderer/extensions/automation_ax_tree_wrapper.h [modify] https://crrev.com/748888c0d57fee009f96f8e1489fd998aabe19dc/chrome/renderer/extensions/automation_internal_custom_bindings.cc [modify] https://crrev.com/748888c0d57fee009f96f8e1489fd998aabe19dc/ui/accessibility/ax_tree.cc [modify] https://crrev.com/748888c0d57fee009f96f8e1489fd998aabe19dc/ui/accessibility/ax_tree.h
Blocked on views Widget AX node tree refactor.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c898fcc2de40713695a8fd329fe9bc86c2eea1a1 commit c898fcc2de40713695a8fd329fe9bc86c2eea1a1 Author: James Cook <jamescook@chromium.org> Date: Fri Dec 07 18:18:06 2018 Inject AXAuraObjCache into AX object wrapper classes This eliminates calls to AXAuraObjCache::GetInstance() and is a step towards making the cache not be a singleton. Bug: 888147 Test: views_unittests Change-Id: I94dee9693881ff760be1c32b084072379e5d803b Reviewed-on: https://chromium-review.googlesource.com/c/1359093 Commit-Queue: James Cook <jamescook@chromium.org> Reviewed-by: David Tseng <dtseng@chromium.org> Cr-Commit-Position: refs/heads/master@{#614740} [modify] https://crrev.com/c898fcc2de40713695a8fd329fe9bc86c2eea1a1/ui/views/accessibility/ax_aura_obj_cache.cc [modify] https://crrev.com/c898fcc2de40713695a8fd329fe9bc86c2eea1a1/ui/views/accessibility/ax_view_obj_wrapper.cc [modify] https://crrev.com/c898fcc2de40713695a8fd329fe9bc86c2eea1a1/ui/views/accessibility/ax_view_obj_wrapper.h [modify] https://crrev.com/c898fcc2de40713695a8fd329fe9bc86c2eea1a1/ui/views/accessibility/ax_widget_obj_wrapper.cc [modify] https://crrev.com/c898fcc2de40713695a8fd329fe9bc86c2eea1a1/ui/views/accessibility/ax_widget_obj_wrapper.h [modify] https://crrev.com/c898fcc2de40713695a8fd329fe9bc86c2eea1a1/ui/views/accessibility/ax_window_obj_wrapper.cc [modify] https://crrev.com/c898fcc2de40713695a8fd329fe9bc86c2eea1a1/ui/views/accessibility/ax_window_obj_wrapper.h
We're using "fence hopping" for SingleProcessMash, so punting to MultiProcessMash.
Comment 1 by jamescook@chromium.org
, Sep 24