Reviewed by Maciej.
authorandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 8 Mar 2007 02:18:49 +0000 (02:18 +0000)
committerandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 8 Mar 2007 02:18:49 +0000 (02:18 +0000)
        <rdar://problem/4874059>
        REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()

        If a load is done from inside of an error delegate method that is called because we cancel another load,
        the first load should be ignored since this is what shipping WebKit does.

        (Actually, it does load the page in the data source but doesn't do anything with it since the data source
        won't have a web frame).

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::load):
        Just bail out if m_isStoppingLoad is true.

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

WebCore/ChangeLog
WebCore/loader/FrameLoader.cpp

index 87970d3..25cab85 100644 (file)
@@ -1,3 +1,20 @@
+2007-03-07  Anders Carlsson  <acarlsson@apple.com>
+
+        Reviewed by Maciej.
+
+        <rdar://problem/4874059>
+        REGRESSION: Painter IX:register - Crash in WebCore:: ResourceLoader::willSendRequest()
+
+        If a load is done from inside of an error delegate method that is called because we cancel another load, 
+        the first load should be ignored since this is what shipping WebKit does. 
+        
+        (Actually, it does load the page in the data source but doesn't do anything with it since the data source
+        won't have a web frame).
+        
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::load):
+        Just bail out if m_isStoppingLoad is true.
+
 2007-03-07  David Hyatt  <hyatt@apple.com>
 
         Use CGImageRelease instead of CFRelease.
index f8b12c3..d9abf39 100644 (file)
@@ -1801,6 +1801,9 @@ void FrameLoader::load(const KURL& URL, const String& referrer, FrameLoadType ne
 
 void FrameLoader::load(const ResourceRequest& request)
 {
+    if (m_inStopAllLoaders)
+        return;
+    
     load(request, SubstituteData());
 }