|
|
Chromium Code Reviews|
Created:
4 years, 2 months ago by David Tseng Modified:
4 years, 2 months ago Reviewers:
dmazzoni CC:
chromium-reviews, alemate+watch_chromium.org, oshima+watch_chromium.org, aboxhall+watch_chromium.org, nektar+watch_chromium.org, yuzo+watch_chromium.org, je_julie, arv+watch_chromium.org, dtseng+watch_chromium.org, dmazzoni+watch_chromium.org Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionRecovery: Implement focus recovery across root AutomationNodes
This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range.
This map gets updated manually when marked or implicitly when focus crosses top level root nodes.
TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected.
BUG=631918, 628912, 624586, 605377, 524673, 652143
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation
Committed: https://crrev.com/7a99c7d3e7dc2ca71bbaa127099239355a41fd37
Cr-Commit-Position: refs/heads/master@{#424612}
Patch Set 1 #
Total comments: 8
Patch Set 2 : Address feedback. #
Messages
Total messages: 23 (15 generated)
Description was changed from ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape. Verify focus lands as expected. BUG= ========== to ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape. Verify focus lands as expected. BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
Description was changed from ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape. Verify focus lands as expected. BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
dtseng@chromium.org changed reviewers: + dmazzoni@chromium.org
Description was changed from ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
Description was changed from ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
Description was changed from ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
lgtm I love this idea overall, seems much cleaner than excursions. I think you may as well store a full Range in the WeakMap rather than just the start node, it will be a better experience. https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... File chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js (right): https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js:159: * @type {WeakMap<AutomationNode>} I think it should be WeakMap<AutomationNode, AutomationNode>, right? Please document the meaning of the key and value in the map https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js:668: this.focusRecoveryMap_.set(root, this.currentRange.start.node); Why not store and recover the whole range? https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... File chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.js (right): https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.js:622: var onFocus = function(evt) { Rather than add and remove a focus listener, what if there was just a permanent focus listener that calls any pending callbacks whenever focus lands somewhere other than the panel? https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.js:627: chrome.automation.getDesktop(function(node) { How about: getDesktop(function(desktop) {
Description was changed from ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586,605377 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
Description was changed from ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586,605377 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586,605377,524673 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
The CQ bit was checked by dtseng@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from dmazzoni@chromium.org Link to the patchset: https://codereview.chromium.org/2412433004/#ps20001 (title: "Address feedback.")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586,605377,524673 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586,605377,524673,652143 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... File chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js (right): https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js:159: * @type {WeakMap<AutomationNode>} On 2016/10/11 17:41:18, dmazzoni wrote: > I think it should be WeakMap<AutomationNode, AutomationNode>, right? > > Please document the meaning of the key and value in the map Yup; you're right. Done (Closure doesn't seem to care either way). https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... chrome/browser/resources/chromeos/chromevox/cvox2/background/background.js:668: this.focusRecoveryMap_.set(root, this.currentRange.start.node); On 2016/10/11 17:41:18, dmazzoni wrote: > Why not store and recover the whole range? Done. https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... File chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.js (right): https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.js:622: var onFocus = function(evt) { On 2016/10/11 17:41:18, dmazzoni wrote: > Rather than add and remove a focus listener, what if there > was just a permanent focus listener that calls any pending > callbacks whenever focus lands somewhere other than the > panel? I'd like to limit the panel's global event listeners to make sure we never move/steal focus when we shouldn't. https://codereview.chromium.org/2412433004/diff/1/chrome/browser/resources/ch... chrome/browser/resources/chromeos/chromevox/cvox2/background/panel.js:627: chrome.automation.getDesktop(function(node) { On 2016/10/11 17:41:18, dmazzoni wrote: > How about: getDesktop(function(desktop) { desktop is used above. I guess I could bind it to onFocus.
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: ios-device on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds...)
The CQ bit was checked by dtseng@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Description was changed from ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586,605377,524673,652143 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586,605377,524673,652143 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ==========
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586,605377,524673,652143 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation ========== to ========== Recovery: Implement focus recovery across root AutomationNodes This cl maintains a WeakMap of AutomationRootNode objects to the last known node that had ChromeVox range. This map gets updated manually when marked or implicitly when focus crosses top level root nodes. TEST=manual; open context menu, open panel, activate menus that manipulate focus, press escape; ctrl+tab, alt+tab. Verify focus lands as expected. BUG=631918,628912,624586,605377,524673,652143 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation Committed: https://crrev.com/7a99c7d3e7dc2ca71bbaa127099239355a41fd37 Cr-Commit-Position: refs/heads/master@{#424612} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/7a99c7d3e7dc2ca71bbaa127099239355a41fd37 Cr-Commit-Position: refs/heads/master@{#424612} |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
