Backed out changeset 2752efeb2fdd (
Bug 535004: Check if we've fired an unload event before calling OnPageShow, in DocumentViewerImpl::LoadComplete) because the NS_ABORT_IF_FALSE that it added is firing in reftest and crashtest, at least on Linux.
Backed out changeset 2752efeb2fdd (
Bug 535004: Check if we've fired an unload event before calling OnPageShow, in DocumentViewerImpl::LoadComplete) because the NS_ABORT_IF_FALSE that it added is firing in reftest and crashtest, at least on Linux.
--- a/content/base/src/nsDocument.cpp
+++ b/content/base/src/nsDocument.cpp
@@ -3604,21 +3604,16 @@ nsDocument::SetScriptGlobalObject(nsIScr
#ifdef DEBUG
{
nsCOMPtr<nsPIDOMWindow> win(do_QueryInterface(aScriptGlobalObject));
NS_ASSERTION(!win || win->IsInnerWindow(),
"Script global object must be an inner window!");
}
#endif
- NS_ABORT_IF_FALSE(aScriptGlobalObject || !mAnimationController ||
- mAnimationController->IsPausedByType(
- nsSMILTimeContainer::PAUSE_PAGEHIDE |
- nsSMILTimeContainer::PAUSE_BEGIN),
- "Clearing window pointer while animations are unpaused");
if (mScriptGlobalObject && !aScriptGlobalObject) {
// We're detaching from the window. We need to grab a pointer to
// our layout history state now.
mLayoutHistoryState = GetLayoutHistoryState();
// Also make sure to remove our onload blocker now if we haven't done it yet
if (mOnloadBlockCount != 0) {
--- a/layout/base/nsDocumentViewer.cpp
+++ b/layout/base/nsDocumentViewer.cpp
@@ -1062,19 +1062,20 @@ DocumentViewerImpl::LoadComplete(nsresul
// Notify the document that it has been shown (regardless of whether
// it was just loaded). Note: mDocument may be null now if the above
// firing of onload caused the document to unload.
if (mDocument) {
// Re-get window, since it might have changed during above firing of onload
window = mDocument->GetWindow();
if (window) {
nsIDocShell *docShell = window->GetDocShell();
- PRBool isInUnload;
- if (docShell && NS_SUCCEEDED(docShell->GetIsInUnload(&isInUnload)) &&
- !isInUnload) {
+ PRBool beingDestroyed;
+ if (docShell &&
+ NS_SUCCEEDED(docShell->IsBeingDestroyed(&beingDestroyed)) &&
+ !beingDestroyed) {
mDocument->OnPageShow(restoring, nsnull);
}
}
}
// Now that the document has loaded, we can tell the presshell
// to unsuppress painting.
if (mPresShell && !mStopped) {