[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 06:53:49 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 8d018a478f954d36f14c6b49007d7e75b7328d2d
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Oct 24 16:18:18 2002 +0000

            Always copy request, we can't count on it being immutable.
            This was the cause of the ASSERT from last night's checkin.
    
            * WebView.subproj/WebBaseResourceHandleDelegate.m:
            (-[WebBaseResourceHandleDelegate handle:willSendRequest:]):
    
            Only send serverRedirectedForDataSource: if URL changed.
    
            * WebView.subproj/WebDataSourcePrivate.m:
            (-[WebDataSource _setRequest:]):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2449 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 0f921c3..50a26d0 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,16 @@
+2002-10-24  Richard Williamson   <rjw at apple.com>
+
+        Always copy request, we can't count on it being immutable.
+        This was the cause of the ASSERT from last night's checkin.
+        
+        * WebView.subproj/WebBaseResourceHandleDelegate.m:
+        (-[WebBaseResourceHandleDelegate handle:willSendRequest:]):
+        
+        Only send serverRedirectedForDataSource: if URL changed.
+        
+        * WebView.subproj/WebDataSourcePrivate.m:
+        (-[WebDataSource _setRequest:]):
+
 2002-10-24  Chris Blumenberg  <cblu at apple.com>
 	
 	- Use "MIMEType" instead of "serviceType".
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 0f921c3..50a26d0 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,16 @@
+2002-10-24  Richard Williamson   <rjw at apple.com>
+
+        Always copy request, we can't count on it being immutable.
+        This was the cause of the ASSERT from last night's checkin.
+        
+        * WebView.subproj/WebBaseResourceHandleDelegate.m:
+        (-[WebBaseResourceHandleDelegate handle:willSendRequest:]):
+        
+        Only send serverRedirectedForDataSource: if URL changed.
+        
+        * WebView.subproj/WebDataSourcePrivate.m:
+        (-[WebDataSource _setRequest:]):
+
 2002-10-24  Chris Blumenberg  <cblu at apple.com>
 	
 	- Use "MIMEType" instead of "serviceType".
diff --git a/WebKit/WebView.subproj/WebBaseResourceHandleDelegate.m b/WebKit/WebView.subproj/WebBaseResourceHandleDelegate.m
index 789796a..f8b12e6 100644
--- a/WebKit/WebView.subproj/WebBaseResourceHandleDelegate.m
+++ b/WebKit/WebView.subproj/WebBaseResourceHandleDelegate.m
@@ -121,29 +121,31 @@
         
     [newRequest setUserAgent:[[dataSource controller] userAgentForURL:[newRequest URL]]];
 
-    [newRequest retain];
-    [request release];
+    // No need to retain here, will be copied after delegate callback.
     request = newRequest;
 
     if (identifier == nil){
         // The identifier is released after the last callback, rather than in dealloc
         // to avoid potential cycles.
-        identifier = [[resourceLoadDelegate identifierForInitialRequest: newRequest fromDataSource: dataSource] retain];
+        identifier = [[resourceLoadDelegate identifierForInitialRequest: request fromDataSource: dataSource] retain];
     }
 
     if (resourceLoadDelegate)
-        newRequest = [resourceLoadDelegate resource: identifier willSendRequest: newRequest fromDataSource: dataSource];
+        request = [resourceLoadDelegate resource: identifier willSendRequest: request fromDataSource: dataSource];
 
     [[WebStandardPanels sharedStandardPanels] _didStopLoadingURL:currentURL inController: [dataSource controller]];
     
-    if ([newRequest URL] != currentURL){
+    if ([request URL] != currentURL){
         [currentURL release];
-        currentURL = [[newRequest URL] retain];
+        currentURL = [[request URL] retain];
     }
     
     [[WebStandardPanels sharedStandardPanels] _didStartLoadingURL:currentURL inController:[dataSource controller]];
 
-    return newRequest;
+    // It'd be nice if we could depend on WebResourceRequest being immutable, but we can't so always
+    // copy.
+    request = [request copy];
+    return request;
 }
 
 -(void)handle:(WebResourceHandle *)h didReceiveResponse:(WebResourceResponse *)r
diff --git a/WebKit/WebView.subproj/WebDataSourcePrivate.m b/WebKit/WebView.subproj/WebDataSourcePrivate.m
index bb036e8..5761a86 100644
--- a/WebKit/WebView.subproj/WebDataSourcePrivate.m
+++ b/WebKit/WebView.subproj/WebDataSourcePrivate.m
@@ -271,16 +271,17 @@
     // source is committed. It would be a WebFoundation bug if it sent
     // a redirect callback after commit.
     ASSERT(!_private->committed);
-    if (_private->request == request){
-        ERROR ("_private->request == request\n");
-        return;
-    }
+    ASSERT (_private->request != request);
     
-    [request retain];
-    [_private->request release];
-    _private->request = request;
+    WebResourceRequest *oldRequest = _private->request;
+    
+    _private->request = [request retain];
 
-    [[_private->controller locationChangeDelegate] serverRedirectedForDataSource:self];
+    // Only send serverRedirectedForDataSource: if URL changed.
+    if (![[oldRequest URL] isEqual: [request URL]])
+        [[_private->controller locationChangeDelegate] serverRedirectedForDataSource:self];
+        
+    [oldRequest release];
 }
 
 - (void)_setResponse:(WebResourceResponse *)response
diff --git a/WebKit/WebView.subproj/WebLoader.m b/WebKit/WebView.subproj/WebLoader.m
index 789796a..f8b12e6 100644
--- a/WebKit/WebView.subproj/WebLoader.m
+++ b/WebKit/WebView.subproj/WebLoader.m
@@ -121,29 +121,31 @@
         
     [newRequest setUserAgent:[[dataSource controller] userAgentForURL:[newRequest URL]]];
 
-    [newRequest retain];
-    [request release];
+    // No need to retain here, will be copied after delegate callback.
     request = newRequest;
 
     if (identifier == nil){
         // The identifier is released after the last callback, rather than in dealloc
         // to avoid potential cycles.
-        identifier = [[resourceLoadDelegate identifierForInitialRequest: newRequest fromDataSource: dataSource] retain];
+        identifier = [[resourceLoadDelegate identifierForInitialRequest: request fromDataSource: dataSource] retain];
     }
 
     if (resourceLoadDelegate)
-        newRequest = [resourceLoadDelegate resource: identifier willSendRequest: newRequest fromDataSource: dataSource];
+        request = [resourceLoadDelegate resource: identifier willSendRequest: request fromDataSource: dataSource];
 
     [[WebStandardPanels sharedStandardPanels] _didStopLoadingURL:currentURL inController: [dataSource controller]];
     
-    if ([newRequest URL] != currentURL){
+    if ([request URL] != currentURL){
         [currentURL release];
-        currentURL = [[newRequest URL] retain];
+        currentURL = [[request URL] retain];
     }
     
     [[WebStandardPanels sharedStandardPanels] _didStartLoadingURL:currentURL inController:[dataSource controller]];
 
-    return newRequest;
+    // It'd be nice if we could depend on WebResourceRequest being immutable, but we can't so always
+    // copy.
+    request = [request copy];
+    return request;
 }
 
 -(void)handle:(WebResourceHandle *)h didReceiveResponse:(WebResourceResponse *)r

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list