From b230f09954073a295dfbd1c7b53a67ac7bb47087 Mon Sep 17 00:00:00 2001 From: "bzbarsky%mit.edu" Date: Fri, 27 Apr 2007 04:05:08 +0000 Subject: [PATCH] Don't unblock onload on the document if we no longer have a parser. Bug 375051, r=mbkap, sr=sicking git-svn-id: svn://10.0.0.236/trunk@225123 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/content/base/src/nsContentSink.cpp | 5 +++++ mozilla/content/html/document/src/nsHTMLContentSink.cpp | 1 + mozilla/content/xml/document/src/nsXMLContentSink.cpp | 1 + 3 files changed, 7 insertions(+) diff --git a/mozilla/content/base/src/nsContentSink.cpp b/mozilla/content/base/src/nsContentSink.cpp index f7a6be29bdb..196a5f0fb28 100644 --- a/mozilla/content/base/src/nsContentSink.cpp +++ b/mozilla/content/base/src/nsContentSink.cpp @@ -1350,6 +1350,11 @@ nsContentSink::DidBuildModelImpl(void) void nsContentSink::DropParserAndPerfHint(void) { + if (!mParser) { + // Make sure we don't unblock unload too many times + return; + } + // Ref. Bug 49115 // Do this hack to make sure that the parser // doesn't get destroyed, accidently, before diff --git a/mozilla/content/html/document/src/nsHTMLContentSink.cpp b/mozilla/content/html/document/src/nsHTMLContentSink.cpp index 44570063f32..d97e2bb6f6b 100644 --- a/mozilla/content/html/document/src/nsHTMLContentSink.cpp +++ b/mozilla/content/html/document/src/nsHTMLContentSink.cpp @@ -1872,6 +1872,7 @@ HTMLContentSink::DidBuildModel(void) NS_IMETHODIMP HTMLContentSink::SetParser(nsIParser* aParser) { + NS_PRECONDITION(aParser, "Should have a parser here!"); mParser = aParser; return NS_OK; } diff --git a/mozilla/content/xml/document/src/nsXMLContentSink.cpp b/mozilla/content/xml/document/src/nsXMLContentSink.cpp index e3ceda09ed0..c4ebbbd8102 100644 --- a/mozilla/content/xml/document/src/nsXMLContentSink.cpp +++ b/mozilla/content/xml/document/src/nsXMLContentSink.cpp @@ -449,6 +449,7 @@ nsXMLContentSink::WillResume(void) NS_IMETHODIMP nsXMLContentSink::SetParser(nsIParser* aParser) { + NS_PRECONDITION(aParser, "Should have a parser here!"); mParser = aParser; return NS_OK; }