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

rjw rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 07:40:46 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 5ff25a5c5cd0ce881a3b054ab6a3bcab742b3e1f
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed May 7 00:15:35 2003 +0000

            Fixed problem for HelpViewer.  HV calls stopLoading in
            a webView:resource:didReceiveResponse.  This causes
            the premature release of the connection delegate.
    
            Reviewed by Ken.
    
            * WebCoreSupport.subproj/WebSubresourceClient.m:
            (-[WebSubresourceClient connectionDidFinishLoading:]):
            * WebKit.pbproj/project.pbxproj:
            * WebView.subproj/WebBaseResourceHandleDelegate.m:
            (-[WebBaseResourceHandleDelegate _releaseResources]):
            (-[WebBaseResourceHandleDelegate dealloc]):
            * WebView.subproj/WebMainResourceClient.m:
            (-[WebMainResourceClient stopLoadingForPolicyChange]):
            (-[WebMainResourceClient continueAfterContentPolicy:response:]):
            (-[WebMainResourceClient continueAfterContentPolicy:]):
            (-[WebMainResourceClient connection:didReceiveResponse:]):
            (-[WebMainResourceClient connectionDidFinishLoading:]):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@4295 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index b6c698a..e17603a 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,24 @@
+2003-05-06  Richard Williamson   <rjw at apple.com>
+
+        Fixed problem for HelpViewer.  HV calls stopLoading in 
+        a webView:resource:didReceiveResponse.  This causes
+        the premature release of the connection delegate.
+        
+        Reviewed by Ken.
+
+        * WebCoreSupport.subproj/WebSubresourceClient.m:
+        (-[WebSubresourceClient connectionDidFinishLoading:]):
+        * WebKit.pbproj/project.pbxproj:
+        * WebView.subproj/WebBaseResourceHandleDelegate.m:
+        (-[WebBaseResourceHandleDelegate _releaseResources]):
+        (-[WebBaseResourceHandleDelegate dealloc]):
+        * WebView.subproj/WebMainResourceClient.m:
+        (-[WebMainResourceClient stopLoadingForPolicyChange]):
+        (-[WebMainResourceClient continueAfterContentPolicy:response:]):
+        (-[WebMainResourceClient continueAfterContentPolicy:]):
+        (-[WebMainResourceClient connection:didReceiveResponse:]):
+        (-[WebMainResourceClient connectionDidFinishLoading:]):
+
 2003-05-06  Darin Adler  <darin at apple.com>
 
         - removed obsolete file that's still around for some reason
diff --git a/WebKit/WebCoreSupport.subproj/WebSubresourceClient.m b/WebKit/WebCoreSupport.subproj/WebSubresourceClient.m
index 95900bd..164600a 100644
--- a/WebKit/WebCoreSupport.subproj/WebSubresourceClient.m
+++ b/WebKit/WebCoreSupport.subproj/WebSubresourceClient.m
@@ -117,10 +117,10 @@
     [dataSource _removeSubresourceClient:self];
     
     [[dataSource _webView] _finishedLoadingResourceFromDataSource:dataSource];
-    
-    [self release];
-    
+
     [super connectionDidFinishLoading:con];
+
+    [self release];    
 }
 
 - (void)connection:(NSURLConnection *)con didFailLoadingWithError:(NSError *)error
diff --git a/WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m b/WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m
index 95900bd..164600a 100644
--- a/WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m
+++ b/WebKit/WebCoreSupport.subproj/WebSubresourceLoader.m
@@ -117,10 +117,10 @@
     [dataSource _removeSubresourceClient:self];
     
     [[dataSource _webView] _finishedLoadingResourceFromDataSource:dataSource];
-    
-    [self release];
-    
+
     [super connectionDidFinishLoading:con];
+
+    [self release];    
 }
 
 - (void)connection:(NSURLConnection *)con didFailLoadingWithError:(NSError *)error
diff --git a/WebKit/WebKit.pbproj/project.pbxproj b/WebKit/WebKit.pbproj/project.pbxproj
index a2d266a..fa7c630 100644
--- a/WebKit/WebKit.pbproj/project.pbxproj
+++ b/WebKit/WebKit.pbproj/project.pbxproj
@@ -1510,7 +1510,7 @@
 			);
 			runOnlyForDeploymentPostprocessing = 1;
 			shellPath = /bin/sh;
