New issue
Advanced search Search tips

Issue 642799 link

Starred by 2 users

Issue metadata

Status: Verified
Owner: ----
Closed: Sep 2016
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Chrome , Mac
Pri: 3
Type: Bug
Team-Accessibility


Sign in to add a comment

AXTreeSerializer destroys siblings (and their subtrees) of reparented nodes client side

Project Member Reported by dtseng@chromium.org, Aug 31 2016

Issue description

Using this bug to track issues caused by the aggressive node / subtree destruction by AXTreeSerializer


 

Comment 1 by dtseng@chromium.org, Aug 31 2016

Blocking: 641760

Comment 2 by dtseng@chromium.org, Aug 31 2016

Blocking: 641213

Comment 3 by dtseng@chromium.org, Aug 31 2016

Summary: AXTreeSerializer destroys siblings (and their subtrees) of reparented nodes client side (was: AXTreeSerializer causes reparented nodes to be destroyed client side)
Blocking: 643925 621665
Labels: framework cvox2
Blocking: 641758
Project Member

Comment 7 by bugdroid1@chromium.org, Sep 8 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5a7b3d983322a039f87553ae936b37984f81efcb

commit 5a7b3d983322a039f87553ae936b37984f81efcb
Author: dtseng <dtseng@chromium.org>
Date: Thu Sep 08 06:35:58 2016

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.

Review-Url: https://codereview.chromium.org/2080573003
Cr-Commit-Position: refs/heads/master@{#417207}

[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/chrome/renderer/extensions/automation_internal_custom_bindings.cc
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/chrome/renderer/extensions/automation_internal_custom_bindings.h
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/content/browser/accessibility/browser_accessibility_manager.cc
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/content/browser/accessibility/browser_accessibility_manager.h
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/ui/accessibility/ax_tree.cc
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/ui/accessibility/ax_tree.h
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/ui/accessibility/ax_tree_unittest.cc
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/ui/accessibility/platform/test_ax_node_wrapper.cc

Status: Fixed (was: Available)
Blocking: 630042
Blocking: 641730
Blocking: 631885
Project Member

Comment 12 by bugdroid1@chromium.org, Sep 8 2016

Labels: merge-merged-2854
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5a7b3d983322a039f87553ae936b37984f81efcb

commit 5a7b3d983322a039f87553ae936b37984f81efcb
Author: dtseng <dtseng@chromium.org>
Date: Thu Sep 08 06:35:58 2016

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.

Review-Url: https://codereview.chromium.org/2080573003
Cr-Commit-Position: refs/heads/master@{#417207}

[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/chrome/renderer/extensions/automation_internal_custom_bindings.cc
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/chrome/renderer/extensions/automation_internal_custom_bindings.h
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/content/browser/accessibility/browser_accessibility_manager.cc
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/content/browser/accessibility/browser_accessibility_manager.h
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/ui/accessibility/ax_tree.cc
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/ui/accessibility/ax_tree.h
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/ui/accessibility/ax_tree_unittest.cc
[modify] https://crrev.com/5a7b3d983322a039f87553ae936b37984f81efcb/ui/accessibility/platform/test_ax_node_wrapper.cc

Blocking: 628910
Blocking: 641759
Blocking: 619269 619334
Status: Verified (was: Fixed)

Sign in to add a comment