[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

cblu cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:12:43 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 80441ecb9c3dc5a32ef9636c356d37147b895cc7
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Dec 9 02:42:15 2002 +0000

    WebKit:
    
    	Fixed: 3121627 - REGRESSION: partial progress is left in address field after download
    
            Reviewed by: darin
    
    	In WebMainResourceClient, make sure to always call receivedError before _clearProvisionalDataSource so that
    	receivedError works. This is done in multiple places, so I factored this out into one method interuptForPolicyChange.
    
            * WebView.subproj/WebControllerPrivate.m:
            (-[WebController _mainReceivedError:fromDataSource:]): added asserts for nil error, dataSource and frame
            * WebView.subproj/WebMainResourceClient.m:
            (-[WebMainResourceClient interruptForPolicyChange]): renamed from notifyDelegatesOfInterruptionByPolicyChange because it now also sets the provisionalDataSource on the frame to nil.
            (-[WebMainResourceClient stopLoadingForPolicyChange]): call interruptForPolicyChange, stop load
            (-[WebMainResourceClient continueAfterContentPolicy:response:]): call interruptForPolicyChange
    
    WebBrowser:
    
    	Fixed: 3121284 - REGRESSION: Downloaded item's URL is left in address field
    
            Reviewed by: darin
    
            * BrowserWindowController.m:
            (-[BrowserWindowController updateLocationFieldText]): If the provisional data source has ended in error, don't use its URL.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2969 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 1b010d8..ffba134 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,19 @@
+2002-12-08  Chris Blumenberg  <cblu at apple.com>
+
+	Fixed: 3121627 - REGRESSION: partial progress is left in address field after download
+
+        Reviewed by: darin
+
+	In WebMainResourceClient, make sure to always call receivedError before _clearProvisionalDataSource so that
+	receivedError works. This is done in multiple places, so I factored this out into one method interuptForPolicyChange.
+
+        * WebView.subproj/WebControllerPrivate.m:
+        (-[WebController _mainReceivedError:fromDataSource:]): added asserts for nil error, dataSource and frame
+        * WebView.subproj/WebMainResourceClient.m:
+        (-[WebMainResourceClient interruptForPolicyChange]): renamed from notifyDelegatesOfInterruptionByPolicyChange because it now also sets the provisionalDataSource on the frame to nil. 
+        (-[WebMainResourceClient stopLoadingForPolicyChange]): call interruptForPolicyChange, stop load
+        (-[WebMainResourceClient continueAfterContentPolicy:response:]): call interruptForPolicyChange
+
 2002-12-06  Trey Matteson  <trey at apple.com>
 
 	Clean up some printfs.  Use WebKitLogPageCache for page cache info.
diff --git a/WebKit/WebView.subproj/WebControllerPrivate.m b/WebKit/WebView.subproj/WebControllerPrivate.m
index 3887d21..4348015 100644
--- a/WebKit/WebView.subproj/WebControllerPrivate.m
+++ b/WebKit/WebView.subproj/WebControllerPrivate.m
@@ -152,7 +152,11 @@
 
 - (void)_mainReceivedError: (WebError *)error fromDataSource: (WebDataSource *)dataSource
 {
+    ASSERT(error);
+    ASSERT(dataSource);
+    
     WebFrame *frame = [dataSource webFrame];
+    ASSERT(frame);
     
     [dataSource _setMainDocumentError: error];
     [dataSource _setPrimaryLoadComplete: YES];
diff --git a/WebKit/WebView.subproj/WebMainResourceClient.m b/WebKit/WebView.subproj/WebMainResourceClient.m
index d64552c..9806ebd 100644
--- a/WebKit/WebView.subproj/WebMainResourceClient.m
+++ b/WebKit/WebView.subproj/WebMainResourceClient.m
@@ -90,11 +90,22 @@
     [self release];
 }
 
-
--(void)stopLoadingForPolicyChange
+- (void)interruptForPolicyChange
 {
+    // Terminate the locationChangeDelegate correctly.
+    WebError *interruptError = [WebError errorWithCode:WebErrorLocationChangeInterruptedByPolicyChange inDomain:WebErrorDomainWebKit failingURL:nil];
+
+    // Must call receivedError before _clearProvisionalDataSource because
+    // if we remove the data source from the frame, we can't get back to the frame any more.
+    [self receivedError:interruptError];
     [[dataSource webFrame] _clearProvisionalDataSource];
+    
     [self notifyDelegatesOfInterruptionByPolicyChange];
+}
+
+-(void)stopLoadingForPolicyChange
+{
+    [self interruptForPolicyChange];
     [self cancelQuietly];
 }
 
@@ -140,16 +151,6 @@
     return newRequest;
 }
 
