Reviewed by Darin.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Oct 2006 07:32:58 +0000 (07:32 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Oct 2006 07:32:58 +0000 (07:32 +0000)
        - removed need for WebFrameLoader to now about WebDocumentLoaderMac

        * Loader/WebFrameLoader.m:
        (-[WebFrameLoader loadDataSource:withLoadType:formState:]):
        * WebView/WebDocumentLoaderMac.h:
        * WebView/WebDocumentLoaderMac.m:
        (-[WebDocumentLoaderMac setFrameLoader:]):
        (-[WebDocumentLoaderMac detachFromFrameLoader]):

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

WebKit/ChangeLog
WebKit/Loader/WebFrameLoader.m
WebKit/WebView/WebDocumentLoaderMac.h
WebKit/WebView/WebDocumentLoaderMac.m

index bda46c9468529c910587216c40da9aacf656936f..c75924ad232a2fc2c03fb956c827c814a6f39de0 100644 (file)
@@ -1,3 +1,16 @@
+2006-10-09  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
+        - removed need for WebFrameLoader to now about WebDocumentLoaderMac 
+
+        * Loader/WebFrameLoader.m:
+        (-[WebFrameLoader loadDataSource:withLoadType:formState:]):
+        * WebView/WebDocumentLoaderMac.h:
+        * WebView/WebDocumentLoaderMac.m:
+        (-[WebDocumentLoaderMac setFrameLoader:]):
+        (-[WebDocumentLoaderMac detachFromFrameLoader]):
+
 2006-10-09  Darin Adler  <darin@apple.com>
 
         Reviewed by Maciej.
index ea6e440e80680ef2b65ba12cbc7d2039cbc73d94..e84256df137f901d6b58ed5e01bb86806213331e 100644 (file)
@@ -39,7 +39,6 @@
 #import <WebCore/WebCoreSystemInterface.h>
 
 #import "WebDataSourceInternal.h"
-#import "WebDocumentLoaderMac.h"
 #import "WebFrameInternal.h"
 #import "WebIconDatabasePrivate.h"
 #import "WebKitErrorsPrivate.h"
@@ -1563,14 +1562,13 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
     policyLoadType = type;
 
-    WebDocumentLoaderMac *loader = (WebDocumentLoaderMac *)[newDataSource _documentLoader];
+    WebDocumentLoader *loader = [newDataSource _documentLoader];
 
     WebFrame *parentFrame = [client parentFrame];
     if (parentFrame)
         [loader setOverrideEncoding:[[[parentFrame dataSource] _documentLoader] overrideEncoding]];
 
     [loader setFrameLoader:self];
-    [loader setDataSource:newDataSource];
 
     [self invalidatePendingPolicyDecisionCallingDefaultAction:YES];
 
index 8043f3a60f083f0674aab9c1ef0682775ea5f21f..e511e186294c5d201a9b5e4153391204c3729751 100644 (file)
@@ -34,6 +34,7 @@
 {
     @public
     WebDataSource *dataSource;
+    WebDataSource *detachedDataSource; // not retained
 }
 
 - (id)initWithRequest:(NSURLRequest *)request;
index d976ff63c6655a4860e93a81ed8081f42a857b71..9dd3da7e16b229379ef5fb0f73ad34d23f09292c 100644 (file)
     return dataSource;
 }
 
+- (void)setFrameLoader:(WebFrameLoader *)fl
+{
+    [super setFrameLoader:fl];
+    if (detachedDataSource) {
+        ASSERT(!dataSource);
+        [self setDataSource:detachedDataSource];
+        detachedDataSource = nil;
+    }
+}
+
 - (void)detachFromFrameLoader
 {
     [super detachFromFrameLoader];
+    detachedDataSource = dataSource;
     [self setDataSource:nil];
 }