Reviewed by Darin.
[WebKit-https.git] / WebCore / khtml / xml / dom_docimpl.cpp
index 954b27fd7f72dc2b74518fb12cc8e59331b3b17a..2343eed96a2d6e651303cd1080e9f7f76382c554 100644 (file)
@@ -1350,9 +1350,9 @@ HTMLElementImpl* DocumentImpl::body()
 void DocumentImpl::close()
 {
     // First fire the onload.
-    bool doload = !parsing() && m_tokenizer && !m_processingLoadEvent;
     
     bool wasLocationChangePending = part() && part()->isScheduledLocationChangePending();
+    bool doload = !parsing() && m_tokenizer && !m_processingLoadEvent && !wasLocationChangePending;
     
     if (body() && doload) {
         m_processingLoadEvent = true;
@@ -1376,8 +1376,8 @@ void DocumentImpl::close()
     
     bool isLocationChangePending = part() && part()->isScheduledLocationChangePending();
     
-    if (doload && !wasLocationChangePending && isLocationChangePending && m_startTime.elapsed() < cLayoutScheduleThreshold) {
-       // Just bail out. During the onload we were shifted to another page.
+    if (doload && isLocationChangePending && m_startTime.elapsed() < cLayoutScheduleThreshold) {
+       // Just bail out. Before or during the onload we were shifted to another page.
        // The old i-Bench suite does this. When this happens don't bother painting or laying out.        
        delete m_tokenizer;
        m_tokenizer = 0;