Reviewed by cblu.
authorkdecker <kdecker@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Jul 2005 21:52:15 +0000 (21:52 +0000)
committerkdecker <kdecker@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Jul 2005 21:52:15 +0000 (21:52 +0000)
Fixed:
  http://bugzilla.opendarwin.org/show_bug.cgi?id=3968
 <rdar://problem/4172645> REGRESSION: top frame only loads at banking site - http://www.skandiabanken.no

        Test cases added: None; This fixes a race condition that is not reproducible locally.

        * khtml/khtml_part.cpp:
        (KHTMLPart::scheduleLocationChange): If a redirect was scheduled during a load, then stop the current load. Otherwise when the current load transitions from a provisional to a committed state, pending redirects may be cancelled.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog-2005-08-23
WebCore/khtml/khtml_part.cpp

index d2a85f42e624f97c6db729fb9ee90e00a0d6a7c6..13346a811ac449083558a9c8af8e3bc21c5a95c7 100644 (file)
@@ -1,3 +1,16 @@
+2005-07-12  Kevin Decker  <kdecker@apple.com>
+
+         Reviewed by cblu.
+
+       Fixed: 
+         http://bugzilla.opendarwin.org/show_bug.cgi?id=3968
+        <rdar://problem/4172645> REGRESSION: top frame only loads at banking site - http://www.skandiabanken.no
+
+        Test cases added: None; This fixes a race condition that is not reproducible locally.
+
+        * khtml/khtml_part.cpp:
+        (KHTMLPart::scheduleLocationChange): If a redirect was scheduled during a load, then stop the current load. Otherwise when the current load transitions from a provisional to a committed state, pending redirects may be cancelled. 
+
 2005-07-12  Beth Dakin  <bdakin@apple.com>
 
        Fix for http://bugzilla.opendarwin.org/show_bug.cgi?id=3942 and marquee problems in Radar bug 
index 3496b82b71e6cf7784fd475107b4f8802646be52..5ee17a032bbc1f049b596b214df0f9f722313dd5 100644 (file)
@@ -2069,6 +2069,14 @@ void KHTMLPart::scheduleLocationChange(const QString &url, const QString &referr
     // Handle a location change of a page with no document as a special case.
     // This may happen when a frame changes the location of another frame.
     d->m_scheduledRedirection = d->m_doc ? locationChangeScheduled : locationChangeScheduledDuringLoad;
+    
+    // If a redirect was scheduled during a load, then stop the current load.
+    // Otherwise when the current load transitions from a provisional to a 
+    // committed state, pending redirects may be cancelled. 
+    if (locationChangeScheduledDuringLoad) {
+        stopLoading(true);   
+    }
+    
     d->m_delayRedirect = 0;
     d->m_redirectURL = url;
     d->m_redirectReferrer = referrer;