Reviewed by Brady.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Oct 2006 19:31:27 +0000 (19:31 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Oct 2006 19:31:27 +0000 (19:31 +0000)
        - eliminated WebFrameLoader dependency on WebDataSourceInternal.h,
          WebIconDatabasePrivate.h, and WebKitErrorsPrivate.h, along with
          most but not all references to WebView

        * Loader/WebFrameLoader.h:
        * Loader/WebFrameLoader.m:
        (-[WebFrameLoader removePlugInStreamLoader:]):
        (-[WebFrameLoader _receivedMainResourceError:complete:]):
        (-[WebFrameLoader _notifyIconChanged:]):
        (-[WebFrameLoader cancelledErrorWithRequest:]):
        (-[WebFrameLoader fileDoesNotExistErrorWithResponse:]):
        (-[WebFrameLoader handleUnimplementablePolicyWithError:]):
        (-[WebFrameLoader cannotShowMIMETypeWithResponse:]):
        (-[WebFrameLoader interruptForPolicyChangeErrorWithRequest:]):
        (-[WebFrameLoader _loadRequest:archive:]):
        (-[WebFrameLoader finishedLoadingDocument:]):
        (-[WebFrameLoader committedLoadWithDocumentLoader:data:]):
        (-[WebFrameLoader revertToProvisionalWithDocumentLoader:]):
        (-[WebFrameLoader documentLoader:setMainDocumentError:]):
        (-[WebFrameLoader finalSetupForReplaceWithDocumentLoader:]):
        (-[WebFrameLoader didChangeTitleForDocument:]):
        (-[WebFrameLoader continueAfterNavigationPolicy:]):
        (-[WebFrameLoader continueLoadRequestAfterNavigationPolicy:formState:]):
        (-[WebFrameLoader loadDocumentLoader:withLoadType:formState:]):
        (-[WebFrameLoader transitionToCommitted:]):
        (-[WebFrameLoader checkLoadCompleteForThisFrame]):
        (-[WebFrameLoader requestFromDelegateForRequest:identifier:error:]):
        (-[WebFrameLoader addExtraFieldsToRequest:mainResource:alwaysFromRequest:]):
        (-[WebFrameLoader checkLoadComplete]):
        * Loader/WebFrameLoaderClient.h:
        * Loader/WebMainResourceLoader.m:
        (-[WebMainResourceLoader continueAfterContentPolicy:response:]):
        * WebView/WebFrame.m:
        (-[WebFrame _addDocumentLoader:toUnarchiveState:]):
        (-[WebFrame _formDelegate]):
        (-[WebFrame _finishedLoadingDocument:]):
        (-[WebFrame _committedLoadWithDocumentLoader:data:]):
        (-[WebFrame _revertToProvisionalWithDocumentLoader:]):
        (-[WebFrame _documentLoader:setMainDocumentError:]):
        (-[WebFrame _finalSetupForReplaceWithDocumentLoader:]):
        (-[WebFrame _URLForHistoryForDocumentLoader:]):
        (-[WebFrame _cancelledErrorWithRequest:]):
        (-[WebFrame _cannotShowURLErrorWithRequest:]):
        (-[WebFrame _interruptForPolicyChangeErrorWithRequest:]):
        (-[WebFrame _cannotShowMIMETypeErrorWithResponse:]):
        (-[WebFrame _fileDoesNotExistErrorWithResponse:]):
        (-[WebFrame _shouldFallBackForError:]):
        (-[WebFrame _hasWebView]):
        (-[WebFrame _mainFrameURL]):
        * WebView/WebFrameInternal.h:

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

WebKit/ChangeLog
WebKit/Loader/WebFrameLoader.h
WebKit/Loader/WebFrameLoader.m
WebKit/Loader/WebFrameLoaderClient.h
WebKit/Loader/WebMainResourceLoader.m
WebKit/WebView/WebFrame.m
WebKit/WebView/WebFrameInternal.h

index 0b9f162033280bf6eedb7f49587132c700c84804..c8802a6ea78862f378c6af5b87014f963a7b7fbc 100644 (file)
@@ -1,3 +1,58 @@
+2006-10-09  Darin Adler  <darin@apple.com>
+
+        Reviewed by Brady.
+
+        - eliminated WebFrameLoader dependency on WebDataSourceInternal.h,
+          WebIconDatabasePrivate.h, and WebKitErrorsPrivate.h, along with
+          most but not all references to WebView
+
+        * Loader/WebFrameLoader.h:
+        * Loader/WebFrameLoader.m:
+        (-[WebFrameLoader removePlugInStreamLoader:]):
+        (-[WebFrameLoader _receivedMainResourceError:complete:]):
+        (-[WebFrameLoader _notifyIconChanged:]):
+        (-[WebFrameLoader cancelledErrorWithRequest:]):
+        (-[WebFrameLoader fileDoesNotExistErrorWithResponse:]):
+        (-[WebFrameLoader handleUnimplementablePolicyWithError:]):
+        (-[WebFrameLoader cannotShowMIMETypeWithResponse:]):
+        (-[WebFrameLoader interruptForPolicyChangeErrorWithRequest:]):
+        (-[WebFrameLoader _loadRequest:archive:]):
+        (-[WebFrameLoader finishedLoadingDocument:]):
+        (-[WebFrameLoader committedLoadWithDocumentLoader:data:]):
+        (-[WebFrameLoader revertToProvisionalWithDocumentLoader:]):
+        (-[WebFrameLoader documentLoader:setMainDocumentError:]):
+        (-[WebFrameLoader finalSetupForReplaceWithDocumentLoader:]):
+        (-[WebFrameLoader didChangeTitleForDocument:]):
+        (-[WebFrameLoader continueAfterNavigationPolicy:]):
+        (-[WebFrameLoader continueLoadRequestAfterNavigationPolicy:formState:]):
+        (-[WebFrameLoader loadDocumentLoader:withLoadType:formState:]):
+        (-[WebFrameLoader transitionToCommitted:]):
+        (-[WebFrameLoader checkLoadCompleteForThisFrame]):
+        (-[WebFrameLoader requestFromDelegateForRequest:identifier:error:]):
+        (-[WebFrameLoader addExtraFieldsToRequest:mainResource:alwaysFromRequest:]):
+        (-[WebFrameLoader checkLoadComplete]):
+        * Loader/WebFrameLoaderClient.h:
+        * Loader/WebMainResourceLoader.m:
+        (-[WebMainResourceLoader continueAfterContentPolicy:response:]):
+        * WebView/WebFrame.m:
+        (-[WebFrame _addDocumentLoader:toUnarchiveState:]):
+        (-[WebFrame _formDelegate]):
+        (-[WebFrame _finishedLoadingDocument:]):
+        (-[WebFrame _committedLoadWithDocumentLoader:data:]):
+        (-[WebFrame _revertToProvisionalWithDocumentLoader:]):
+        (-[WebFrame _documentLoader:setMainDocumentError:]):
+        (-[WebFrame _finalSetupForReplaceWithDocumentLoader:]):
+        (-[WebFrame _URLForHistoryForDocumentLoader:]):
+        (-[WebFrame _cancelledErrorWithRequest:]):
+        (-[WebFrame _cannotShowURLErrorWithRequest:]):
+        (-[WebFrame _interruptForPolicyChangeErrorWithRequest:]):
+        (-[WebFrame _cannotShowMIMETypeErrorWithResponse:]):
+        (-[WebFrame _fileDoesNotExistErrorWithResponse:]):
+        (-[WebFrame _shouldFallBackForError:]):
+        (-[WebFrame _hasWebView]):
+        (-[WebFrame _mainFrameURL]):
+        * WebView/WebFrameInternal.h:
+
 2006-10-09  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed, landed, tweaked a bit by Darin.
index db4cda5b0a4390baa71136110e8d7c41b487a5e5..b7d7bb4803e2119b3befb0c71716ad605a86f5c3 100644 (file)
@@ -187,7 +187,7 @@ BOOL isBackForwardLoadType(FrameLoadType type);
 - (void)deliverArchivedResourcesAfterDelay;
 - (void)cancelPendingArchiveLoadForLoader:(WebLoader *)loader;
 - (void)clearArchivedResources;
-- (void)cannotShowMIMETypeForURL:(NSURL *)URL;
+- (void)cannotShowMIMETypeWithResponse:(NSURLResponse *)response;
 - (NSError *)interruptForPolicyChangeErrorWithRequest:(NSURLRequest *)request;
 - (BOOL)isHostedByObjectElement;
 - (BOOL)isLoadingMainFrame;
@@ -227,7 +227,6 @@ BOOL isBackForwardLoadType(FrameLoadType type);
 - (void)continueAfterWillSubmitForm:(WebPolicyAction)policy;
 - (void)continueLoadRequestAfterNavigationPolicy:(NSURLRequest *)request formState:(WebFormState *)formState;
 - (void)loadDocumentLoader:(WebDocumentLoader *)loader withLoadType:(FrameLoadType)loadType formState:(WebFormState *)formState;
-- (void)handleUnimplementablePolicyWithErrorCode:(int)code forURL:(NSURL *)URL;
 
 - (void)didFirstLayout;
 - (BOOL)firstLayoutDone;
index d6564851a39e31653599b6c684aa3f96afeadff9..536b3257c0b3b9fda73e24d97efec0ee9c868e0e 100644 (file)
 #import <JavaScriptCore/Assertions.h>
 #import <WebKit/DOMHTML.h>
 #import <WebCore/WebCoreFrameBridge.h>
+#import <WebCore/WebCoreIconDatabaseBridge.h>
 #import <WebCore/WebCoreSystemInterface.h>
 
-#import "WebDataSourceInternal.h"
 #import "WebFrameInternal.h"
-#import "WebIconDatabasePrivate.h"
-#import "WebKitErrorsPrivate.h"
 #import "WebNSURLExtras.h"
 #import "WebResourcePrivate.h"
 #import "WebViewInternal.h"
@@ -118,7 +116,7 @@ BOOL isBackForwardLoadType(FrameLoadType type)
 {
     [plugInStreamLoaders removeObject:loader];
     [[self activeDocumentLoader] updateLoading];
-}    
+}
 
 - (void)defersCallbacksChanged
 {
@@ -501,8 +499,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
         // that both data sources on the frame are either self or nil.
         // Can't call _bridge because we might not have commited yet
         [bridge stop];
-        // FIXME: WebKitErrorPlugInWillHandleLoad is a workaround for the cancel we do to prevent loading plugin content twice.  See <rdar://problem/4258008>
-        if ([error code] != NSURLErrorCancelled && [error code] != WebKitErrorPlugInWillHandleLoad)
+        if ([cli _shouldFallBackForError:error])
             [bridge handleFallbackContent];
     }
     
