I can't reproduce the crash and I can't quite figure out what's wrong. @dmazzoni could ...
4 years, 10 months ago
(2015-06-29 14:58:06 UTC)
#9
Message was sent while issue was closed.
I can't reproduce the crash and I can't quite figure out what's wrong. @dmazzoni
could you comment on my ideas?
One theory I have is that LayoutObject assumes that AXObjectCache::remove(Node*)
is called after AXObjectCache::remove(LayoutObject*).
The comments in LayoutObject::willBeDestroyed says
// For accessibility management, notify the parent of the imminent change to its
child set.
// We do it now, before remove(), while the parent pointer is still available.
Somehow calling remove before childrenChanged is causing it to create ancestor
AXObjects and hitting a stale pointer.
We can move the removals in Document::detach after ContainerNode::detach is
called.
https://codereview.chromium.org/1213203002
Another theory is that AXObject::childrenChanged shouldn't be creating new
AXObjects at all.
ancestorForWhichThisIsAPresentationalChild() is used in
AXNodeObject::childrenChanged so it can skip walking the entire ancestor chain.
However ancestorForWhichThisIsAPresentationalChild() is calling parentObject()
which might create a parent object. If parentObjectIfExists is null there is no
ancestor chain to walk. In that case isn't calling parentObject() just adding
work? This CL changes ancestorForWhichThisIsAPresentationalChild so it only uses
parentObjectIfExists.
https://codereview.chromium.org/1214183002
keishi
The CQ bit was checked by keishi@chromium.org
4 years, 5 months ago
(2015-11-16 08:55:24 UTC)
#10
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1207613004/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1207613004/60001
4 years, 5 months ago
(2015-11-16 08:55:39 UTC)
#12
Issue 1207613004: Fix leaking AXNodeObjects when sub document detaches
(Closed)
Created 4 years, 10 months ago by keishi
Modified 4 years, 5 months ago
Reviewers: dmazzoni, haraken
Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Comments: 1