Accessibility update messages and callbacks should all take: * A tree ID (sometimes implicit) * Zero or more AXTreeUpdates * Zero or more accessibility events See this design doc for motivation: https://docs.google.com/document/d/1IHbEuFAMjL-RKCfOqk1vvdQ7KldXuMgY7OQnIu38y0c/edit#
This was a previous attempt: https://chromium-review.googlesource.com/c/592848/ Trying to combine multiple updates into a single AXTreeUpdate was an incorrect assumption.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ccbaa9bacb277e3ef3cf2929739e587b3608f32b commit ccbaa9bacb277e3ef3cf2929739e587b3608f32b Author: Dominic Mazzoni <dmazzoni@chromium.org> Date: Wed Jun 06 07:44:23 2018 Refactor accessibility event messages. Refactor the messages used to communicate accessibility events from (1) the renderer to the browser, (2) from in content to outside of content, and (3) from the browser to the automation extension API. All three message structs are distinct, but previously each accessibility message consisted of one or more structs consisting of one AXTreeUpdate and one accessibility event (a few fields like type and id). Refactor all of these to a single struct consisting of (1) zero or more AXTreeUpdates, followed by (2) zero or more AXEvents, where AXEvent is a new struct that bundles together the common information needed about an event like its type and its target ID. See the design doc linked from the bug for additional motivation behind this refactoring. Bug: 848043 Change-Id: I6f5c743bcb79f8fe69453a7d1f9d24e515bbf123 Reviewed-on: https://chromium-review.googlesource.com/1080992 Reviewed-by: David Tseng <dtseng@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Kinuko Yasuda <kinuko@chromium.org> Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org> Cr-Commit-Position: refs/heads/master@{#564818} [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/browser/apps/guest_view/web_view_browsertest.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/browser/chromeos/arc/accessibility/ax_tree_source_arc.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/browser/extensions/api/automation_internal/automation_event_router.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/browser/extensions/api/automation_internal/automation_event_router.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/browser/extensions/api/automation_internal/automation_internal_api.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/common/extensions/chrome_extension_messages.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/renderer/extensions/automation_ax_tree_wrapper.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/renderer/extensions/automation_ax_tree_wrapper.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/renderer/extensions/automation_internal_custom_bindings.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chrome/renderer/extensions/automation_internal_custom_bindings.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chromecast/browser/extensions/api/automation_internal/automation_event_router.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chromecast/browser/extensions/api/automation_internal/automation_event_router.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chromecast/browser/extensions/api/automation_internal/automation_internal_api.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chromecast/browser/ui/aura/accessibility/automation_manager_aura.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chromecast/common/extensions_api/cast_extension_messages.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chromecast/renderer/extensions/automation_ax_tree_wrapper.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chromecast/renderer/extensions/automation_ax_tree_wrapper.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chromecast/renderer/extensions/automation_internal_custom_bindings.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/chromecast/renderer/extensions/automation_internal_custom_bindings.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/accessibility/accessibility_ipc_error_browsertest.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/accessibility/browser_accessibility_mac_unittest.mm [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/accessibility/browser_accessibility_manager.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/accessibility/browser_accessibility_manager.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/accessibility/browser_accessibility_manager_mac.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/accessibility/browser_accessibility_manager_mac.mm [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/accessibility/browser_accessibility_manager_unittest.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/accessibility/browser_accessibility_win_unittest.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/frame_host/render_frame_host_delegate.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/frame_host/render_frame_host_impl.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/web_contents/web_contents_impl.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/browser/web_contents/web_contents_impl.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/common/accessibility_messages.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/common/swapped_out_messages.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/public/browser/ax_event_notification_details.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/public/browser/ax_event_notification_details.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/public/browser/web_contents_observer.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/public/common/common_param_traits_macros.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/renderer/accessibility/render_accessibility_impl.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/renderer/accessibility/render_accessibility_impl.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/ui/accessibility/BUILD.gn [add] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/ui/accessibility/ax_event.cc [add] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/ui/accessibility/ax_event.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/ui/accessibility/ax_tree_update.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/ui/accessibility/mojom/ax_tree_update.mojom [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/ui/accessibility/mojom/ax_tree_update_mojom_traits.cc [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/ui/accessibility/mojom/ax_tree_update_mojom_traits.h [modify] https://crrev.com/ccbaa9bacb277e3ef3cf2929739e587b3608f32b/ui/accessibility/mojom/ax_tree_update_mojom_traits_unittest.cc
Comment 1 by dmazz...@chromium.org
, May 30 2018