@@ -856,8 +853,10 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
 - (void)_notifyIconChanged:(NSURL *)iconURL
 {
-    ASSERT([[WebIconDatabase sharedIconDatabase] _isEnabled]);
-    NSImage *icon = [[WebIconDatabase sharedIconDatabase] iconForURL:[[[self activeDocumentLoader] URL] _web_originalDataAsString] withSize:WebIconSmallSize];
+    ASSERT([[WebCoreIconDatabaseBridge sharedInstance] _isEnabled]);
+    NSImage *icon = [[WebCoreIconDatabaseBridge sharedInstance]
+        iconForPageURL:[[[self activeDocumentLoader] URL] _web_originalDataAsString]
+        withSize:NSMakeSize(16, 16)];
     [client _dispatchDidReceiveIcon:icon];
 }
 
@@ -868,12 +867,12 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
 - (NSError *)cancelledErrorWithRequest:(NSURLRequest *)request
 {
-    return [NSError _webKitErrorWithDomain:NSURLErrorDomain code:NSURLErrorCancelled URL:[request URL]];
+    return [client _cancelledErrorWithRequest:request];
 }
 
 - (NSError *)fileDoesNotExistErrorWithResponse:(NSURLResponse *)response
 {
-    return [NSError _webKitErrorWithDomain:NSURLErrorDomain code:NSURLErrorFileDoesNotExist URL:[response URL]];    
+    return [client _fileDoesNotExistErrorWithResponse:response];    
 }
 
 - (void)clearArchivedResources