-			shellScript = "if [ \"x$RC_RELEASE\" = \"xPanther\" ]; then\n    install_name_tool -id \"${SYSTEM_LIBRARY_DIR}/PrivateFrameworks/WebKit.framework/Versions/A/WebKit\" \"${SYMROOT}/WebKit.framework/Versions/A/WebKit\" ;\n    ditto \"${SYMROOT}/WebKit.framework\" \"${DSTROOT}/${SYSTEM_LIBRARY_DIR}/PrivateFrameworks/WebKit.framework\" ;\n    strip -S ${DSTROOT}/\"${SYSTEM_LIBRARY_DIR}/PrivateFrameworks/WebKit.framework/Versions/A/WebKit\";\nelse\n    ditto \"${SYMROOT}/WebKit.framework\" \"${DSTROOT}/AppleInternal/Library/Frameworks/WebKit.framework\"\n    strip -S \"${DSTROOT}/AppleInternal/Library/Frameworks/WebKit.framework/Versions/A/WebKit\"\nfi";
+			shellScript = "if [ \"x$RC_RELEASE\" = \"xPanther\" ]; then\n    install_name_tool -id \"${SYSTEM_LIBRARY_DIR}/PrivateFrameworks/WebKit.framework/Versions/A/WebKit\" \"${SYMROOT}/WebKit.framework/Versions/A/WebKit\" ;\n    ditto \"${SYMROOT}/WebKit.framework\" \"${DSTROOT}/${SYSTEM_LIBRARY_DIR}/PrivateFrameworks/WebKit.framework\" ;\n    strip -S ${DSTROOT}/\"${SYSTEM_LIBRARY_DIR}/PrivateFrameworks/WebKit.framework/Versions/A/WebKit\";\nelse\n    ditto \"${SYMROOT}/WebKit.framework\" \"${DSTROOT}/AppleInternal/Library/PrivateFrameworks/WebKit.framework\"\n    strip -S \"${DSTROOT}/AppleInternal/Library/Frameworks/WebKit.framework/Versions/A/WebKit\"\nfi";
 		};
 		6578F5DE045F817400000128 = {
 			fileEncoding = 30;
diff --git a/WebKit/WebView.subproj/WebBaseResourceHandleDelegate.m b/WebKit/WebView.subproj/WebBaseResourceHandleDelegate.m
index 4ba8e9e..8691dbc 100644
--- a/WebKit/WebView.subproj/WebBaseResourceHandleDelegate.m
+++ b/WebKit/WebView.subproj/WebBaseResourceHandleDelegate.m
@@ -28,6 +28,8 @@
 
 - (void)_releaseResources
 {
+    ASSERT (!reachedTerminalState);
+    
     // It's possible that when we release the handle, it will be
     // deallocated and release the last reference to this object.
     // We need to retain to avoid accessing the object after it
@@ -60,7 +62,7 @@
 
 - (void)dealloc
 {
-    [self _releaseResources];
+    ASSERT (reachedTerminalState);
     [request release];
     [response release];
     [super dealloc];
diff --git a/WebKit/WebView.subproj/WebLoader.m b/WebKit/WebView.subproj/WebLoader.m
index 4ba8e9e..8691dbc 100644
--- a/WebKit/WebView.subproj/WebLoader.m
+++ b/WebKit/WebView.subproj/WebLoader.m
@@ -28,6 +28,8 @@
 
 - (void)_releaseResources
 {
+    ASSERT (!reachedTerminalState);
+    
     // It's possible that when we release the handle, it will be
     // deallocated and release the last reference to this object.
     // We need to retain to avoid accessing the object after it
@@ -60,7 +62,7 @@
 
 - (void)dealloc
 {
-    [self _releaseResources];
+    ASSERT (reachedTerminalState);
     [request release];
     [response release];
     [super dealloc];
diff --git a/WebKit/WebView.subproj/WebMainResourceClient.m b/WebKit/WebView.subproj/WebMainResourceClient.m
index 7ef7d45..76cf2bd 100644
--- a/WebKit/WebView.subproj/WebMainResourceClient.m
+++ b/WebKit/WebView.subproj/WebMainResourceClient.m
@@ -89,7 +89,9 @@
 
 -(void)stopLoadingForPolicyChange
 {
+    [self retain];
     [self cancelWithError:[self interruptForPolicyChangeError]];
+    [self release];
 }
 
 -(void)continueAfterNavigationPolicy:(NSURLRequest *)_request formState:(WebFormState *)state
@@ -188,18 +190,28 @@
 	ASSERT_NOT_REACHED();
     }
 
+    [self retain];
+
     [super connection:connection didReceiveResponse:r];
 
-    if ([[request URL] _web_shouldLoadAsEmptyDocument]) {
-	[self connectionDidFinishLoading:connection];
+    if (![dataSource _isStopping]){
+        if ([[request URL] _web_shouldLoadAsEmptyDocument]) {
+            [self connectionDidFinishLoading:connection];
+        }
     }
+    
+    [self release];
 }
 
 -(void)continueAfterContentPolicy:(WebPolicyAction)policy
 {
     NSURLResponse *r = [policyResponse retain];
+    BOOL isStopping = [dataSource _isStopping];
+
     [self cancelContentPolicy];
-    [self continueAfterContentPolicy:policy response:r];
+    if (!isStopping){
+        [self continueAfterContentPolicy:policy response:r];
+    }
     [r release];
 }
 
@@ -229,7 +241,6 @@
     [dataSource _setResponse:r];
     _contentLength = [r expectedContentLength];
 
-    // Figure out the content policy.
     [self checkContentPolicyForResponse:r];
 }
 
@@ -267,10 +278,10 @@
 
     [dataSource _finishedLoading];
     [[dataSource _webView] _mainReceivedBytesSoFar:[[dataSource data] length]
-                                       fromDataSource:dataSource
-                                             complete:YES];
+                                    fromDataSource:dataSource
+                                            complete:YES];
     [super connectionDidFinishLoading:con];
-    
+
     [self release];
 }
 
diff --git a/WebKit/WebView.subproj/WebMainResourceLoader.m b/WebKit/WebView.subproj/WebMainResourceLoader.m
index 7ef7d45..76cf2bd 100644
--- a/WebKit/WebView.subproj/WebMainResourceLoader.m
+++ b/WebKit/WebView.subproj/WebMainResourceLoader.m
@@ -89,7 +89,9 @@
 
 -(void)stopLoadingForPolicyChange
 {
+    [self retain];
     [self cancelWithError:[self interruptForPolicyChangeError]];
+    [self release];
 }
 
 -(void)continueAfterNavigationPolicy:(NSURLRequest *)_request formState:(WebFormState *)state
@@ -188,18 +190,28 @@
 	ASSERT_NOT_REACHED();
     }
 
