Reviewed by Maciej.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Oct 2006 07:03:11 +0000 (07:03 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Oct 2006 07:03:11 +0000 (07:03 +0000)
        - passed calls that require WebHTMLView or WebFrameView calls across
          the client interface

        * Loader/WebFrameLoader.h:
        * Loader/WebFrameLoader.m:
        (isCaseInsensitiveEqual):
        (isBackForwardLoadType):
        (-[WebFrameLoader opened]):
        (-[WebFrameLoader cancelledErrorWithRequest:]):
        (-[WebFrameLoader fileDoesNotExistErrorWithResponse:]):
        (-[WebFrameLoader reload]):
        (-[WebFrameLoader transitionToCommitted:]):
        * Loader/WebFrameLoaderClient.h:
        * WebView/WebFrame.m:
        (-[WebFrame _forceLayout]):
        (-[WebFrame _setDocumentViewFromPageCache:]):
        (-[WebFrame _setCopiesOnScroll]):

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

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

index e92340e1e8a828ceb618b25f94da1b02cad5ae8d..dccfcf459d2c4fa7d4eef3c5a739e21a4a88cb2c 100644 (file)
@@ -1,3 +1,25 @@
+2006-10-08  Darin Adler  <darin@apple.com>
+
+        Reviewed by Maciej.
+
+        - passed calls that require WebHTMLView or WebFrameView calls across
+          the client interface
+
+        * Loader/WebFrameLoader.h:
+        * Loader/WebFrameLoader.m:
+        (isCaseInsensitiveEqual):
+        (isBackForwardLoadType):
+        (-[WebFrameLoader opened]):
+        (-[WebFrameLoader cancelledErrorWithRequest:]):
+        (-[WebFrameLoader fileDoesNotExistErrorWithResponse:]):
+        (-[WebFrameLoader reload]):
+        (-[WebFrameLoader transitionToCommitted:]):
+        * Loader/WebFrameLoaderClient.h:
+        * WebView/WebFrame.m:
+        (-[WebFrame _forceLayout]):
+        (-[WebFrame _setDocumentViewFromPageCache:]):
+        (-[WebFrame _setCopiesOnScroll]):
+
 2006-10-08  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Darin.
index caadffd4554280b1fa434782e89570711c29de29..385ae813698a67e05132107b67cc3c24fcdf5884 100644 (file)
@@ -34,7 +34,6 @@
 @class WebDocumentLoader;
 @class WebFormState;
 @class WebFrame;
-@class WebFrame;
 @class WebFrameBridge;
 @class WebLoader;
 @class WebMainResourceLoader;
index f06eee277a5de4af9454dfb063a3efd177b462ad..d2a9876419efbc3c90d2acb9d146746bf881872f 100644 (file)
@@ -41,8 +41,6 @@
 #import "WebDataSourceInternal.h"
 #import "WebDocumentLoaderMac.h"
 #import "WebFrameInternal.h"
-#import "WebFrameViewInternal.h"
-#import "WebHTMLView.h"
 #import "WebIconDatabasePrivate.h"
 #import "WebKitErrorsPrivate.h"
 #import "WebKitLogging.h"
 #import "WebScriptDebugServerPrivate.h"
 #import "WebViewInternal.h"
 
+static BOOL isCaseInsensitiveEqual(NSString *a, NSString *b)
+{
+    return [a caseInsensitiveCompare:b] == NSOrderedSame;
+}
+
+BOOL isBackForwardLoadType(FrameLoadType type)
+{
+    switch (type) {
+        case FrameLoadTypeStandard:
+        case FrameLoadTypeReload:
+        case FrameLoadTypeReloadAllowingStaleData:
+        case FrameLoadTypeSame:
+        case FrameLoadTypeInternal:
+        case FrameLoadTypeReplace:
+            return false;
+        case FrameLoadTypeBack:
+        case FrameLoadTypeForward:
+        case FrameLoadTypeIndexedBackForward:
+            return true;
+    }
+    ASSERT_NOT_REACHED();
+    return false;
+}
+
 @implementation WebFrameLoader
 
 - (id)initWithClient:(WebFrame <WebFrameLoaderClient> *)c
@@ -737,11 +759,7 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
     if ([[self dataSource] _loadingFromPageCache]) {
         // Force a layout to update view size and thereby update scrollbars.
-        NSView <WebDocumentView> *view = [[client frameView] documentView];
-        if ([view isKindOfClass:[WebHTMLView class]])
-            [(WebHTMLView *)view setNeedsToApplyStyles:YES];
-        [view setNeedsLayout: YES];
-        [view layout];
+        [client _forceLayout];
 
         NSArray *responses = [[self documentLoader] responses];
         NSURLResponse *response;
@@ -903,16 +921,12 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
 
 - (NSError *)cancelledErrorWithRequest:(NSURLRequest *)request
 {
-    return [NSError _webKitErrorWithDomain:NSURLErrorDomain
-                                      code:NSURLErrorCancelled
-                                       URL:[request URL]];
+    return [NSError _webKitErrorWithDomain:NSURLErrorDomain code:NSURLErrorCancelled URL:[request URL]];
 }
 
 - (NSError *)fileDoesNotExistErrorWithResponse:(NSURLResponse *)response
 {
-    return [NSError _webKitErrorWithDomain:NSURLErrorDomain
-                                                code:NSURLErrorFileDoesNotExist
-                                                 URL:[response URL]];    
+    return [NSError _webKitErrorWithDomain:NSURLErrorDomain code:NSURLErrorFileDoesNotExist URL:[response URL]];    
 }
 
 - (void)clearArchivedResources
@@ -947,11 +961,6 @@ static CFAbsoluteTime _timeOfLastCompletedLoad;
     [self performSelector:@selector(deliverArchivedResources) withObject:nil afterDelay:0];
 }
 
-static BOOL isCaseInsensitiveEqual(NSString *a, NSString *b)
-{
-    return [a caseInsensitiveCompare:b] == NSOrderedSame;
-}
-
 // The following 2 methods are copied from [NSHTTPURLProtocol _cachedResponsePassesValidityChecks] and modified for our needs.
 // FIXME: It would be nice to eventually to share this code somehow.
 - (BOOL)_canUseResourceForRequest:(NSURLRequest *)theRequest
@@ -1088,25 +1097,6 @@ static BOOL isCaseInsensitiveEqual(NSString *a, NSString *b)
     listener = nil;
 }
 
