[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:52:55 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit b4d59799a2ac48495c19af056ed6005c108bd2b0
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Oct 23 05:35:15 2002 +0000

    	More moving stuff around for the new plug-in API. Added WebBasePluginPackage and added subclass WebPluginPackage. Also made WebNetscapePluginPackage a subclass of WebBasePluginPackage.
    
            * Plugins.subproj/WebBasePluginPackage.h: Added.
            * Plugins.subproj/WebBasePluginPackage.m: Added.
            (+[WebBasePluginPackage pluginWithPath:]): creates a WebPluginPackage or WebNetscapePluginPackage
            (-[WebBasePluginPackage initWithPath:]):
            (-[WebBasePluginPackage name]):
            (-[WebBasePluginPackage path]):
            (-[WebBasePluginPackage filename]):
            (-[WebBasePluginPackage pluginDescription]):
            (-[WebBasePluginPackage extensionToMIMEDictionary]):
            (-[WebBasePluginPackage MIMEToExtensionsDictionary]):
            (-[WebBasePluginPackage MIMEToDescriptionDictionary]):
            (-[WebBasePluginPackage load]):
            (-[WebBasePluginPackage unload]):
            (-[WebBasePluginPackage isLoaded]):
            (-[WebBasePluginPackage description]):
            * Plugins.subproj/WebNetscapePluginDocumentView.m:
            (-[WebNetscapePluginDocumentView setDataSource:]):
            * Plugins.subproj/WebNetscapePluginPackage.h:
            * Plugins.subproj/WebNetscapePluginPackage.m:
            (-[WebNetscapePluginPackage initWithPath:]):
            * Plugins.subproj/WebPluginDatabase.h:
            * Plugins.subproj/WebPluginDatabase.m:
            (-[WebPluginDatabase pluginForMIMEType:]):
            (-[WebPluginDatabase pluginForExtension:]):
            (-[WebPluginDatabase pluginForFilename:]):
            (-[WebPluginDatabase MIMETypes]):
            (-[WebPluginDatabase init]):
            * Plugins.subproj/WebPluginPackage.h: Added.
            * Plugins.subproj/WebPluginPackage.m: Added.
            (-[WebPluginPackage initWithPath:]):
            * WebCoreSupport.subproj/WebViewFactory.m:
            (-[WebViewFactory viewForPluginWithURL:serviceType:arguments:baseURL:]): check the class of the plug-in when deciding which view to create.
            (-[WebViewFactory viewForJavaAppletWithFrame:baseURL:parameters:]): same here.
            * WebKit.pbproj/project.pbxproj:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2428 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 3d75fb5..b17103e 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,42 @@
+2002-10-22  Chris Blumenberg  <cblu at apple.com>
+
+	More moving stuff around for the new plug-in API. Added WebBasePluginPackage and added subclass WebPluginPackage. Also made WebNetscapePluginPackage a subclass of WebBasePluginPackage. 
+
+        * Plugins.subproj/WebBasePluginPackage.h: Added.
+        * Plugins.subproj/WebBasePluginPackage.m: Added.
+        (+[WebBasePluginPackage pluginWithPath:]): creates a WebPluginPackage or WebNetscapePluginPackage
+        (-[WebBasePluginPackage initWithPath:]):
+        (-[WebBasePluginPackage name]):
+        (-[WebBasePluginPackage path]):
+        (-[WebBasePluginPackage filename]):
+        (-[WebBasePluginPackage pluginDescription]):
+        (-[WebBasePluginPackage extensionToMIMEDictionary]):
+        (-[WebBasePluginPackage MIMEToExtensionsDictionary]):
+        (-[WebBasePluginPackage MIMEToDescriptionDictionary]):
+        (-[WebBasePluginPackage load]):
+        (-[WebBasePluginPackage unload]):
+        (-[WebBasePluginPackage isLoaded]):
+        (-[WebBasePluginPackage description]):
+        * Plugins.subproj/WebNetscapePluginDocumentView.m:
+        (-[WebNetscapePluginDocumentView setDataSource:]):
+        * Plugins.subproj/WebNetscapePluginPackage.h:
+        * Plugins.subproj/WebNetscapePluginPackage.m:
+        (-[WebNetscapePluginPackage initWithPath:]):
+        * Plugins.subproj/WebPluginDatabase.h:
+        * Plugins.subproj/WebPluginDatabase.m:
+        (-[WebPluginDatabase pluginForMIMEType:]):
+        (-[WebPluginDatabase pluginForExtension:]):
+        (-[WebPluginDatabase pluginForFilename:]):
+        (-[WebPluginDatabase MIMETypes]):
+        (-[WebPluginDatabase init]):
+        * Plugins.subproj/WebPluginPackage.h: Added.
+        * Plugins.subproj/WebPluginPackage.m: Added.
+        (-[WebPluginPackage initWithPath:]):
+        * WebCoreSupport.subproj/WebViewFactory.m:
+        (-[WebViewFactory viewForPluginWithURL:serviceType:arguments:baseURL:]): check the class of the plug-in when deciding which view to create.
+        (-[WebViewFactory viewForJavaAppletWithFrame:baseURL:parameters:]): same here.
+        * WebKit.pbproj/project.pbxproj:
+
 2002-10-22  David Hyatt  <hyatt at apple.com>
 
 	Getting XML docs at least made for XML files...
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 3d75fb5..b17103e 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,42 @@
+2002-10-22  Chris Blumenberg  <cblu at apple.com>
+
+	More moving stuff around for the new plug-in API. Added WebBasePluginPackage and added subclass WebPluginPackage. Also made WebNetscapePluginPackage a subclass of WebBasePluginPackage. 
+
+        * Plugins.subproj/WebBasePluginPackage.h: Added.
+        * Plugins.subproj/WebBasePluginPackage.m: Added.
+        (+[WebBasePluginPackage pluginWithPath:]): creates a WebPluginPackage or WebNetscapePluginPackage
+        (-[WebBasePluginPackage initWithPath:]):
+        (-[WebBasePluginPackage name]):
+        (-[WebBasePluginPackage path]):
+        (-[WebBasePluginPackage filename]):
+        (-[WebBasePluginPackage pluginDescription]):
+        (-[WebBasePluginPackage extensionToMIMEDictionary]):
+        (-[WebBasePluginPackage MIMEToExtensionsDictionary]):
+        (-[WebBasePluginPackage MIMEToDescriptionDictionary]):
+        (-[WebBasePluginPackage load]):
+        (-[WebBasePluginPackage unload]):
+        (-[WebBasePluginPackage isLoaded]):
+        (-[WebBasePluginPackage description]):
+        * Plugins.subproj/WebNetscapePluginDocumentView.m:
+        (-[WebNetscapePluginDocumentView setDataSource:]):
+        * Plugins.subproj/WebNetscapePluginPackage.h:
+        * Plugins.subproj/WebNetscapePluginPackage.m:
+        (-[WebNetscapePluginPackage initWithPath:]):
+        * Plugins.subproj/WebPluginDatabase.h:
+        * Plugins.subproj/WebPluginDatabase.m:
+        (-[WebPluginDatabase pluginForMIMEType:]):
+        (-[WebPluginDatabase pluginForExtension:]):
+        (-[WebPluginDatabase pluginForFilename:]):
+        (-[WebPluginDatabase MIMETypes]):
+        (-[WebPluginDatabase init]):
+        * Plugins.subproj/WebPluginPackage.h: Added.
+        * Plugins.subproj/WebPluginPackage.m: Added.
+        (-[WebPluginPackage initWithPath:]):
+        * WebCoreSupport.subproj/WebViewFactory.m:
+        (-[WebViewFactory viewForPluginWithURL:serviceType:arguments:baseURL:]): check the class of the plug-in when deciding which view to create.
+        (-[WebViewFactory viewForJavaAppletWithFrame:baseURL:parameters:]): same here.
+        * WebKit.pbproj/project.pbxproj:
+
 2002-10-22  David Hyatt  <hyatt at apple.com>
 
 	Getting XML docs at least made for XML files...
diff --git a/WebKit/Plugins.subproj/WebBasePluginPackage.h b/WebKit/Plugins.subproj/WebBasePluginPackage.h
new file mode 100644
index 0000000..e572cc4
--- /dev/null
+++ b/WebKit/Plugins.subproj/WebBasePluginPackage.h
@@ -0,0 +1,43 @@
+//
+//  WebBasePluginPackage.h
+//  WebKit
+//
+//  Created by Chris Blumenberg on Tue Oct 22 2002.
+//  Copyright (c) 2002 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <WebCore/WebCoreViewFactory.h>
+
+ at interface WebBasePluginPackage : NSObject <WebCorePluginInfo>
+{
+    NSMutableDictionary *MIMEToExtensions;
+    NSMutableDictionary *extensionToMIME;
+    NSMutableDictionary *MIMEToDescription;
+
+    NSString *name;
+    NSString *path;
+    NSString *filename;
+    NSString *pluginDescription;
+
+    BOOL isLoaded;
+}
+
++ (WebBasePluginPackage *)pluginWithPath:(NSString *)pluginPath;
+
+- initWithPath:(NSString *)pluginPath;
+
+- (NSString *)name;
+- (NSString *)path;
+- (NSString *)filename;
+- (NSString *)pluginDescription;
+- (NSDictionary *)extensionToMIMEDictionary;
+- (NSDictionary *)MIMEToExtensionsDictionary;
+- (NSDictionary *)MIMEToDescriptionDictionary;
+
+- (BOOL)load;
+- (void)unload;
+- (BOOL)isLoaded;
+
+ at end
diff --git a/WebKit/Plugins.subproj/WebBasePluginPackage.m b/WebKit/Plugins.subproj/WebBasePluginPackage.m
new file mode 100644
index 0000000..6bc2413
--- /dev/null
+++ b/WebKit/Plugins.subproj/WebBasePluginPackage.m
@@ -0,0 +1,86 @@
+//
+//  WebBasePluginPackage.m
+//  WebKit
+//
+//  Created by Chris Blumenberg on Tue Oct 22 2002.
+//  Copyright (c) 2002 __MyCompanyName__. All rights reserved.
+//
+
+#import <WebKit/WebBasePluginPackage.h>
+#import <WebKit/WebNetscapePluginPackage.h>
+#import <WebKit/WebPluginPackage.h>
+
+ at implementation WebBasePluginPackage
+
++ (WebBasePluginPackage *)pluginWithPath:(NSString *)pluginPath
+{
+    WebBasePluginPackage *pluginPackage = [[WebPluginPackage alloc] initWithPath:pluginPath];
+
+    if(!pluginPackage){
+        pluginPackage = [[WebNetscapePluginPackage alloc] initWithPath:pluginPath];
+    }
+
+    return pluginPackage;
+}
+
+- initWithPath:(NSString *)pluginPath
+{
+    [super init];
+    return self;
+}
+
+- (NSString *)name{
+    return name;
+}
+
+- (NSString *)path{
+    return path;
+}
+
+- (NSString *)filename{
+    return filename;
+}
+
+- (NSString *)pluginDescription
+{
+    return pluginDescription;
+}
+
+- (NSDictionary *)extensionToMIMEDictionary
+{
+    return extensionToMIME;
+}
+
+- (NSDictionary *)MIMEToExtensionsDictionary
+{
+    return MIMEToExtensions;
+}
+
+- (NSDictionary *)MIMEToDescriptionDictionary
+{
+    return MIMEToDescription;
+}
+
+- (BOOL)load
+{
+    // Overriden by subclasses.
+    return NO;
+}
+
+- (void)unload
+{
+    // Overriden by subclasses.
+}
+
+- (BOOL)isLoaded
+{
+    return isLoaded;
+}
+
+- (NSString *)description
+{
+    return [NSString stringWithFormat:@"name: %@\npath: %@\nisLoaded: %d\nmimeTypes:\n%@\npluginDescription:%@",
+        name, path, isLoaded, [MIMEToExtensions description], [MIMEToDescription description], pluginDescription];
+}
+
+ at end
diff --git a/WebKit/Plugins.subproj/WebNetscapePluginDocumentView.m b/WebKit/Plugins.subproj/WebNetscapePluginDocumentView.m
index 90ce911..59eaa3c 100644
--- a/WebKit/Plugins.subproj/WebNetscapePluginDocumentView.m
+++ b/WebKit/Plugins.subproj/WebNetscapePluginDocumentView.m
@@ -60,7 +60,8 @@
     [self setMIMEType:MIME];
     [self setBaseURL:[dataSource URL]];
 
-    WebNetscapePluginPackage *thePlugin = [[WebPluginDatabase installedPlugins] pluginForMIMEType:MIME];
+    WebNetscapePluginPackage *thePlugin;
+    thePlugin = (WebNetscapePluginPackage *)[[WebPluginDatabase installedPlugins] pluginForMIMEType:MIME];
 
     if (![thePlugin load]){
         return;
diff --git a/WebKit/Plugins.subproj/WebNetscapePluginPackage.h b/WebKit/Plugins.subproj/WebNetscapePluginPackage.h
index 60690ec..7660717 100644
--- a/WebKit/Plugins.subproj/WebNetscapePluginPackage.h
+++ b/WebKit/Plugins.subproj/WebNetscapePluginPackage.h
@@ -4,21 +4,15 @@
 */
 
 #import <Foundation/Foundation.h>
-#import "npapi.h"
+
 #import <WebCore/WebCoreViewFactory.h>
 
- at interface WebNetscapePluginPackage : NSObject <WebCorePluginInfo>
-{
-    NSMutableDictionary *MIMEToExtensions;
-    NSMutableDictionary *extensionToMIME;
-    NSMutableDictionary *MIMEToDescription;
-    
-    NSString *name;
-    NSString *path;
-    NSString *filename;
-    NSString *pluginDescription;
+#import <WebKit/npapi.h>
+#import <WebKit/WebBasePluginPackage.h>
 
-    BOOL isLoaded;
+
+ at interface WebNetscapePluginPackage : WebBasePluginPackage
+{
     BOOL isBundle;
     BOOL isCFM;
     
@@ -50,14 +44,6 @@
     NPP_ShutdownProcPtr NPP_Shutdown;
 }
 
-- initWithPath:(NSString *)pluginPath;
-- (BOOL)load;
-- (void)unload;
-- (NSString *)path;
-- (BOOL)isLoaded;
-- (NSString *)description;
-- (NSDictionary *)extensionToMIMEDictionary;
-
 - (NPP_NewProcPtr)NPP_New;
 - (NPP_DestroyProcPtr)NPP_Destroy;
 - (NPP_SetWindowProcPtr)NPP_SetWindow;
diff --git a/WebKit/Plugins.subproj/WebNetscapePluginPackage.m b/WebKit/Plugins.subproj/WebNetscapePluginPackage.m
index 62eb3d1..bd460a8 100644
--- a/WebKit/Plugins.subproj/WebNetscapePluginPackage.m
+++ b/WebKit/Plugins.subproj/WebNetscapePluginPackage.m
@@ -159,6 +159,8 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
 
 - initWithPath:(NSString *)pluginPath
 {
+    [super initWithPath:pluginPath];
+    
     path = [self stringByResolvingSymlinksAndAliasesInPath:pluginPath];
     filename = [path lastPathComponent];
     
@@ -455,48 +457,6 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
     return NPP_Print;
 }
 
-- (NSDictionary *)MIMEToExtensionsDictionary
-{
-    return MIMEToExtensions;
-}
-
-- (NSDictionary *)extensionToMIMEDictionary
-{
-    return extensionToMIME;
-}
-
-- (NSDictionary *)MIMEToDescriptionDictionary
-{
-    return MIMEToDescription;
-}
-
-- (NSString *)name{
-    return name;
-}
-
-- (NSString *)filename{
-    return filename;
-}
-
-- (NSString *)path{
-    return path;
-}
-
-- (BOOL)isLoaded{
-    return isLoaded;
-}
-
-- (NSString *)pluginDescription
-{
-    return pluginDescription;
-}
-
-- (NSString *)description
-{
-    
-    return [NSString stringWithFormat:@"name: %@\npath: %@\nisLoaded: %d\nmimeTypes:\n%@\npluginDescription:%@",
-        name, path, isLoaded, [MIMEToExtensions description], [MIMEToDescription description], pluginDescription];
-}
 @end
 
 
diff --git a/WebKit/Plugins.subproj/WebPluginDatabase.h b/WebKit/Plugins.subproj/WebPluginDatabase.h
index ea31419..427d920 100644
--- a/WebKit/Plugins.subproj/WebPluginDatabase.h
+++ b/WebKit/Plugins.subproj/WebPluginDatabase.h
@@ -5,7 +5,7 @@
 
 #import <Foundation/Foundation.h>
 
- at class WebNetscapePluginPackage;
+ at class WebBasePluginPackage;
 
 @interface WebPluginDatabase : NSObject
 {
@@ -13,9 +13,9 @@
 }
 
 + (WebPluginDatabase *)installedPlugins;
-- (WebNetscapePluginPackage *)pluginForMIMEType:(NSString *)mimeType;
-- (WebNetscapePluginPackage *)pluginForExtension:(NSString *)extension;
-- (WebNetscapePluginPackage *)pluginForFilename:(NSString *)filename;
+- (WebBasePluginPackage *)pluginForMIMEType:(NSString *)mimeType;
+- (WebBasePluginPackage *)pluginForExtension:(NSString *)extension;
+- (WebBasePluginPackage *)pluginForFilename:(NSString *)filename;
 - (NSArray *)plugins;
 
 @end
diff --git a/WebKit/Plugins.subproj/WebPluginDatabase.m b/WebKit/Plugins.subproj/WebPluginDatabase.m
index d2143a1..8514941 100644
--- a/WebKit/Plugins.subproj/WebPluginDatabase.m
+++ b/WebKit/Plugins.subproj/WebPluginDatabase.m
@@ -3,10 +3,10 @@
 	Copyright (c) 2002, Apple, Inc. All rights reserved.
 */
 
+#import <WebKit/WebBasePluginPackage.h>
 #import <WebKit/WebDataSource.h>
 #import <WebKit/WebKitLogging.h>
 #import <WebKit/WebNetscapePluginDocumentView.h>
-#import <WebKit/WebNetscapePluginPackage.h>
 #import <WebKit/WebPluginDatabase.h>
 #import <WebKit/WebNetscapePluginRepresentation.h>
 #import <WebKit/WebView.h>
@@ -26,9 +26,9 @@ static WebPluginDatabase *database = nil;
 }
 
 // The first plugin with the specified mime type is returned.
-- (WebNetscapePluginPackage *)pluginForMIMEType:(NSString *)MIME
+- (WebBasePluginPackage *)pluginForMIMEType:(NSString *)MIME
 {
-    WebNetscapePluginPackage *plugin;
+    WebBasePluginPackage *plugin;
     uint i;
     
     for(i=0; i<[plugins count]; i++){      
@@ -40,9 +40,9 @@ static WebPluginDatabase *database = nil;
     return nil;
 }
 
-- (WebNetscapePluginPackage *)pluginForExtension:(NSString *)extension
+- (WebBasePluginPackage *)pluginForExtension:(NSString *)extension
 {
-    WebNetscapePluginPackage *plugin;
+    WebBasePluginPackage *plugin;
     uint i;
 
     for(i=0; i<[plugins count]; i++){
@@ -54,10 +54,10 @@ static WebPluginDatabase *database = nil;
     return nil;
 }
 
-- (WebNetscapePluginPackage *)pluginForFilename:(NSString *)filename
+- (WebBasePluginPackage *)pluginForFilename:(NSString *)filename
 {
     uint i;
-    WebNetscapePluginPackage *plugin;
+    WebBasePluginPackage *plugin;
     
     for(i=0; i<[plugins count]; i++){
         plugin = [plugins objectAtIndex:i];
@@ -76,7 +76,7 @@ static WebPluginDatabase *database = nil;
 - (NSArray *)MIMETypes
 {
     NSMutableSet *MIMETypes;
-    WebNetscapePluginPackage *plugin;
+    WebBasePluginPackage *plugin;
     uint i;
         
     MIMETypes = [NSMutableSet set];
@@ -133,15 +133,15 @@ static NSArray *pluginLocations(void)
     }
     
     NSMutableArray *pluginArray = [NSMutableArray arrayWithCapacity:[pluginPaths count]];
-    WebNetscapePluginPackage *plugin;
+    WebBasePluginPackage *pluginPackage;
     
     for (i = 0; i < [pluginPaths count]; i++) {
-        plugin = [[WebNetscapePluginPackage alloc] initWithPath:[pluginPaths objectAtIndex:i]];
-        if (plugin) {
-            [pluginArray addObject:plugin];
-            LOG(Plugins, "Found plugin: %s", [[plugin name] lossyCString]);
-            LOG(Plugins, "%s", [[plugin description] lossyCString]);
-            [plugin release];
+        pluginPackage = [WebBasePluginPackage pluginWithPath:[pluginPaths objectAtIndex:i]];
+        if (pluginPackage) {
+            [pluginArray addObject:pluginPackage];
+            LOG(Plugins, "Found plugin: %s", [[pluginPackage name] lossyCString]);
+            LOG(Plugins, "%s", [[pluginPackage description] lossyCString]);
+            [pluginPackage release];
         }
     }
 
diff --git a/WebKit/Plugins.subproj/WebPluginPackage.h b/WebKit/Plugins.subproj/WebPluginPackage.h
new file mode 100644
index 0000000..123c0ba
--- /dev/null
+++ b/WebKit/Plugins.subproj/WebPluginPackage.h
@@ -0,0 +1,18 @@
+//
+//  WebPluginPackage.h
+//  WebKit
+//
+//  Created by Chris Blumenberg on Tue Oct 22 2002.
+//  Copyright (c) 2002 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <WebKit/WebBasePluginPackage.h>
+
+ at interface WebPluginPackage : WebBasePluginPackage
+{
+    NSBundle *bundle;
+}
+
+ at end
diff --git a/WebKit/Plugins.subproj/WebPluginPackage.m b/WebKit/Plugins.subproj/WebPluginPackage.m
new file mode 100644
index 0000000..6e84aa4
--- /dev/null
+++ b/WebKit/Plugins.subproj/WebPluginPackage.m
@@ -0,0 +1,39 @@
+//
+//  WebPluginPackage.m
+//  WebKit
+//
+//  Created by Chris Blumenberg on Tue Oct 22 2002.
+//  Copyright (c) 2002 __MyCompanyName__. All rights reserved.
+//
+
+#import <WebKit/WebPluginPackage.h>
+
+
+ at implementation WebPluginPackage
+
+- initWithPath:(NSString *)pluginPath
+{
+    [super initWithPath:pluginPath];
+    
+    bundle = [[NSBundle alloc] initWithPath:pluginPath];
+
+    if(!bundle){
+        return nil;
+    }
+    
+    CFBundleRef theBundle = CFBundleCreate(NULL, (CFURLRef)[NSURL fileURLWithPath:pluginPath]);
+    UInt32 type;
+        
+    CFBundleGetPackageInfo(theBundle, &type, NULL);
+
+    CFRelease(theBundle);
+
+    if(type != FOUR_CHAR_CODE('WBPL')){
+        [bundle release];
+        return nil;
+    }
+
+    return self;
+}
+
+ at end
diff --git a/WebKit/WebCoreSupport.subproj/WebViewFactory.m b/WebKit/WebCoreSupport.subproj/WebViewFactory.m
index 2732a87..80e7930 100644
--- a/WebKit/WebCoreSupport.subproj/WebViewFactory.m
+++ b/WebKit/WebCoreSupport.subproj/WebViewFactory.m
@@ -7,12 +7,13 @@
 //
 
 #import <WebKit/WebBaseNetscapePluginView.h>
-
+#import <WebKit/WebBasePluginPackage.h>
 #import <WebKit/WebJavaScriptTextInputPanel.h>
 #import <WebKit/WebNetscapePluginEmbeddedView.h>
 #import <WebKit/WebNullPluginView.h>
 #import <WebKit/WebNetscapePluginPackage.h>
 #import <WebKit/WebPluginDatabase.h>
+#import <WebKit/WebPluginPackage.h>
 #import <WebKit/WebViewFactory.h>
 
 #import <WebFoundation/WebAssertions.h>
@@ -33,7 +34,7 @@
     NSMutableDictionary *arguments;
     NSString *mimeType, *extension;
     NSRange r1, r2, r3;
-    WebNetscapePluginPackage *plugin;
+    WebBasePluginPackage *pluginPackage;
     uint i;
         
     arguments = [NSMutableDictionary dictionary];
@@ -50,22 +51,33 @@
         
     if ([serviceType length]) {
         mimeType = serviceType;
-        plugin = [[WebPluginDatabase installedPlugins] pluginForMIMEType:mimeType];
+        pluginPackage = [[WebPluginDatabase installedPlugins] pluginForMIMEType:mimeType];
     } else {
         extension = [[pluginURL path] pathExtension];
-        plugin = [[WebPluginDatabase installedPlugins] pluginForExtension:extension];
-        mimeType = [[plugin extensionToMIMEDictionary] objectForKey:extension];
+        pluginPackage = [[WebPluginDatabase installedPlugins] pluginForExtension:extension];
+        mimeType = [[pluginPackage extensionToMIMEDictionary] objectForKey:extension];
     }
     
-    if (plugin == nil) {
-        return [[[WebNullPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) mimeType:mimeType arguments:arguments] autorelease];
+    if (pluginPackage) {
+        if([pluginPackage isKindOfClass:[WebPluginPackage class]]){
+            return nil;
+        }else if([pluginPackage isKindOfClass:[WebNetscapePluginPackage class]]){
+            return [[[WebNetscapePluginEmbeddedView alloc] initWithFrame:NSMakeRect(0,0,0,0)
+                                                                  plugin:(WebNetscapePluginPackage *)pluginPackage
+                                                                     URL:pluginURL
+                                                                 baseURL:baseURL
+                                                                    mime:mimeType
+                                                               arguments:arguments] autorelease];
+        }else{
+            [NSException raise:NSInternalInconsistencyException
+                        format:@"Plugin package class not recognized"];
+            return nil;
+        }
+    }else{
+        return [[[WebNullPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0)
+                                                mimeType:mimeType
+                                               arguments:arguments] autorelease];
     }
-    return [[[WebNetscapePluginEmbeddedView alloc] initWithFrame:NSMakeRect(0,0,0,0)
-                                                          plugin:plugin
-                                                             URL:pluginURL
-                                                         baseURL:baseURL
-                                                            mime:mimeType
-                                                       arguments:arguments] autorelease];
 }
 
 - (NSArray *)pluginsInfo
@@ -75,19 +87,28 @@
 
 - (NSView *)viewForJavaAppletWithFrame:(NSRect)frame baseURL:(NSURL *)baseURL parameters:(NSDictionary *)parameters
 {
-    WebNetscapePluginPackage *plugin;
+    WebBasePluginPackage *pluginPackage;
     
-    plugin = [[WebPluginDatabase installedPlugins] pluginForMIMEType:@"application/x-java-applet"];
-    if (plugin == nil) {
+    pluginPackage = [[WebPluginDatabase installedPlugins] pluginForMIMEType:@"application/x-java-applet"];
+
+    if (!pluginPackage) {
+        return nil;
+    }
+
+    if([pluginPackage isKindOfClass:[WebPluginPackage class]]){
+        return nil;
+    }else if([pluginPackage isKindOfClass:[WebNetscapePluginPackage class]]){
+        return [[[WebNetscapePluginEmbeddedView alloc] initWithFrame:frame
+                                                              plugin:(WebNetscapePluginPackage *)pluginPackage
+                                                                 URL:nil
+                                                             baseURL:baseURL
+                                                                mime:@"application/x-java-applet"
+                                                           arguments:parameters] autorelease];
+    }else{
+        [NSException raise:NSInternalInconsistencyException
+                    format:@"Plugin package class not recognized"];
         return nil;
     }
-    
-    return [[[WebNetscapePluginEmbeddedView alloc] initWithFrame:frame
-                                                          plugin:plugin
-                                                             URL:nil
-                                                         baseURL:baseURL
-                                                            mime:@"application/x-java-applet"
-                                                       arguments:parameters] autorelease];
 }
 
 - (BOOL)runJavaScriptTextInputPanelWithPrompt:(NSString *)prompt defaultText:(NSString *)defaultText returningText:(NSString **)result
diff --git a/WebKit/WebKit.pbproj/project.pbxproj b/WebKit/WebKit.pbproj/project.pbxproj
index 8ed4874..d6df905 100644
--- a/WebKit/WebKit.pbproj/project.pbxproj
+++ b/WebKit/WebKit.pbproj/project.pbxproj
@@ -291,6 +291,8 @@
 				848DFF880365FE6A00CA2ACA,
 				848DFF890365FE6A00CA2ACA,
 				51F6866E0366057300CA2D3A,
+				83E4AF48036652150000E506,
+				83E4AF4D036659440000E506,
 			);
 			isa = PBXHeadersBuildPhase;
 			runOnlyForDeploymentPostprocessing = 0;
@@ -393,6 +395,8 @@
 				9345DDB10365FB27008635CE,
 				9345DDB50365FFD0008635CE,
 				51F6866F0366057300CA2D3A,
+				83E4AF49036652150000E506,
+				83E4AF4E036659440000E506,
 			);
 			isa = PBXSourcesBuildPhase;
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1422,6 +1426,54 @@
 			settings = {
 			};
 		};
+		83E4AF46036652150000E506 = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			path = WebBasePluginPackage.h;
+			refType = 4;
+		};
+		83E4AF47036652150000E506 = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			path = WebBasePluginPackage.m;
+			refType = 4;
+		};
+		83E4AF48036652150000E506 = {
+			fileRef = 83E4AF46036652150000E506;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		83E4AF49036652150000E506 = {
+			fileRef = 83E4AF47036652150000E506;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		83E4AF4B036659440000E506 = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			path = WebPluginPackage.h;
+			refType = 4;
+		};
+		83E4AF4C036659440000E506 = {
+			fileEncoding = 4;
+			isa = PBXFileReference;
+			path = WebPluginPackage.m;
+			refType = 4;
+		};
+		83E4AF4D036659440000E506 = {
+			fileRef = 83E4AF4B036659440000E506;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
+		83E4AF4E036659440000E506 = {
+			fileRef = 83E4AF4C036659440000E506;
+			isa = PBXBuildFile;
+			settings = {
+			};
+		};
 //830
 //831
 //832
@@ -1462,6 +1514,8 @@
 			children = (
 				848DFF840365FE6A00CA2ACA,
 				848DFF850365FE6A00CA2ACA,
+				83E4AF4B036659440000E506,
+				83E4AF4C036659440000E506,
 				848DFF860365FE6A00CA2ACA,
 			);
 			isa = PBXGroup;
@@ -3078,6 +3132,8 @@
 			children = (
 				848DFF410365F6FB00CA2ACA,
 				848DFF430365F71500CA2ACA,
+				83E4AF46036652150000E506,
+				83E4AF47036652150000E506,
 				F5883BE0025E5E9D01000102,
 				F5883BE1025E5E9D01000102,
 				F5F717200288493C018635CA,

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list