• David Tseng's avatar
    Utilize focus recovery in more code paths · ec018e32
    David Tseng authored
    1. alt+left/right
    
    Chrome only fires focus events in this case. This change tries to
    recover focus whenever a focus event gets fired on a root web area. The
    challenge here is the root node gets re-used. Explicit tracking of the
    docurl gets introduced as a result.
    
    Forum discussion:
    https://groups.google.com/forum/#!topic/axs-chrome-discuss/u9gcqZxDISM
    
    2. toggle on ChromeVox
    
    In this case, ChromeVox tries to always recover focus. Detected by
    checking there is no |currentRange|.
    
    3. ctrl+r
    
    In this case, ChromeVox receives a load complete. Only recover if the
    |focus| is not already inside of the page (i.e. |focus| is the top level
    root).
    
    restores its range appropriately.
    
    Test: exercise each of the above examples; verify that ChromeVox
    Bug: 
    Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
    Change-Id: I6e427105555b2663dca1100a02b8eb6b00cdc08a
    Reviewed-on: https://chromium-review.googlesource.com/806759
    Commit-Queue: David Tseng <dtseng@chromium.org>
    Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#521909}
    ec018e32
background.js 26.7 KB