commit | 68d4bec3923ed9ce0ad38a71ee90ad842f6117da | [log] [tgz] |
---|---|---|
author | Mario Sanchez Prada <[email protected]> | Thu Feb 20 13:42:05 2020 |
committer | Commit Bot <[email protected]> | Thu Feb 20 13:42:05 2020 |
tree | faab90478ebe66b32849549406093a2027e1657a | |
parent | bf12f1e0f49aa77d316b5d2ecce0fb60cfb9c1b2 [diff] |
Introduce Mojo interface for accessibility, adding a SetMode() method Based on crrev.com/c/1847304, by Colin Blundell <[email protected]> This CL starts the process of converting accessibility IPC to Mojo. We start off by converting the message FrameMsg_SetAccessibilityMode which, while not strictly a message from accessibility_messages.h, it's very important in that it's responsible of getting accessibility enabled in the renderer side, when the ui::AXMode::kWebContent is specified. Also, it's important to migrate this message first and doing it using an associated channel for the new mojom::RenderAccessibility interface since we need to make sure that this new RenderAccessibility::SetMode() method gets processed in the expected order relative to other messages already being sent using Mojo between the browser and renderer process, such as those for mojom::NavigationClient, for instance. Not doing it in this way would lead to race conditions during the migration period, since the ordering of some messages from accessibility_messages.h being migrated to Mojo could not be processed in the expected order compared to this new RenderAccessibility::SetMode() method, which is required to happen first to get the RenderAccessibilityImpl object created in the renderer. Specifically, this CL does the following: - Adds render_accessibility.mojom with the RenderAccessibility interface. - Adds a new class RenderAccessibilityManager implementing the new mojom::RenderAccessibility interface, which will also manage the lifecycle of the object that will be handling accessibility in the renderer (i.e. the RenderAccessibilityImpl object). - Sets up the plumbing for RenderFrameHostImpl to be able to connect to the mojom::RenderAccessibility implementation via RenderFrameImpl, using an associated channel to connect to the receiver side, implemented by RenderAccessibilityManager. - Changes how RenderAccessibilityImpl gets created, so that its existence is now manager by RenderAccessibilityManager, which is permanently connected to the browser process for the entire lifetime of the RenderFrameImpl object. - Uses this infrastructure to replace the sending and handling of FrameMsg_SetAccessibilityMode. - Updates RenderFrameImpl::SetAccessibilityModeForTest() to rely on RenderAccessibilityManager::SetMode() from now on. - Updates tests as needed. Future work will incrementally convert the rest of the accessibility messages, including introduction of the Mojo interface for methods that go from the renderer to the browser. Bug: 1010831 Change-Id: I919177bcf7cfa0af6ae4b921341f239674606d52 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1991446 Commit-Queue: Mario Sanchez Prada <[email protected]> Reviewed-by: Daniel Cheng <[email protected]> Reviewed-by: Dominic Mazzoni <[email protected]> Reviewed-by: Dave Tapuska <[email protected]> Reviewed-by: Arthur Sonzogni <[email protected]> Reviewed-by: Kentaro Hara <[email protected]> Reviewed-by: Ken Rockot <[email protected]> Cr-Commit-Position: refs/heads/master@{#743081}
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 .