Bug 1205476 - crash in mozilla::a11y::DocAccessible::ProcessInvalidationList(), part3, r=davidb
authorAlexander Surkov <surkov.alexander@gmail.com>
Fri, 25 Sep 2015 12:11:49 -0400
changeset 264735 23ec08e5d23fb9d413d09ce8d5acb955df4195cb
parent 264734 7cce3d53cf661033119f929729cb11984f51d1b5
child 264736 da63c513fe8cd73d1a77346f424675714b100871
push id65716
push usersurkov.alexander@gmail.com
push dateMon, 28 Sep 2015 14:01:47 +0000
treeherdermozilla-inbound@23ec08e5d23f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdavidb
bugs1205476
milestone44.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1205476 - crash in mozilla::a11y::DocAccessible::ProcessInvalidationList(), part3, r=davidb
accessible/generic/DocAccessible.cpp
--- a/accessible/generic/DocAccessible.cpp
+++ b/accessible/generic/DocAccessible.cpp
@@ -1352,16 +1352,21 @@ DocAccessible::ProcessInvalidationList()
       continue;
     }
 
     Accessible* child = GetAccessible(mARIAOwnsInvalidationList[idx].mChild);
     if (!child || !child->IsInDocument()) {
       continue;
     }
 
+    if (!child->Parent()) {
+      NS_ERROR("The accessible is in document but doesn't have a parent");
+      continue;
+    }
+
     // XXX: update context flags
     {
       Accessible* oldParent = child->Parent();
       nsRefPtr<AccReorderEvent> reorderEvent = new AccReorderEvent(oldParent);
       nsRefPtr<AccMutationEvent> hideEvent =
         new AccHideEvent(child, child->GetContent(), false);
       FireDelayedEvent(hideEvent);
       reorderEvent->AddSubMutationEvent(hideEvent);