Backed out changeset eb97347c9690 (bug 1340579) for a11y assertion failures and PLDHashTable crashes

CLOSED TREE
This commit is contained in:
Phil Ringnalda 2017-02-24 20:56:38 -08:00
Родитель a43669cbbd
Коммит 75522649b2
1 изменённых файлов: 8 добавлений и 28 удалений

Просмотреть файл

@ -477,16 +477,8 @@ DocAccessibleParent::Destroy()
}
}
int32_t actorID = IProtocol::Id();
for (uint32_t i = childDocCount - 1; i < childDocCount; i--) {
DocAccessibleParent* thisDoc = LiveDocs().Get(actorID);
MOZ_ASSERT(thisDoc);
if (!thisDoc) {
break;
}
thisDoc->ChildDocAt(i)->Destroy();
}
for (uint32_t i = childDocCount - 1; i < childDocCount; i--)
ChildDocAt(i)->Destroy();
for (auto iter = mAccessibles.Iter(); !iter.Done(); iter.Next()) {
MOZ_ASSERT(iter.Get()->mProxy != this);
@ -496,25 +488,13 @@ DocAccessibleParent::Destroy()
// The code above should have already completely cleared these, but to be
// extra safe make sure they are cleared here.
DocAccessibleParent* thisDoc = LiveDocs().Get(actorID);
MOZ_ASSERT(thisDoc);
if (!thisDoc) {
return;
}
mAccessibles.Clear();
mChildDocs.Clear();
thisDoc->mAccessibles.Clear();
thisDoc->mChildDocs.Clear();
DocManager::NotifyOfRemoteDocShutdown(thisDoc);
ProxyDestroyed(thisDoc);
thisDoc = LiveDocs().Get(actorID);
MOZ_ASSERT(thisDoc);
if (!thisDoc) {
return;
}
if (DocAccessibleParent* parentDoc = thisDoc->ParentDoc())
parentDoc->RemoveChildDoc(thisDoc);
DocManager::NotifyOfRemoteDocShutdown(this);
ProxyDestroyed(this);
if (DocAccessibleParent* parentDoc = ParentDoc())
parentDoc->RemoveChildDoc(this);
else if (IsTopLevel())
GetAccService()->RemoteDocShutdown(this);
}