Chromium Code Reviews
DescriptionFix two race conditions in web view accessibility
Add a new test for web view accessibility that ensures that when a web view
is loaded, the full composed accessibility tree always eventually appears
(spanning both the embedder and guest) even without any user events. The
previous tests first sent some sort of events (focus events or touch events)
to see that those worked; this test ensures that guest web contents are
accessible even before any events fire.
This exposed two race conditions:
1. If the accessibility tree for the embedder is built before the guest is
attached, RFHI may not be able to map the browser plugin id to a guest
at that point. The fix is for BrowserPlugin::Attach to post an update
on its corresponding accessibility element.
2. If the accessibility tree for the guest is built before the embedder's,
it won't have a parent accessible tree id. This causes a problem when
the embedder accessibility tree is loaded because it references the guest
as a child tree, but the child tree doesn't point back to its parent.
The fix is to explicitly update the guest's accessibility tree data
when its embedder's accessibility tree is loaded.
These races are covered by the test, but see bug for an end-user scenario.
BUG=639332
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_site_isolation
Committed: https://crrev.com/fa0d26cbe289463f9bfcceee216d620aef3028af
Cr-Commit-Position: refs/heads/master@{#413857}
Patch Set 1 #
Messages
Total messages: 26 (14 generated)
|
|||||||||||||||||||||||||||||||||||||