[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 06:56:31 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit c5f95c6e85c01c598e12a81095181477c07fc991
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sat Nov 2 00:13:27 2002 +0000

    WebKit:
    
    	Check that the plug-in is loaded before calling it.
    
            * Plugins.subproj/WebBaseNetscapePluginStream.h:
            * Plugins.subproj/WebBaseNetscapePluginStream.m:
            (-[WebBaseNetscapePluginStream dealloc]):
            (-[WebBaseNetscapePluginStream setPluginPointer:]):
            (-[WebBaseNetscapePluginStream setResponse:]):
            (-[WebBaseNetscapePluginStream receivedData:]):
            (-[WebBaseNetscapePluginStream destroyStreamWithReason:]):
            (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
            * Plugins.subproj/WebBasePluginPackage.h:
            * Plugins.subproj/WebBasePluginPackage.m:
            (-[WebBasePluginPackage isLoaded]):
            * Plugins.subproj/WebNetscapePluginDocumentView.m:
            (-[WebNetscapePluginDocumentView setDataSource:]):
            * Plugins.subproj/WebNetscapePluginPackage.m:
            (-[WebNetscapePluginPackage isLoaded]):
            * Plugins.subproj/WebNetscapePluginRepresentation.m:
            (-[WebNetscapePluginRepresentation receivedData:withDataSource:]):
    
    WebBrowser:
    
    	Use the display name of the dataSource not the document when reporting plug-in errors.
    
            * LoadProgressMonitor.m:
            (-[LoadProgressMonitor pluginFailedWithError:dataSource:]):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2533 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 488c1bc..55feac8 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,5 +1,27 @@
 2002-11-01  Chris Blumenberg  <cblu at apple.com>
 
+	Check that the plug-in is loaded before calling it.
+
+        * Plugins.subproj/WebBaseNetscapePluginStream.h:
+        * Plugins.subproj/WebBaseNetscapePluginStream.m:
+        (-[WebBaseNetscapePluginStream dealloc]):
+        (-[WebBaseNetscapePluginStream setPluginPointer:]):
+        (-[WebBaseNetscapePluginStream setResponse:]):
+        (-[WebBaseNetscapePluginStream receivedData:]):
+        (-[WebBaseNetscapePluginStream destroyStreamWithReason:]):
+        (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
+        * Plugins.subproj/WebBasePluginPackage.h:
+        * Plugins.subproj/WebBasePluginPackage.m:
+        (-[WebBasePluginPackage isLoaded]):
+        * Plugins.subproj/WebNetscapePluginDocumentView.m:
+        (-[WebNetscapePluginDocumentView setDataSource:]):
+        * Plugins.subproj/WebNetscapePluginPackage.m:
+        (-[WebNetscapePluginPackage isLoaded]):
+        * Plugins.subproj/WebNetscapePluginRepresentation.m:
+        (-[WebNetscapePluginRepresentation receivedData:withDataSource:]):
+
+2002-11-01  Chris Blumenberg  <cblu at apple.com>
+
 	- Moved plug-in error handling to WebResourceLoadDelegate
 	- Report plug-in load failure, java load failure, and plug-in not found errors.
 	- Added WebPluginError, subclass of WebError.
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 488c1bc..55feac8 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,5 +1,27 @@
 2002-11-01  Chris Blumenberg  <cblu at apple.com>
 
+	Check that the plug-in is loaded before calling it.
+
+        * Plugins.subproj/WebBaseNetscapePluginStream.h:
+        * Plugins.subproj/WebBaseNetscapePluginStream.m:
+        (-[WebBaseNetscapePluginStream dealloc]):
+        (-[WebBaseNetscapePluginStream setPluginPointer:]):
+        (-[WebBaseNetscapePluginStream setResponse:]):
+        (-[WebBaseNetscapePluginStream receivedData:]):
+        (-[WebBaseNetscapePluginStream destroyStreamWithReason:]):
+        (-[WebBaseNetscapePluginStream finishedLoadingWithData:]):
+        * Plugins.subproj/WebBasePluginPackage.h:
+        * Plugins.subproj/WebBasePluginPackage.m:
+        (-[WebBasePluginPackage isLoaded]):
+        * Plugins.subproj/WebNetscapePluginDocumentView.m:
+        (-[WebNetscapePluginDocumentView setDataSource:]):
+        * Plugins.subproj/WebNetscapePluginPackage.m:
+        (-[WebNetscapePluginPackage isLoaded]):
+        * Plugins.subproj/WebNetscapePluginRepresentation.m:
+        (-[WebNetscapePluginRepresentation receivedData:withDataSource:]):
+
+2002-11-01  Chris Blumenberg  <cblu at apple.com>
+
 	- Moved plug-in error handling to WebResourceLoadDelegate
 	- Report plug-in load failure, java load failure, and plug-in not found errors.
 	- Added WebPluginError, subclass of WebError.
diff --git a/WebKit/Plugins.subproj/WebBaseNetscapePluginStream.h b/WebKit/Plugins.subproj/WebBaseNetscapePluginStream.h
index 7081b11..cd4f2e6 100644
--- a/WebKit/Plugins.subproj/WebBaseNetscapePluginStream.h
+++ b/WebKit/Plugins.subproj/WebBaseNetscapePluginStream.h
@@ -8,6 +8,7 @@
 #import <WebKit/WebBaseResourceHandleDelegate.h>
 #import <WebKit/npapi.h>
 
+ at class WebNetscapePluginPackage;
 @class WebResourceResponse;
 
 @interface WebBaseNetscapePluginStream : WebBaseResourceHandleDelegate
@@ -19,6 +20,7 @@
     NPStream stream;
     NSString *path;
     void *notifyData;
+    WebNetscapePluginPackage *plugin;
         
     NPP_NewStreamProcPtr NPP_NewStream;
     NPP_DestroyStreamProcPtr NPP_DestroyStream;
diff --git a/WebKit/Plugins.subproj/WebBaseNetscapePluginStream.m b/WebKit/Plugins.subproj/WebBaseNetscapePluginStream.m
index c46b379..efb932b 100644
--- a/WebKit/Plugins.subproj/WebBaseNetscapePluginStream.m
+++ b/WebKit/Plugins.subproj/WebBaseNetscapePluginStream.m
@@ -24,7 +24,8 @@
     [URL release];
     free((void *)stream.URL);
     [path release];
-
+    [plugin release];
+    
     [super dealloc];
 }
 
@@ -32,7 +33,7 @@
 {
     instance = pluginPointer;
     
-    WebNetscapePluginPackage *plugin = [(WebBaseNetscapePluginView *)instance->ndata plugin];
+    plugin = [[(WebBaseNetscapePluginView *)instance->ndata plugin] retain];
 
     NPP_NewStream = 	[plugin NPP_NewStream];
     NPP_WriteReady = 	[plugin NPP_WriteReady];
@@ -44,6 +45,10 @@
 
 - (void)setResponse:(WebResourceResponse *)r
 {
+    if(![plugin isLoaded]){
+        return;
+    }
+    
     [URL release];
     URL = [[r URL] retain];
     
@@ -102,7 +107,11 @@
 }
 
 - (void)receivedData:(NSData *)data
-{   
+{
+    if(![plugin isLoaded]){
+        return;
+    }
+    
     if (transferMode != NP_ASFILEONLY) {
         int32 numBytes;
         
@@ -118,9 +127,10 @@
 
 - (void)destroyStreamWithReason:(NPReason)reason
 {
-    if (!stream.ndata) {
+    if(![plugin isLoaded] || !stream.ndata) {
         return;
     }
+    
     NPError npErr;
     npErr = NPP_DestroyStream(instance, &stream, reason);
     LOG(Plugins, "NPP_DestroyStream: %d", npErr);
@@ -134,6 +144,10 @@
 
 - (void)finishedLoadingWithData:(NSData *)data
 {
+    if(![plugin isLoaded]){
+        return;
+    }
+    
     NSString *filename = [[URL path] lastPathComponent];
     if(transferMode == NP_ASFILE || transferMode == NP_ASFILEONLY) {
         // FIXME: Need to use something like mkstemp?
diff --git a/WebKit/Plugins.subproj/WebBasePluginPackage.h b/WebKit/Plugins.subproj/WebBasePluginPackage.h
index 2bcca09..917e53a 100644
--- a/WebKit/Plugins.subproj/WebBasePluginPackage.h
+++ b/WebKit/Plugins.subproj/WebBasePluginPackage.h
@@ -27,6 +27,7 @@
 
 - (BOOL)load;
 - (void)unload;
+- (BOOL)isLoaded;
 
 - (NSString *)name;
 - (NSString *)path;
diff --git a/WebKit/Plugins.subproj/WebBasePluginPackage.m b/WebKit/Plugins.subproj/WebBasePluginPackage.m
index 103d4c4..b432fa5 100644
--- a/WebKit/Plugins.subproj/WebBasePluginPackage.m
+++ b/WebKit/Plugins.subproj/WebBasePluginPackage.m
@@ -31,6 +31,11 @@
     return self;
 }
 
+- (BOOL)isLoaded
+{
+    return NO;
+}
+
 - (BOOL)load
 {
     return NO;
diff --git a/WebKit/Plugins.subproj/WebNetscapePluginDocumentView.m b/WebKit/Plugins.subproj/WebNetscapePluginDocumentView.m
index 2acd4c3..f10da7f 100644
--- a/WebKit/Plugins.subproj/WebNetscapePluginDocumentView.m
+++ b/WebKit/Plugins.subproj/WebNetscapePluginDocumentView.m
@@ -67,6 +67,8 @@
     thePlugin = (WebNetscapePluginPackage *)[[WebPluginDatabase installedPlugins] pluginForMIMEType:MIME];
 
     if (![thePlugin load]){
+        // FIXME: It would be nice to stop the load here.
+        
         WebPluginError *error = [WebPluginError pluginErrorWithCode:WebErrorCannotLoadPlugin
                                                                 URL:[theDataSource URL]
                                                       pluginPageURL:nil
@@ -74,6 +76,7 @@
                                                            MIMEType:MIME];
         
         [[[theDataSource controller] resourceLoadDelegate] pluginFailedWithError:error dataSource:theDataSource];
+        
         return;
     }
 
diff --git a/WebKit/Plugins.subproj/WebNetscapePluginPackage.m b/WebKit/Plugins.subproj/WebNetscapePluginPackage.m
index 54bf199..d995561 100644
--- a/WebKit/Plugins.subproj/WebNetscapePluginPackage.m
+++ b/WebKit/Plugins.subproj/WebNetscapePluginPackage.m
@@ -225,6 +225,11 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
     }
 }
 
+- (BOOL)isLoaded
+{
+    return isLoaded;
+}
+
 - (BOOL)load
 {    
     getEntryPointsFuncPtr NP_GetEntryPoints = NULL;
diff --git a/WebKit/Plugins.subproj/WebNetscapePluginRepresentation.m b/WebKit/Plugins.subproj/WebNetscapePluginRepresentation.m
index 939bf03..b1b1b6e 100644
--- a/WebKit/Plugins.subproj/WebNetscapePluginRepresentation.m
+++ b/WebKit/Plugins.subproj/WebNetscapePluginRepresentation.m
@@ -20,10 +20,15 @@
 - (void)receivedData:(NSData *)data withDataSource:(WebDataSource *)ds
 {
     if(!instance){
-        [self setPluginPointer:[(WebNetscapePluginDocumentView *)[[[ds webFrame] webView] documentView] pluginPointer]];
-        [self setResponse:[ds response]];
+        NSView *view = [[[ds webFrame] webView] documentView];
+        if([[view class] isKindOfClass:[WebNetscapePluginDocumentView class]]){
+            [self setPluginPointer:[(WebNetscapePluginDocumentView *)view pluginPointer]];
+            [self setResponse:[ds response]];
+        }
+    }
+    if(instance){
+        [self receivedData:data];
     }
-    [self receivedData:data];
 }
 
 - (void)receivedError:(WebError *)error withDataSource:(WebDataSource *)ds

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list