Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Issue 1978373002: Correctly ignore AXTree event creation change state for reparented nodes (Closed)

Created:
4 years, 7 months ago by David Tseng
Modified:
4 years, 7 months ago
Reviewers:
dmazzoni
CC:
chromium-reviews, 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
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Correctly ignore AXTree event creation change state for reparented nodes When updating an AXTree with a node_id_to_clear, we were adding a node created change for nodes that were removed, then created (a "recreation"). In the source tree though, however, the node was simply reparented (see test). During deserialization, we first destroyed the node subtree; then, we updated nodes; finally, we sent node created/changed/subtree created based on the update node calls. In order to detect this case at the unserialized tree phase of the update, introduce a vector to keep track of all nodes removed. A created node is then a new node that is not also a removed node. Furthermore, a onNodeDataWillChange should not be called for newly created or reparented nodes. This is because during node updates, a node and its *children* are built. The children are not yet populated with data. As a result, we often called onNodeDataWillChange on nodes whose previous data is simply not yet initialized. This caused erroneous tree text change events. TEST=accessibility_unittest, read Google Docs menus in ChromeVox BUG=602056 CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation Committed: https://crrev.com/54e747470a4de1c2437556581c3a1abd63e6a423 Cr-Commit-Position: refs/heads/master@{#394267}

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : Add subtree and node reparented. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+77 lines, -12 lines) Patch
M chrome/browser/resources/chromeos/chromevox/cvox2/background/cursors.js View 1 2 1 chunk +1 line, -1 line 0 comments Download
M chrome/renderer/extensions/automation_internal_custom_bindings.cc View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
M ui/accessibility/ax_tree.h View 1 2 3 1 chunk +3 lines, -1 line 0 comments Download
M ui/accessibility/ax_tree.cc View 1 2 3 4 chunks +21 lines, -10 lines 0 comments Download
M ui/accessibility/ax_tree_unittest.cc View 1 2 3 4 chunks +48 lines, -0 lines 0 comments Download

Messages

Total messages: 14 (9 generated)
David Tseng
4 years, 7 months ago (2016-05-16 19:50:41 UTC) #4
dmazzoni
lgtm lgtm, but could you create new change types AXTreeDelegate::NODE_REPARENTED and AXTreeDelegate::SUBTREE_REPARENTED so we have ...
4 years, 7 months ago (2016-05-17 16:53:20 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1978373002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1978373002/60001
4 years, 7 months ago (2016-05-17 19:13:47 UTC) #10
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 7 months ago (2016-05-17 23:20:40 UTC) #12
commit-bot: I haz the power
4 years, 7 months ago (2016-05-17 23:22:24 UTC) #14
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/54e747470a4de1c2437556581c3a1abd63e6a423
Cr-Commit-Position: refs/heads/master@{#394267}

Powered by Google App Engine
This is Rietveld 408576698