@@ -979,14 +978,21 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
         [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(deliverArchivedResources) object:nil];
 }
 
-- (void)cannotShowMIMETypeForURL:(NSURL *)URL
+- (void)handleUnimplementablePolicyWithError:(NSError *)error
+{
+    delegateIsHandlingUnimplementablePolicy = YES;
+    [client _dispatchUnableToImplementPolicyWithError:error];
+    delegateIsHandlingUnimplementablePolicy = NO;
+}
+
+- (void)cannotShowMIMETypeWithResponse:(NSURLResponse *)response
 {
-    [self handleUnimplementablePolicyWithErrorCode:WebKitErrorCannotShowMIMEType forURL:URL];    
+    [self handleUnimplementablePolicyWithError:[client _cannotShowMIMETypeErrorWithResponse:response]];    
 }
 
 - (NSError *)interruptForPolicyChangeErrorWithRequest:(NSURLRequest *)request
 {
-    return [NSError _webKitErrorWithDomain:WebKitErrorDomain code:WebKitErrorFrameLoadInterruptedByPolicyChange URL:[request URL]];
+    return [client _interruptForPolicyChangeErrorWithRequest:request];
 }
 
 - (BOOL)isHostedByObjectElement
@@ -1073,9 +1079,8 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
     
     ASSERT(!policyDocumentLoader);
     policyDocumentLoader = [client _createDocumentLoaderWithRequest:request];
