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

Issue 2080573003: Track all changed nodes during an update (Closed)

Created:
4 years, 6 months ago by David Tseng
Modified:
4 years, 3 months ago
Reviewers:
dmazzoni
CC:
aboxhall+watch_chromium.org, arv+watch_chromium.org, chromium-apps-reviews_chromium.org, chromium-reviews, dmazzoni+watch_chromium.org, dtseng+watch_chromium.org, extensions-reviews_chromium.org, je_julie, nektar+watch_chromium.org, oshima+watch_chromium.org, yuzo+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Track all changed nodes during an update While deserializing, make a note of all changed nodes via id before performing any tree changes/removals. While removing (non-atomically), reference the changed list to ensure we notify delegates of nodes that will actually be deleted and not just deleted then re-created as part of bookkeeping to enforce the "non-reparenting" invariant inside of AXTree::CreateChildVector. BUG=642799 TEST=for each of the reproductions in the bug, ensure the automation api (as a client) does not destroy then re-create js objects; rather, ensure it re-uses them for reparented trees. Committed: https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb Cr-Commit-Position: refs/heads/master@{#417207} CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Patch Set 1 #

Total comments: 1

Patch Set 2 : Exhaustive approach. #

Total comments: 2

Patch Set 3 : Add test, fix creation. #

Patch Set 4 : Fix asan. #

Patch Set 5 : Alternate fix for tests. #

Patch Set 6 : More aggressive cleanup... #

Patch Set 7 : Try just notifying the delegate. #

Patch Set 8 : Add *Reparented* delegate methods to preserve BAM behavior. #

Patch Set 9 : Fix test. #

Patch Set 10 : Make suggested change. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+85 lines, -20 lines) Patch
M chrome/browser/extensions/api/automation_internal/automation_internal_api.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M chrome/browser/resources/chromeos/chromevox/common/chrome_extension_externs.js View 1 2 3 4 5 6 7 8 9 2 chunks +7 lines, -1 line 0 comments Download
M chrome/browser/resources/chromeos/chromevox/cvox2/background/desktop_automation_handler.js View 1 2 3 4 5 6 7 8 9 7 chunks +17 lines, -5 lines 0 comments Download
M chrome/browser/resources/chromeos/chromevox/cvox2/background/tabs_automation_handler.js View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -2 lines 0 comments Download
M chrome/browser/resources/chromeos/chromevox/testing/chromevox_next_e2e_test_base.js View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/common/extensions/api/automation.idl View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/common/extensions/api/automation_internal.idl View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/common/extensions/chrome_extension_messages.h View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/renderer/extensions/automation_internal_custom_bindings.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
M chrome/renderer/resources/extensions/automation/automation_event.js View 1 2 3 4 5 6 7 8 9 2 chunks +3 lines, -3 lines 0 comments Download
M chrome/renderer/resources/extensions/automation/automation_node.js View 1 2 3 4 5 6 7 8 9 3 chunks +5 lines, -4 lines 0 comments Download
M chrome/renderer/resources/extensions/automation_custom_bindings.js View 1 2 3 4 5 6 7 8 9 1 chunk +6 lines, -3 lines 0 comments Download
M content/browser/frame_host/render_frame_host_impl.cc View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M content/common/accessibility_messages.h View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M content/public/browser/ax_event_notification_details.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M content/public/browser/ax_event_notification_details.cc View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -2 lines 0 comments Download
M content/public/common/common_param_traits_macros.h View 1 2 3 4 5 6 7 8 9 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/accessibility/render_accessibility_impl.h View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -0 lines 0 comments Download
M content/renderer/accessibility/render_accessibility_impl.cc View 1 2 3 4 5 6 7 8 9 6 chunks +12 lines, -0 lines 0 comments Download
M ui/accessibility/ax_enums.idl View 1 2 3 4 5 6 7 8 9 1 chunk +6 lines, -0 lines 0 comments Download

Messages

Total messages: 51 (38 generated)
David Tseng
This is an interesting case where Docs appears to be doing something unexpected. Note that ...
4 years, 6 months ago (2016-06-20 21:44:39 UTC) #4
dmazzoni
https://codereview.chromium.org/2080573003/diff/1/chrome/renderer/extensions/automation_internal_custom_bindings.cc File chrome/renderer/extensions/automation_internal_custom_bindings.cc (left): https://codereview.chromium.org/2080573003/diff/1/chrome/renderer/extensions/automation_internal_custom_bindings.cc#oldcode1101 chrome/renderer/extensions/automation_internal_custom_bindings.cc:1101: api::automation::TREE_CHANGE_TYPE_NODEREMOVED, I think you still need to call this, ...
4 years, 6 months ago (2016-06-20 22:47:23 UTC) #5
David Tseng
On 2016/06/20 22:47:23, dmazzoni wrote: > https://codereview.chromium.org/2080573003/diff/1/chrome/renderer/extensions/automation_internal_custom_bindings.cc > File chrome/renderer/extensions/automation_internal_custom_bindings.cc (left): > > https://codereview.chromium.org/2080573003/diff/1/chrome/renderer/extensions/automation_internal_custom_bindings.cc#oldcode1101 > ...
4 years, 6 months ago (2016-06-22 17:03:41 UTC) #6
dmazzoni
On 2016/06/22 17:03:41, David Tseng wrote: > On 2016/06/20 22:47:23, dmazzoni wrote: > > > ...
4 years, 6 months ago (2016-06-22 17:06:27 UTC) #7
David Tseng
On 2016/06/22 17:06:27, dmazzoni wrote: > On 2016/06/22 17:03:41, David Tseng wrote: > > On ...
4 years, 5 months ago (2016-06-24 21:22:37 UTC) #8
David Tseng
New approach. PTAL.
4 years, 3 months ago (2016-09-06 22:29:56 UTC) #10
dmazzoni
This approach lgtm. This class has pretty good unit test coverage now, let's keep it ...
4 years, 3 months ago (2016-09-06 22:49:44 UTC) #13
David Tseng
On Tue, Sep 6, 2016 at 3:49 PM, <dmazzoni@chromium.org> wrote: > This approach lgtm. > ...
4 years, 3 months ago (2016-09-07 00:10:09 UTC) #16
dmazzoni
Ah, forgot about the dtor, that makes sense. On Tue, Sep 6, 2016 at 5:10 ...
4 years, 3 months ago (2016-09-07 05:00:09 UTC) #17
David Tseng
Added test and also fixed the reparented/created OnNodeCreated case to not notify delegates on a ...
4 years, 3 months ago (2016-09-07 16:37:01 UTC) #18
dmazzoni
still lgtm, thanks for the test On 2016/09/07 at 16:37:01, dtseng wrote: > Btw, are ...
4 years, 3 months ago (2016-09-07 16:54:09 UTC) #19
commit-bot: I haz the power
Committed patchset #9 (id:160001)
4 years, 3 months ago (2016-09-08 06:36:18 UTC) #47
commit-bot: I haz the power
4 years, 3 months ago (2016-09-08 06:38:36 UTC) #49
Message was sent while issue was closed.
Patchset 9 (id:??) landed as
https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb
Cr-Commit-Position: refs/heads/master@{#417207}

Powered by Google App Engine
This is Rietveld 408576698