[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