[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:03:12 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 6d927229390cd887cef85d9596f3e1dcd13e5b9a
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Nov 18 22:22:03 2002 +0000

    	Fixed: 3104183 - Assert loading www.louisvuitton.com
    
    	We need to treat plug-in streams like subresources except they don't change the loading state of the data source.
    
            * Plugins.subproj/WebNetscapePluginStream.m:
            (-[WebNetscapePluginStream start]): call _addPluginStream
            (-[WebNetscapePluginStream cancel]): call _removePluginStream
            (-[WebNetscapePluginStream handleDidFinishLoading:]): call _removePluginStream
            (-[WebNetscapePluginStream handle:didFailLoadingWithError:]): call _removePluginStream
            * WebView.subproj/WebDataSourcePrivate.h:
            * WebView.subproj/WebDataSourcePrivate.m:
            (-[WebDataSourcePrivate dealloc]): release pluginStreams
            (-[WebDataSource _addPluginStream:]): just like addSubresourceClient except don't change the loading state.
            (-[WebDataSource _removePluginStream:]): just like removeSubresourceClient except don't change the loading state.
            (-[WebDataSource _stopLoading]): stop plug-ins streams
            (-[WebDataSource _makeHandleDelegates:deferCallbacks:]):
            (-[WebDataSource _defersCallbacksChanged]): call _makeHandleDelegates:deferCallbacks: for subresources and plug-in streams.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2737 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 8d97cf0..f0122a5 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,23 @@
+2002-11-18  Chris Blumenberg  <cblu at apple.com>
+
+	Fixed: 3104183 - Assert loading www.louisvuitton.com
+
+	We need to treat plug-in streams like subresources except they don't change the loading state of the data source.
+
+        * Plugins.subproj/WebNetscapePluginStream.m:
+        (-[WebNetscapePluginStream start]): call _addPluginStream
+        (-[WebNetscapePluginStream cancel]): call _removePluginStream
+        (-[WebNetscapePluginStream handleDidFinishLoading:]): call _removePluginStream
+        (-[WebNetscapePluginStream handle:didFailLoadingWithError:]): call _removePluginStream
+        * WebView.subproj/WebDataSourcePrivate.h:
+        * WebView.subproj/WebDataSourcePrivate.m:
+        (-[WebDataSourcePrivate dealloc]): release pluginStreams
+        (-[WebDataSource _addPluginStream:]): just like addSubresourceClient except don't change the loading state.
+        (-[WebDataSource _removePluginStream:]): just like removeSubresourceClient except don't change the loading state.
+        (-[WebDataSource _stopLoading]): stop plug-ins streams
+        (-[WebDataSource _makeHandleDelegates:deferCallbacks:]): 
+        (-[WebDataSource _defersCallbacksChanged]): call _makeHandleDelegates:deferCallbacks: for subresources and plug-in streams.
+
 2002-11-18  Richard Williamson   <rjw at apple.com>
 
         Check for usesBackForwardList was excluding all load types.
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 8d97cf0..f0122a5 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,23 @@
+2002-11-18  Chris Blumenberg  <cblu at apple.com>
+
+	Fixed: 3104183 - Assert loading www.louisvuitton.com
+
+	We need to treat plug-in streams like subresources except they don't change the loading state of the data source.
+
+        * Plugins.subproj/WebNetscapePluginStream.m:
+        (-[WebNetscapePluginStream start]): call _addPluginStream
+        (-[WebNetscapePluginStream cancel]): call _removePluginStream
+        (-[WebNetscapePluginStream handleDidFinishLoading:]): call _removePluginStream
+        (-[WebNetscapePluginStream handle:didFailLoadingWithError:]): call _removePluginStream
+        * WebView.subproj/WebDataSourcePrivate.h:
+        * WebView.subproj/WebDataSourcePrivate.m:
+        (-[WebDataSourcePrivate dealloc]): release pluginStreams
+        (-[WebDataSource _addPluginStream:]): just like addSubresourceClient except don't change the loading state.
+        (-[WebDataSource _removePluginStream:]): just like removeSubresourceClient except don't change the loading state.
+        (-[WebDataSource _stopLoading]): stop plug-ins streams
+        (-[WebDataSource _makeHandleDelegates:deferCallbacks:]): 
+        (-[WebDataSource _defersCallbacksChanged]): call _makeHandleDelegates:deferCallbacks: for subresources and plug-in streams.
+
 2002-11-18  Richard Williamson   <rjw at apple.com>
 
         Check for usesBackForwardList was excluding all load types.
diff --git a/WebKit/Plugins.subproj/WebNetscapePluginStream.m b/WebKit/Plugins.subproj/WebNetscapePluginStream.m
index 9a6bd61..51bcc39 100644
--- a/WebKit/Plugins.subproj/WebNetscapePluginStream.m
+++ b/WebKit/Plugins.subproj/WebNetscapePluginStream.m
@@ -4,6 +4,7 @@
 */
 
 #import <WebKit/WebControllerPrivate.h>
+#import <WebKit/WebDataSourcePrivate.h>
 #import <WebKit/WebKitLogging.h>
 #import <WebKit/WebNetscapePluginEmbeddedView.h>
 #import <WebKit/WebNetscapePluginStream.h>
@@ -46,7 +47,9 @@
 - (void)start
 {
     ASSERT(_startingRequest);
-    [self loadWithRequest:_startingRequest];
+    if([self loadWithRequest:_startingRequest]){
+        [[view dataSource] _addPluginStream:self];
+    }
     [_startingRequest release];
     _startingRequest = nil;
 }
@@ -60,6 +63,7 @@
 
 - (void)cancel
 {
+    [[view dataSource] _removePluginStream:self];
     [view release];
     view = nil;
 
@@ -95,6 +99,7 @@
     [controller _finishedLoadingResourceFromDataSource:[view dataSource]];
     [self finishedLoadingWithData:resourceData];
 
+    [[view dataSource] _removePluginStream:self];
     [view release];
     view = nil;
     
@@ -109,6 +114,7 @@
 
     [self receivedError:NPRES_NETWORK_ERR];
 
+    [[view dataSource] _removePluginStream:self];
     [view release];
     view = nil;
     
diff --git a/WebKit/WebView.subproj/WebDataSourcePrivate.h b/WebKit/WebView.subproj/WebDataSourcePrivate.h
index 3d8e4ea..1a77f5c 100644
--- a/WebKit/WebView.subproj/WebDataSourcePrivate.h
+++ b/WebKit/WebView.subproj/WebDataSourcePrivate.h
@@ -11,6 +11,7 @@
 
 @class WebIconLoader;
 @class WebMainResourceClient;
+ at class WebNetscapePluginStream;
 @class WebResourceHandle;
 @class WebResourceRequest;
 @class WebResourceResponse;
@@ -37,6 +38,9 @@
     
     // Clients for other resources.
     NSMutableArray *subresourceClients;
+    
+    // Plugin streams are like subresources except that they don't affect the loading state of the datasource.
+    NSMutableArray *pluginStreams;
 
     // The time when the data source was told to start loading.
     double loadingStartedTime;
@@ -100,6 +104,8 @@
 - (void)_recursiveStopLoading;
 - (void)_addSubresourceClient:(WebSubresourceClient *)client;
 - (void)_removeSubresourceClient:(WebSubresourceClient *)client;
+- (void)_addPluginStream:(WebNetscapePluginStream *)stream;
+- (void)_removePluginStream:(WebNetscapePluginStream *)stream;
 - (void)_setPrimaryLoadComplete:(BOOL)flag;
 - (double)_loadingStartedTime;
 - (void)_setTitle:(NSString *)title;
diff --git a/WebKit/WebView.subproj/WebDataSourcePrivate.m b/WebKit/WebView.subproj/WebDataSourcePrivate.m
index 3a9e3f2..5b64c47 100644
--- a/WebKit/WebView.subproj/WebDataSourcePrivate.m
+++ b/WebKit/WebView.subproj/WebDataSourcePrivate.m
@@ -23,6 +23,7 @@
 #import <WebKit/WebKitLogging.h>
 #import <WebKit/WebLocationChangeDelegate.h>
 #import <WebKit/WebMainResourceClient.h>
+#import <WebKit/WebNetscapePluginStream.h>
 #import <WebKit/WebSubresourceClient.h>
 #import <WebKit/WebTextRepresentation.h>
 #import <WebKit/WebViewPrivate.h>
@@ -51,6 +52,7 @@
     [originalRequest release];
     [mainClient release];
     [subresourceClients release];
+    [pluginStreams release];
     [pageTitle release];
     [response release];
     [mainDocumentError release];
@@ -189,6 +191,24 @@
     [self _updateLoading];
 }
 
+// Plugin streams are like subresources except that they don't affect the loading state of the datasource.
+- (void)_addPluginStream:(WebNetscapePluginStream *)stream
+{
+    if (_private->pluginStreams == nil) {
+        _private->pluginStreams = [[NSMutableArray alloc] init];
+    }
+    if ([_private->controller _defersCallbacks]) {
+        [stream setDefersCallbacks:YES];
+    }
+    [_private->pluginStreams addObject:stream];
+}
+
+- (void)_removePluginStream:(WebNetscapePluginStream *)stream
+{
+    [_private->pluginStreams removeObject:stream];
+}
+
+
 - (BOOL)_isStopping
 {
     return _private->stopping;
@@ -208,6 +228,10 @@
     [clients makeObjectsPerformSelector:@selector(cancel)];
     [clients release];
 
+    NSArray *streams = [_private->pluginStreams copy];
+    [streams makeObjectsPerformSelector:@selector(cancel)];
+    [streams release];
+    
     if (_private->committed) {
 	[[self _bridge] closeURL];        
     }
@@ -519,6 +543,16 @@
     _private->iconURL = [URL retain];
 }
 
+
+- (void)_makeHandleDelegates:(NSArray *)handleDelegates deferCallbacks:(BOOL)deferCallbacks
+{
+    NSEnumerator *e = [handleDelegates objectEnumerator];
+    WebBaseResourceHandleDelegate *delegate;
+    while ((delegate = [e nextObject])) {
+        [delegate setDefersCallbacks:deferCallbacks];
+    }
+}
+
 - (void)_defersCallbacksChanged
 {
     BOOL defers = [_private->controller _defersCallbacks];
@@ -529,11 +563,9 @@
 
     _private->defersCallbacks = defers;
     [_private->mainClient setDefersCallbacks:defers];
-    NSEnumerator *e = [_private->subresourceClients objectEnumerator];
-    WebSubresourceClient *client;
-    while ((client = [e nextObject])) {
-        [client setDefersCallbacks:defers];
-    }
+
+    [self _makeHandleDelegates:_private->subresourceClients deferCallbacks:defers];
+    [self _makeHandleDelegates:_private->pluginStreams deferCallbacks:defers];
 
     [[[self webFrame] children] makeObjectsPerformSelector:@selector(_defersCallbacksChanged)];
 }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list