+    [self retain];
+
     [super connection:connection didReceiveResponse:r];
 
-    if ([[request URL] _web_shouldLoadAsEmptyDocument]) {
-	[self connectionDidFinishLoading:connection];
+    if (![dataSource _isStopping]){
+        if ([[request URL] _web_shouldLoadAsEmptyDocument]) {
+            [self connectionDidFinishLoading:connection];
+        }
     }
+    
+    [self release];
 }
 
 -(void)continueAfterContentPolicy:(WebPolicyAction)policy
 {
     NSURLResponse *r = [policyResponse retain];
+    BOOL isStopping = [dataSource _isStopping];
+
     [self cancelContentPolicy];
-    [self continueAfterContentPolicy:policy response:r];
+    if (!isStopping){
+        [self continueAfterContentPolicy:policy response:r];
+    }
     [r release];
 }
 
@@ -229,7 +241,6 @@
     [dataSource _setResponse:r];
     _contentLength = [r expectedContentLength];
 
-    // Figure out the content policy.
     [self checkContentPolicyForResponse:r];
 }
 
@@ -267,10 +278,10 @@
 
     [dataSource _finishedLoading];
     [[dataSource _webView] _mainReceivedBytesSoFar:[[dataSource data] length]
-                                       fromDataSource:dataSource
-                                             complete:YES];
+                                    fromDataSource:dataSource
+                                            complete:YES];
     [super connectionDidFinishLoading:con];
-    
+
     [self release];
 }
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list