-BOOL isBackForwardLoadType(FrameLoadType type)
-{
-    switch (type) {
-        case FrameLoadTypeStandard:
-        case FrameLoadTypeReload:
-        case FrameLoadTypeReloadAllowingStaleData:
-        case FrameLoadTypeSame:
-        case FrameLoadTypeInternal:
-        case FrameLoadTypeReplace:
-            return false;
-        case FrameLoadTypeBack:
-        case FrameLoadTypeForward:
-        case FrameLoadTypeIndexedBackForward:
-            return true;
-    }
-    ASSERT_NOT_REACHED();
-    return false;
-}
-
 - (BOOL)shouldReloadToHandleUnreachableURLFromRequest:(NSURLRequest *)request
 {
     NSURL *unreachableURL = [request _webDataRequestUnreachableURL];
@@ -1220,7 +1210,7 @@ BOOL isBackForwardLoadType(FrameLoadType type)
     [request setCachePolicy:NSURLRequestReloadIgnoringCacheData];
 
     // If we're about to rePOST, set up action so the app can warn the user
-    if ([[request HTTPMethod] compare:@"POST" options:(NSCaseInsensitiveSearch | NSLiteralSearch)] == NSOrderedSame) {
+    if (isCaseInsensitiveEqual([request HTTPMethod], @"POST")) {
         NSDictionary *action = [self actionInformationForNavigationType:WebNavigationTypeFormResubmitted
             event:nil originalURL:[request URL]];
         [policyDocumentLoader setTriggeringAction:action];
@@ -1652,8 +1642,7 @@ BOOL isBackForwardLoadType(FrameLoadType type)
 
 keepGoing:
 
-    [[[[client frameView] _scrollView] contentView] setCopiesOnScroll:YES];
-
+    [client _setCopiesOnScroll];
     [client _updateHistoryForCommit];
 
     // The call to closeURL invokes the unload event handler, which can execute arbitrary
@@ -1676,13 +1665,11 @@ keepGoing:
     case WebFrameLoadTypeIndexedBackForward:
         if ([[client webView] backForwardList]) {
             [client _updateHistoryForBackForwardNavigation];
-            
+
             // Create a document view for this document, or used the cached view.
-            if (pageCache) {
-                NSView <WebDocumentView> *cachedView = [pageCache objectForKey:WebPageCacheDocumentViewKey];
-                ASSERT(cachedView != nil);
-                [[client frameView] _setDocumentView:cachedView];
-            } else
+            if (pageCache)
+                [client _setDocumentViewFromPageCache:pageCache];
+            else
                 [client _makeDocumentView];
         }
         break;
index 1de32fe4991e5aba0223eb5910497041ec2b7669..1b884e6d76e0ab3daf18b88033a632a5dee2214a 100644 (file)
@@ -32,6 +32,7 @@ typedef struct LoadErrorResetToken LoadErrorResetToken;
 
 @class WebDocumentLoader;
 @class WebPolicyDecisionListener;
+
 @protocol WebFrameLoaderClient
 
 - (void)_resetBackForwardList;
@@ -43,6 +44,8 @@ typedef struct LoadErrorResetToken LoadErrorResetToken;
 - (BOOL)_privateBrowsingEnabled;
 
 - (void)_makeDocumentView;
+- (void)_setDocumentViewFromPageCache:(NSDictionary *)dictionary;
+- (void)_forceLayout;
 
 - (void)_updateHistoryForCommit;
 
@@ -53,6 +56,8 @@ typedef struct LoadErrorResetToken LoadErrorResetToken;
 
 - (void)_updateHistoryAfterClientRedirect;
 
+- (void)_setCopiesOnScroll;
+
 - (LoadErrorResetToken *)_tokenForLoadErrorReset;
 - (void)_resetAfterLoadError:(LoadErrorResetToken *)token;
 - (void)_doNotResetAfterLoadError:(LoadErrorResetToken *)token;
index d6279d6e14e91f31327306c4768a4e17a0c778a0..f8ea2af6447c3203d56b1690f4d77c41762e463d 100644 (file)
@@ -1480,6 +1480,15 @@ static inline WebDataSource *dataSource(WebDocumentLoader *loader)
     [documentView setDataSource:[[self _frameLoader] dataSource]];
 }
 
+- (void)_forceLayout
+{
+    NSView <WebDocumentView> *view = [[self frameView] documentView];
+    if ([view isKindOfClass:[WebHTMLView class]])
+        [(WebHTMLView *)view setNeedsToApplyStyles:YES];
+    [view setNeedsLayout:YES];
+    [view layout];
+}
+
 - (void)_updateHistoryForCommit
 {
     WebFrameLoadType type = [[self _frameLoader] loadType];
@@ -1861,4 +1870,16 @@ static inline WebDataSource *dataSource(WebDocumentLoader *loader)
                                           proxy:proxy];
 }
 
+- (void)_setDocumentViewFromPageCache:(NSDictionary *)pageCache
+{
+    NSView <WebDocumentView> *cachedView = [pageCache objectForKey:WebPageCacheDocumentViewKey];
+    ASSERT(cachedView != nil);
+    [[self frameView] _setDocumentView:cachedView];
+}
+
+- (void)_setCopiesOnScroll
+{
+    [[[[self frameView] _scrollView] contentView] setCopiesOnScroll:YES];
+}
+
 @end