-    WebDataSource *newDataSource = [client _dataSourceForDocumentLoader:policyDocumentLoader];
 
-    NSMutableURLRequest *r = [newDataSource request];
+    NSMutableURLRequest *r = [policyDocumentLoader request];
     [self addExtraFieldsToRequest:r mainResource:YES alwaysFromRequest:NO];
     if ([client _shouldTreatURLAsSameAsCurrent:[request URL]]) {
         [r setCachePolicy:NSURLRequestReloadIgnoringCacheData];
@@ -1084,7 +1089,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
         type = FrameLoadTypeStandard;
     
     [policyDocumentLoader setOverrideEncoding:[[self documentLoader] overrideEncoding]];
-    [newDataSource _addToUnarchiveState:archive];
+    [client _addDocumentLoader:policyDocumentLoader toUnarchiveState:archive];
     
     // When we loading alternate content for an unreachable URL that we're
     // visiting in the b/f list, we treat it as a reload so the b/f list 
@@ -1170,12 +1175,12 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
 - (void)finishedLoadingDocument:(WebDocumentLoader *)loader
 {
-    [[client _dataSourceForDocumentLoader:loader] _finishedLoading];
+    [client _finishedLoadingDocument:loader];
 }
 
 - (void)committedLoadWithDocumentLoader:(WebDocumentLoader *)loader data:(NSData *)data
 {
-    [[client _dataSourceForDocumentLoader:loader] _receivedData:data];
+    [client _committedLoadWithDocumentLoader:loader data:data];
 }
 
 - (BOOL)isReplacing
@@ -1190,12 +1195,12 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
 - (void)revertToProvisionalWithDocumentLoader:(WebDocumentLoader *)loader
 {
-    [[client _dataSourceForDocumentLoader:loader] _revertToProvisionalState];
+    [client _revertToProvisionalWithDocumentLoader:loader];
 }
 
 - (void)documentLoader:(WebDocumentLoader *)loader setMainDocumentError:(NSError *)error
 {
-    [[client _dataSourceForDocumentLoader:loader] _setMainDocumentError:error];
+    [client _documentLoader:loader setMainDocumentError:error];
 }
 
 - (void)documentLoader:(WebDocumentLoader *)loader mainReceivedCompleteError:(NSError *)error
@@ -1207,7 +1212,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
 - (void)finalSetupForReplaceWithDocumentLoader:(WebDocumentLoader *)loader
 {
-    [[client _dataSourceForDocumentLoader:loader] _clearUnarchivingState];
+    [client _finalSetupForReplaceWithDocumentLoader:loader];
 }
 
 - (void)prepareForLoadStart
@@ -1236,7 +1241,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
     // The title doesn't get communicated to the WebView until we are committed.
     if ([loader isCommitted]) {
-        NSURL *URLForHistory = [[client _dataSourceForDocumentLoader:loader] _URLForHistory];
+        NSURL *URLForHistory = [client _URLForHistoryForDocumentLoader:loader];
         if (URLForHistory != nil) {
             // Must update the entries in the back-forward list too.
             // This must go through the WebFrame because it has the right notion of the current b/f item.
@@ -1401,7 +1406,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
             break;
         case WebPolicyUse:
             if (![WebView _canHandleRequest:request]) {
-                [self handleUnimplementablePolicyWithErrorCode:WebKitErrorCannotShowURL forURL:[request URL]];
+                [self handleUnimplementablePolicyWithError:[client _cannotShowURLErrorWithRequest:request]];
                 request = nil;
             }
             break;
@@ -1465,23 +1470,22 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
     [dl release];
     [self setPolicyDocumentLoader:nil];
     
-    if (isBackForwardLoadType(type)) {
-        if ([client _loadProvisionalItemFromPageCache])
-            return;
-    }
+    if (isBackForwardLoadType(type) && [client _loadProvisionalItemFromPageCache])
+        return;
 
     if (formState) {
         // It's a bit of a hack to reuse the WebPolicyDecisionListener for the continuation
         // mechanism across the willSubmitForm callout.
         listener = [[WebPolicyDecisionListener alloc] _initWithTarget:self action:@selector(continueAfterWillSubmitForm:)];
-        [[[client webView] _formDelegate] frame:client sourceFrame:[(WebFrameBridge *)[formState sourceFrame] webFrame] willSubmitForm:[formState form] withValues:[formState values] submissionListener:listener];
+        [[client _formDelegate] frame:client sourceFrame:[(WebFrameBridge *)[formState sourceFrame] webFrame]
+            willSubmitForm:[formState form] withValues:[formState values] submissionListener:listener];
     } else
         [self continueAfterWillSubmitForm:WebPolicyUse];
 }
 
 - (void)loadDocumentLoader:(WebDocumentLoader *)loader withLoadType:(FrameLoadType)type formState:(WebFormState *)formState
 {
-    ASSERT([client webView] != nil);
+    ASSERT([client _hasWebView]);
 
     // Unfortunately the view must be non-nil, this is ultimately due
     // to parser requiring a FrameView.  We should fix this dependency.
@@ -1492,7 +1496,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
     WebFrame *parentFrame = [client parentFrame];
     if (parentFrame)
-        [loader setOverrideEncoding:[[[parentFrame dataSource] _documentLoader] overrideEncoding]];
+        [loader setOverrideEncoding:[[[parentFrame _frameLoader] documentLoader] overrideEncoding]];
 
     [loader setFrameLoader:self];
 
@@ -1507,14 +1511,6 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
                              withSelector:@selector(continueLoadRequestAfterNavigationPolicy:formState:)];
 }
 
-- (void)handleUnimplementablePolicyWithErrorCode:(int)code forURL:(NSURL *)URL
-{
-    NSError *error = [NSError _webKitErrorWithDomain:WebKitErrorDomain code:code URL:URL];
-    delegateIsHandlingUnimplementablePolicy = YES;
-    [client _dispatchUnableToImplementPolicyWithError:error];
-    delegateIsHandlingUnimplementablePolicy = NO;
-}
-
 - (void)didFirstLayout
 {
     if (isBackForwardLoadType(loadType) && [client _hasBackForwardList])
@@ -1545,7 +1541,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
 - (void)transitionToCommitted:(NSDictionary *)pageCache
 {
-    ASSERT([client webView] != nil);
+    ASSERT([client _hasWebView]);
     ASSERT([self state] == WebFrameStateProvisional);
 
     if ([self state] != WebFrameStateProvisional)
@@ -1622,7 +1618,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
 - (void)checkLoadCompleteForThisFrame
 {
-    ASSERT([client webView] != nil);
+    ASSERT([client _hasWebView]);
 
     switch ([self state]) {
         case WebFrameStateProvisional: {
@@ -1758,7 +1754,7 @@ exit:
     NSURLRequest *newRequest = [client _dispatchResource:*identifier willSendRequest:request redirectResponse:nil fromDocumentLoader:documentLoader];
     
     if (newRequest == nil)
-        *error = [NSError _webKitErrorWithDomain:NSURLErrorDomain code:NSURLErrorCancelled URL:[request URL]];
+        *error = [client _cancelledErrorWithRequest:request];
     else
         *error = nil;
     
@@ -1862,7 +1858,7 @@ exit:
         if (mainResource && ([self isLoadingMainFrame] || f))
             [request setMainDocumentURL:[request URL]];
         else
-            [request setMainDocumentURL:[[[[client webView] mainFrame] dataSource] _URL]];
+            [request setMainDocumentURL:[client _mainFrameURL]];
     }
     
     if (mainResource)
@@ -1943,7 +1939,7 @@ exit:
 // Called every time a resource is completely loaded, or an error is received.
 - (void)checkLoadComplete
 {
-    ASSERT([client webView] != nil);
+    ASSERT([client _hasWebView]);
 
     WebFrame *parent;
     for (WebFrame *frame = client; frame; frame = parent) {
index fdeed6df8db8ae3046b0326d74c29f1c69478f56..3f959e8c6f77926412f0067386355d6bf74cfe8f 100644 (file)
@@ -36,6 +36,8 @@ typedef struct LoadErrorResetToken LoadErrorResetToken;
 
 @protocol WebFrameLoaderClient
 
+- (BOOL)_hasWebView; // mainly for assertions
+
 - (BOOL)_hasBackForwardList;
 - (void)_resetBackForwardList;
 
@@ -122,9 +124,27 @@ typedef struct LoadErrorResetToken LoadErrorResetToken;
 
 - (void)_setMainFrameDocumentReady:(BOOL)ready;
 
+- (void)_startDownloadWithRequest:(NSURLRequest *)request;
+
 - (void)_willChangeTitleForDocument:(WebDocumentLoader *)loader;
 - (void)_didChangeTitleForDocument:(WebDocumentLoader *)loader;
 
-- (void)_startDownloadWithRequest:(NSURLRequest *)request;
+- (void)_revertToProvisionalWithDocumentLoader:(WebDocumentLoader *)loader;
+- (void)_committedLoadWithDocumentLoader:(WebDocumentLoader *)loader data:(NSData *)data;
+- (void)_finishedLoadingDocument:(WebDocumentLoader *)loader;
+- (void)_documentLoader:(WebDocumentLoader *)loader setMainDocumentError:(NSError *)error;
+- (void)_finalSetupForReplaceWithDocumentLoader:(WebDocumentLoader *)loader;
+- (NSURL *)_URLForHistoryForDocumentLoader:(WebDocumentLoader *)loader;
+
+- (NSError *)_cancelledErrorWithRequest:(NSURLRequest *)request;
+- (NSError *)_cannotShowURLErrorWithRequest:(NSURLRequest *)request;
+- (NSError *)_interruptForPolicyChangeErrorWithRequest:(NSURLRequest *)request;
+
+- (NSError *)_cannotShowMIMETypeErrorWithResponse:(NSURLResponse *)response;
+- (NSError *)_fileDoesNotExistErrorWithResponse:(NSURLResponse *)response;
+
+- (BOOL)_shouldFallBackForError:(NSError *)error;
+
+- (NSURL *)_mainFrameURL;
 
 @end
index e2aa0f43bc57c9b1df8689a2b23bad18f315a87e..ce8d4425598ca36b9b6ab536ce3ba898b8079a72 100644 (file)
@@ -242,7 +242,7 @@ static BOOL shouldLoadAsEmptyDocument(NSURL *url)
         BOOL isRemote = ![URL isFileURL] && ![WebDataProtocol _webIsDataProtocolURL:URL];
         BOOL isRemoteWebArchive = isRemote && isCaseInsensitiveEqual(@"application/x-webarchive", MIMEType);
         if (![WebFrameLoader _canShowMIMEType:MIMEType] || isRemoteWebArchive) {
-            [frameLoader cannotShowMIMETypeForURL:URL];
+            [frameLoader cannotShowMIMETypeWithResponse:r];
             // Check reachedTerminalState since the load may have already been cancelled inside of _handleUnimplementablePolicyWithErrorCode::.
             if (!reachedTerminalState) {
                 [self stopLoadingForPolicyChange];
index fa0b3e8cc008888d23eb87d13d460376d48155b4..282968e7f812c154a48f41ad78f20bf5906f7f24 100644 (file)
@@ -1185,6 +1185,16 @@ static inline WebDataSource *dataSource(WebDocumentLoader *loader)
     }
 }
 
+- (void)_addDocumentLoader:(WebDocumentLoader *)loader toUnarchiveState:(WebArchive *)archive
+{
+    [dataSource(loader) _addToUnarchiveState:archive];
+}
+
+- (id <WebFormDelegate>)_formDelegate
+{
+    return [[self webView] _formDelegate];
+}
+
 @end
 
 @implementation WebFrame (WebPrivate)
@@ -1944,4 +1954,77 @@ static inline WebDataSource *dataSource(WebDocumentLoader *loader)
     [[self webView] _downloadURL:[request URL]];
 }
 
+- (void)_finishedLoadingDocument:(WebDocumentLoader *)loader
+{
+    [dataSource(loader) _finishedLoading];
+}
+
+- (void)_committedLoadWithDocumentLoader:(WebDocumentLoader *)loader data:(NSData *)data
+{
+    [dataSource(loader) _receivedData:data];
+}
+
+- (void)_revertToProvisionalWithDocumentLoader:(WebDocumentLoader *)loader
+{
+    [dataSource(loader) _revertToProvisionalState];
+}
+
+- (void)_documentLoader:(WebDocumentLoader *)loader setMainDocumentError:(NSError *)error
+{
+    [dataSource(loader) _setMainDocumentError:error];
+}
+
+- (void)_finalSetupForReplaceWithDocumentLoader:(WebDocumentLoader *)loader
+{
+    [dataSource(loader) _clearUnarchivingState];
+}
+
+- (NSURL *)_URLForHistoryForDocumentLoader:(WebDocumentLoader *)loader
+{
+    return [dataSource(loader) _URLForHistory];
+}
+
+- (NSError *)_cancelledErrorWithRequest:(NSURLRequest *)request
+{
+    return [NSError _webKitErrorWithDomain:NSURLErrorDomain code:NSURLErrorCancelled URL:[request URL]];
+}
+
+- (NSError *)_cannotShowURLErrorWithRequest:(NSURLRequest *)request
+{
+    return [NSError _webKitErrorWithDomain:WebKitErrorDomain code:WebKitErrorCannotShowURL URL:[request URL]];
+}
+
+- (NSError *)_interruptForPolicyChangeErrorWithRequest:(NSURLRequest *)request
+{
+    return [NSError _webKitErrorWithDomain:WebKitErrorDomain code:WebKitErrorFrameLoadInterruptedByPolicyChange URL:[request URL]];
+}
+
+- (NSError *)_cannotShowMIMETypeErrorWithResponse:(NSURLResponse *)response
+{
+    return [NSError _webKitErrorWithDomain:NSURLErrorDomain code:WebKitErrorCannotShowMIMEType URL:[response URL]];    
+}
+
+- (NSError *)_fileDoesNotExistErrorWithResponse:(NSURLResponse *)response
+{
+    return [NSError _webKitErrorWithDomain:NSURLErrorDomain code:NSURLErrorFileDoesNotExist URL:[response URL]];    
+}
+
+- (BOOL)_shouldFallBackForError:(NSError *)error
+{
+    // FIXME: Needs to check domain.
+    // FIXME: WebKitErrorPlugInWillHandleLoad is a workaround for the cancel we do to prevent
+    // loading plugin content twice.  See <rdar://problem/4258008>
+    return [error code] != NSURLErrorCancelled && [error code] != WebKitErrorPlugInWillHandleLoad;
+}
+
+- (BOOL)_hasWebView
+{
+    return [self webView] != nil;
+}
+
+- (NSURL *)_mainFrameURL
+{
+    return [[[[self webView] mainFrame] dataSource] _URL];
+}
+
 @end
index a623c071953e03089bcaf9f1afe0c3660821d024..8bc2fb8c5d3b5f81b66d9cebda74e02a4a1d750a 100644 (file)
 - (void)_addHistoryItemForFragmentScroll;
 - (void)_didFinishLoad;
 
+- (void)_addDocumentLoader:(WebDocumentLoader *)loader toUnarchiveState:(WebArchive *)archive;
+- (id <WebFormDelegate>)_formDelegate;
+
 @end
 
 @interface NSObject (WebInternalFrameLoadDelegate)