DescriptionWork around <webview> focus bugs by enforcing focus eventinvariants.
Workarounds are necessary due to webview firing events out of order. Example, a focus event gets fired on a descendant then the root of the webview when entering the webview via tab key. Similarly, tabbing out of the webview causes a focus event on the root as well.
This cl depends on a Blink change to fire blur events to accurately report focus state.
Invariants:
- the root of the focus target should have focused state set to true (except for nodes with the root as desktop, which is implicitly always focused).
- embedded objects should never be focused (even though webview fires focus events on them)
- a sequence of focus events like
focus event: root.firstChild
focus event: root
should result in ChromeVox focus remaining on root.firstChild
TEST=Tab/shift tab behaves correctly on GAIA sign in page.
BUG=534619, 525643
Committed: https://crrev.com/d336af2c96432f9c8d4b55faa3646c78c14607c7
Cr-Commit-Position: refs/heads/master@{#352127}
Patch Set 1 #Patch Set 2 : #
Messages
Total messages: 15 (5 generated)
|