-- (void)notifyDelegatesOfInterruptionByPolicyChange
-{
-    // Terminate the locationChangeDelegate correctly.
-    WebError *interruptError = [WebError errorWithCode:WebErrorLocationChangeInterruptedByPolicyChange inDomain:WebErrorDomainWebKit failingURL:nil];
-    
-    [self receivedError:interruptError];
-
-    [super notifyDelegatesOfInterruptionByPolicyChange];
-}
-
 -(void)continueAfterContentPolicy:(WebPolicyAction)contentPolicy response:(WebResourceResponse *)r
 {
     if (!defersBeforeCheckingPolicy) {
@@ -180,9 +181,8 @@
             }
 	    [dataSource _setDownloadPath:saveFilename];
 	}
-	
-	[[dataSource webFrame] _clearProvisionalDataSource];
-	[self notifyDelegatesOfInterruptionByPolicyChange];
+
+        [self interruptForPolicyChange];
 	
 	// Hand off the dataSource to the download handler.  This will cause the remaining
 	// handle delegate callbacks to go to the controller's download delegate.
diff --git a/WebKit/WebView.subproj/WebMainResourceLoader.m b/WebKit/WebView.subproj/WebMainResourceLoader.m
index d64552c..9806ebd 100644
--- a/WebKit/WebView.subproj/WebMainResourceLoader.m
+++ b/WebKit/WebView.subproj/WebMainResourceLoader.m
@@ -90,11 +90,22 @@
     [self release];
 }
 
-
--(void)stopLoadingForPolicyChange
+- (void)interruptForPolicyChange
 {
+    // Terminate the locationChangeDelegate correctly.
+    WebError *interruptError = [WebError errorWithCode:WebErrorLocationChangeInterruptedByPolicyChange inDomain:WebErrorDomainWebKit failingURL:nil];
+
+    // Must call receivedError before _clearProvisionalDataSource because
+    // if we remove the data source from the frame, we can't get back to the frame any more.
+    [self receivedError:interruptError];
     [[dataSource webFrame] _clearProvisionalDataSource];
+    
     [self notifyDelegatesOfInterruptionByPolicyChange];
+}
+
+-(void)stopLoadingForPolicyChange
+{
+    [self interruptForPolicyChange];
     [self cancelQuietly];
 }
 
@@ -140,16 +151,6 @@
     return newRequest;
 }
 
-- (void)notifyDelegatesOfInterruptionByPolicyChange
-{
-    // Terminate the locationChangeDelegate correctly.
-    WebError *interruptError = [WebError errorWithCode:WebErrorLocationChangeInterruptedByPolicyChange inDomain:WebErrorDomainWebKit failingURL:nil];
-    
-    [self receivedError:interruptError];
-
-    [super notifyDelegatesOfInterruptionByPolicyChange];
-}
-
 -(void)continueAfterContentPolicy:(WebPolicyAction)contentPolicy response:(WebResourceResponse *)r
 {
     if (!defersBeforeCheckingPolicy) {
@@ -180,9 +181,8 @@
             }
 	    [dataSource _setDownloadPath:saveFilename];
 	}
-	
-	[[dataSource webFrame] _clearProvisionalDataSource];
-	[self notifyDelegatesOfInterruptionByPolicyChange];
+
+        [self interruptForPolicyChange];
 	
 	// Hand off the dataSource to the download handler.  This will cause the remaining
 	// handle delegate callbacks to go to the controller's download delegate.
diff --git a/WebKit/WebView.subproj/WebViewPrivate.m b/WebKit/WebView.subproj/WebViewPrivate.m
index 3887d21..4348015 100644
--- a/WebKit/WebView.subproj/WebViewPrivate.m
+++ b/WebKit/WebView.subproj/WebViewPrivate.m
@@ -152,7 +152,11 @@
 
 - (void)_mainReceivedError: (WebError *)error fromDataSource: (WebDataSource *)dataSource
 {
+    ASSERT(error);
+    ASSERT(dataSource);
+    
     WebFrame *frame = [dataSource webFrame];
+    ASSERT(frame);
     
     [dataSource _setMainDocumentError: error];
     [dataSource _setPrimaryLoadComplete: YES];

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list