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


The following commit has been merged in the debian/unstable branch:
commit 0a2d9abd663ce7cb797137f6767eb28ef43ed07c
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Oct 23 20:49:30 2002 +0000

    WebCore:
    
    	Call the arguments for plug-ins "attributes" everywhere.
    
            * kwq/KWQKHTMLPartImpl.mm:
            (KWQKHTMLPartImpl::createPart):
            * kwq/KWQKJavaAppletWidget.mm:
            (KJavaAppletWidget::showApplet):
            * kwq/WebCoreBridge.h:
    
    WebKit:
    
    	Call the arguments for plug-ins "attributes" everywhere.
    
            * Plugins.subproj/WebBaseNetscapePluginView.h:
            * Plugins.subproj/WebBaseNetscapePluginView.m:
            (-[WebBaseNetscapePluginView setAttributes:]):
            * Plugins.subproj/WebNetscapePluginEmbeddedView.h:
            * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
            (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:mime:attributes:]):
            * Plugins.subproj/WebNullPluginView.h:
            * Plugins.subproj/WebNullPluginView.m:
            (-[WebNullPluginView initWithFrame:mimeType:attributes:]):
            (-[WebNullPluginView drawRect:]):
            * Plugins.subproj/WebPluginController.h:
            * Plugins.subproj/WebPluginController.m:
            (-[WebPluginController initWithWebFrame:]):
            (-[WebPluginController dealloc]):
            (-[WebPluginController addPluginView:]):
            * Plugins.subproj/WebPluginPackage.h:
            * Plugins.subproj/WebPluginPackage.m:
            (-[WebPluginPackage viewFactory]):
            * WebCoreSupport.subproj/WebBridge.m:
            (-[WebBridge pluginViewWithPackage:attributes:baseURL:]):
            (-[WebBridge viewForPluginWithURL:attributes:baseURL:serviceType:]):
            (-[WebBridge viewForJavaAppletWithFrame:attributes:baseURL:]):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@2439 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index eadccb9..731e15e 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,5 +1,15 @@
 2002-10-23  Chris Blumenberg  <cblu at apple.com>
 
+	Call the arguments for plug-ins "attributes" everywhere.
+
+        * kwq/KWQKHTMLPartImpl.mm:
+        (KWQKHTMLPartImpl::createPart):
+        * kwq/KWQKJavaAppletWidget.mm:
+        (KJavaAppletWidget::showApplet):
+        * kwq/WebCoreBridge.h:
+
+2002-10-23  Chris Blumenberg  <cblu at apple.com>
+
 	For the new plug-in API, we need to pass a WebPluginContainer to the plug-in view upon creation. The is owned by the WebFrame. To make this all work, I had to move the WebCore plug-in and java view constructors to WebBridge from WebViewFactory since WebBridge has the frame. 
 
         * khtml/khtml_part.cpp:
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index eadccb9..731e15e 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,5 +1,15 @@
 2002-10-23  Chris Blumenberg  <cblu at apple.com>
 
+	Call the arguments for plug-ins "attributes" everywhere.
+
+        * kwq/KWQKHTMLPartImpl.mm:
+        (KWQKHTMLPartImpl::createPart):
+        * kwq/KWQKJavaAppletWidget.mm:
+        (KJavaAppletWidget::showApplet):
+        * kwq/WebCoreBridge.h:
+
+2002-10-23  Chris Blumenberg  <cblu at apple.com>
+
 	For the new plug-in API, we need to pass a WebPluginContainer to the plug-in view upon creation. The is owned by the WebFrame. To make this all work, I had to move the WebCore plug-in and java view constructors to WebBridge from WebViewFactory since WebBridge has the frame. 
 
         * khtml/khtml_part.cpp:
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index eadccb9..731e15e 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,5 +1,15 @@
 2002-10-23  Chris Blumenberg  <cblu at apple.com>
 
+	Call the arguments for plug-ins "attributes" everywhere.
+
+        * kwq/KWQKHTMLPartImpl.mm:
+        (KWQKHTMLPartImpl::createPart):
+        * kwq/KWQKJavaAppletWidget.mm:
+        (KJavaAppletWidget::showApplet):
+        * kwq/WebCoreBridge.h:
+
+2002-10-23  Chris Blumenberg  <cblu at apple.com>
+
 	For the new plug-in API, we need to pass a WebPluginContainer to the plug-in view upon creation. The is owned by the WebFrame. To make this all work, I had to move the WebCore plug-in and java view constructors to WebBridge from WebViewFactory since WebBridge has the frame. 
 
         * khtml/khtml_part.cpp:
diff --git a/WebCore/kwq/KWQKHTMLPart.mm b/WebCore/kwq/KWQKHTMLPart.mm
index a198ca9..2f0fd90 100644
--- a/WebCore/kwq/KWQKHTMLPart.mm
+++ b/WebCore/kwq/KWQKHTMLPart.mm
@@ -190,16 +190,16 @@ ReadOnlyPart *KWQKHTMLPartImpl::createPart(const ChildFrame &child, const KURL &
     }
     
     if (child.m_type == ChildFrame::Object) {
-        NSMutableArray *paramsArray = [NSMutableArray arrayWithCapacity:child.m_params.count()];
+        NSMutableArray *attributesArray = [NSMutableArray arrayWithCapacity:child.m_params.count()];
         for (uint i = 0; i < child.m_params.count(); i++) {
-            [paramsArray addObject:child.m_params[i].getNSString()];
+            [attributesArray addObject:child.m_params[i].getNSString()];
         }
         
         KWQPluginPart *newPart = new KWQPluginPart;
         newPart->setWidget(new QWidget([_bridge viewForPluginWithURL:childURL
-                                                         serviceType:child.m_args.serviceType.getNSString()
-                                                           arguments:paramsArray
-                                                             baseURL:KURL(d->m_doc->baseURL()).getNSURL()]));
+                                                          attributes:attributesArray
+                                                             baseURL:KURL(d->m_doc->baseURL()).getNSURL()
+                                                         serviceType:child.m_args.serviceType.getNSString()]));
         return newPart;
     } else {
         LOG(Frames, "name %s", child.m_name.ascii());
diff --git a/WebCore/kwq/KWQKHTMLPartImpl.mm b/WebCore/kwq/KWQKHTMLPartImpl.mm
index a198ca9..2f0fd90 100644
--- a/WebCore/kwq/KWQKHTMLPartImpl.mm
+++ b/WebCore/kwq/KWQKHTMLPartImpl.mm
@@ -190,16 +190,16 @@ ReadOnlyPart *KWQKHTMLPartImpl::createPart(const ChildFrame &child, const KURL &
     }
     
     if (child.m_type == ChildFrame::Object) {
-        NSMutableArray *paramsArray = [NSMutableArray arrayWithCapacity:child.m_params.count()];
+        NSMutableArray *attributesArray = [NSMutableArray arrayWithCapacity:child.m_params.count()];
         for (uint i = 0; i < child.m_params.count(); i++) {
-            [paramsArray addObject:child.m_params[i].getNSString()];
+            [attributesArray addObject:child.m_params[i].getNSString()];
         }
         
         KWQPluginPart *newPart = new KWQPluginPart;
         newPart->setWidget(new QWidget([_bridge viewForPluginWithURL:childURL
-                                                         serviceType:child.m_args.serviceType.getNSString()
-                                                           arguments:paramsArray
-                                                             baseURL:KURL(d->m_doc->baseURL()).getNSURL()]));
+                                                          attributes:attributesArray
+                                                             baseURL:KURL(d->m_doc->baseURL()).getNSURL()
+                                                         serviceType:child.m_args.serviceType.getNSString()]));
         return newPart;
     } else {
         LOG(Frames, "name %s", child.m_name.ascii());
diff --git a/WebCore/kwq/KWQKJavaAppletWidget.mm b/WebCore/kwq/KWQKJavaAppletWidget.mm
index 359b764..74e85ee 100644
--- a/WebCore/kwq/KWQKJavaAppletWidget.mm
+++ b/WebCore/kwq/KWQKJavaAppletWidget.mm
@@ -70,6 +70,7 @@ void KJavaAppletWidget::showApplet()
 {
     setView([m_context->part()->impl->bridge()
 viewForJavaAppletWithFrame:NSMakeRect(pos().x(), pos().y(), size().width(), size().height())
-                   baseURL:m_baseURL
-                parameters:m_parameters]);
+                attributes:m_parameters
+                   baseURL:m_baseURL]);
+                
 }
diff --git a/WebCore/kwq/WebCoreBridge.h b/WebCore/kwq/WebCoreBridge.h
index 53fb597..56fe5c1 100644
--- a/WebCore/kwq/WebCoreBridge.h
+++ b/WebCore/kwq/WebCoreBridge.h
@@ -227,8 +227,8 @@ enum FrameBorderStyle {
 
 - (NSURL *)requestedURL;
 
-- (NSView *)viewForPluginWithURL:(NSURL *)url serviceType:(NSString *)serviceType arguments:(NSArray *)arguments baseURL:(NSURL *)baseURL;
-- (NSView *)viewForJavaAppletWithFrame:(NSRect)frame baseURL:(NSURL *)URL parameters:(NSDictionary *)parameters;
+- (NSView *)viewForPluginWithURL:(NSURL *)URL attributes:(NSArray *)attributesArray baseURL:(NSURL *)baseURL serviceType:(NSString *)serviceType;
+- (NSView *)viewForJavaAppletWithFrame:(NSRect)frame attributes:(NSDictionary *)attributes baseURL:(NSURL *)baseURL;
 
 @end
 
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index 0b88d87..1475da9 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,5 +1,32 @@
 2002-10-23  Chris Blumenberg  <cblu at apple.com>
 
+	Call the arguments for plug-ins "attributes" everywhere.
+
+        * Plugins.subproj/WebBaseNetscapePluginView.h:
+        * Plugins.subproj/WebBaseNetscapePluginView.m:
+        (-[WebBaseNetscapePluginView setAttributes:]):
+        * Plugins.subproj/WebNetscapePluginEmbeddedView.h:
+        * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
+        (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:mime:attributes:]):
+        * Plugins.subproj/WebNullPluginView.h:
+        * Plugins.subproj/WebNullPluginView.m:
+        (-[WebNullPluginView initWithFrame:mimeType:attributes:]):
+        (-[WebNullPluginView drawRect:]):
+        * Plugins.subproj/WebPluginController.h:
+        * Plugins.subproj/WebPluginController.m:
+        (-[WebPluginController initWithWebFrame:]):
+        (-[WebPluginController dealloc]):
+        (-[WebPluginController addPluginView:]):
+        * Plugins.subproj/WebPluginPackage.h:
+        * Plugins.subproj/WebPluginPackage.m:
+        (-[WebPluginPackage viewFactory]):
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge pluginViewWithPackage:attributes:baseURL:]):
+        (-[WebBridge viewForPluginWithURL:attributes:baseURL:serviceType:]):
+        (-[WebBridge viewForJavaAppletWithFrame:attributes:baseURL:]):
+
+2002-10-23  Chris Blumenberg  <cblu at apple.com>
+
         * WebCoreSupport.subproj/WebBridge.m:
         (-[WebBridge requestedURL]):
         (-[WebBridge viewForPluginWithURL:serviceType:arguments:baseURL:]):
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index 0b88d87..1475da9 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,5 +1,32 @@
 2002-10-23  Chris Blumenberg  <cblu at apple.com>
 
+	Call the arguments for plug-ins "attributes" everywhere.
+
+        * Plugins.subproj/WebBaseNetscapePluginView.h:
+        * Plugins.subproj/WebBaseNetscapePluginView.m:
+        (-[WebBaseNetscapePluginView setAttributes:]):
+        * Plugins.subproj/WebNetscapePluginEmbeddedView.h:
+        * Plugins.subproj/WebNetscapePluginEmbeddedView.m:
+        (-[WebNetscapePluginEmbeddedView initWithFrame:plugin:URL:baseURL:mime:attributes:]):
+        * Plugins.subproj/WebNullPluginView.h:
+        * Plugins.subproj/WebNullPluginView.m:
+        (-[WebNullPluginView initWithFrame:mimeType:attributes:]):
+        (-[WebNullPluginView drawRect:]):
+        * Plugins.subproj/WebPluginController.h:
+        * Plugins.subproj/WebPluginController.m:
+        (-[WebPluginController initWithWebFrame:]):
+        (-[WebPluginController dealloc]):
+        (-[WebPluginController addPluginView:]):
+        * Plugins.subproj/WebPluginPackage.h:
+        * Plugins.subproj/WebPluginPackage.m:
+        (-[WebPluginPackage viewFactory]):
+        * WebCoreSupport.subproj/WebBridge.m:
+        (-[WebBridge pluginViewWithPackage:attributes:baseURL:]):
+        (-[WebBridge viewForPluginWithURL:attributes:baseURL:serviceType:]):
+        (-[WebBridge viewForJavaAppletWithFrame:attributes:baseURL:]):
+
+2002-10-23  Chris Blumenberg  <cblu at apple.com>
+
         * WebCoreSupport.subproj/WebBridge.m:
         (-[WebBridge requestedURL]):
         (-[WebBridge viewForPluginWithURL:serviceType:arguments:baseURL:]):
diff --git a/WebKit/Plugins.subproj/WebBaseNetscapePluginView.h b/WebKit/Plugins.subproj/WebBaseNetscapePluginView.h
index 084ffa7..4ffbee8 100644
--- a/WebKit/Plugins.subproj/WebBaseNetscapePluginView.h
+++ b/WebKit/Plugins.subproj/WebBaseNetscapePluginView.h
@@ -75,7 +75,7 @@
 - (void)setPlugin:(WebNetscapePluginPackage *)thePlugin;
 - (void)setMIMEType:(NSString *)theMIMEType;
 - (void)setBaseURL:(NSURL *)theBaseURL;
-- (void)setArguments:(NSDictionary *)theArguments;
+- (void)setAttributes:(NSDictionary *)attributes;
 - (void)setMode:(int)theMode;
 
 @end
diff --git a/WebKit/Plugins.subproj/WebBaseNetscapePluginView.m b/WebKit/Plugins.subproj/WebBaseNetscapePluginView.m
index 20af36e..54b5f7b 100644
--- a/WebKit/Plugins.subproj/WebBaseNetscapePluginView.m
+++ b/WebKit/Plugins.subproj/WebBaseNetscapePluginView.m
@@ -549,9 +549,9 @@
     baseURL = [theBaseURL retain];
 }
 
-- (void)setArguments:(NSDictionary *)arguments
+- (void)setAttributes:(NSDictionary *)attributes
 {
-    LOG(Plugins, "%@", arguments);
+    LOG(Plugins, "%@", attributes);
 
     // Convert arguments dictionary to 2 string arrays.
     // These arrays are passed to NPP_New, but the strings need to be
@@ -559,21 +559,21 @@
 
     // The Java plug-in requires the first argument to be the base URL
     if ([MIMEType isEqualToString:@"application/x-java-applet"]) {
-        cAttributes = (char **)malloc(([arguments count] + 1) * sizeof(char *));
-        cValues = (char **)malloc(([arguments count] + 1) * sizeof(char *));
+        cAttributes = (char **)malloc(([attributes count] + 1) * sizeof(char *));
+        cValues = (char **)malloc(([attributes count] + 1) * sizeof(char *));
         cAttributes[0] = strdup("DOCBASE");
         cValues[0] = strdup([[baseURL absoluteString] UTF8String]);
         argsCount++;
     } else {
-        cAttributes = (char **)malloc([arguments count] * sizeof(char *));
-        cValues = (char **)malloc([arguments count] * sizeof(char *));
+        cAttributes = (char **)malloc([attributes count] * sizeof(char *));
+        cValues = (char **)malloc([attributes count] * sizeof(char *));
     }
 
-    NSEnumerator *e = [arguments keyEnumerator];
+    NSEnumerator *e = [attributes keyEnumerator];
     NSString *key;
     while ((key = [e nextObject])) {
         cAttributes[argsCount] = strdup([key UTF8String]);
-        cValues[argsCount] = strdup([[arguments objectForKey:key] UTF8String]);
+        cValues[argsCount] = strdup([[attributes objectForKey:key] UTF8String]);
         argsCount++;
     }
 }
diff --git a/WebKit/Plugins.subproj/WebNetscapePluginEmbeddedView.h b/WebKit/Plugins.subproj/WebNetscapePluginEmbeddedView.h
index ca86869..71effe0 100644
--- a/WebKit/Plugins.subproj/WebNetscapePluginEmbeddedView.h
+++ b/WebKit/Plugins.subproj/WebNetscapePluginEmbeddedView.h
@@ -17,6 +17,6 @@
                 URL:(NSURL *)URL
             baseURL:(NSURL *)baseURL
                mime:(NSString *)mimeType
-          arguments:(NSDictionary *)arguments;
+         attributes:(NSDictionary *)attributes;
 
 @end
diff --git a/WebKit/Plugins.subproj/WebNetscapePluginEmbeddedView.m b/WebKit/Plugins.subproj/WebNetscapePluginEmbeddedView.m
index 2554849..d52612b 100644
--- a/WebKit/Plugins.subproj/WebNetscapePluginEmbeddedView.m
+++ b/WebKit/Plugins.subproj/WebNetscapePluginEmbeddedView.m
@@ -21,7 +21,7 @@
                 URL:(NSURL *)theURL
             baseURL:(NSURL *)theBaseURL
                mime:(NSString *)mimeType
-          arguments:(NSDictionary *)arguments
+          attributes:(NSDictionary *)attributes
 {
     [super initWithFrame:frame];
 
@@ -29,7 +29,7 @@
     
     [self setMIMEType:mimeType];
     [self setBaseURL:theBaseURL];
-    [self setArguments:arguments];
+    [self setAttributes:attributes];
     [self setMode:NP_EMBED];
     
     // load the plug-in if it is not already loaded
diff --git a/WebKit/Plugins.subproj/WebNullPluginView.h b/WebKit/Plugins.subproj/WebNullPluginView.h
index 04b2335..707526f 100644
--- a/WebKit/Plugins.subproj/WebNullPluginView.h
+++ b/WebKit/Plugins.subproj/WebNullPluginView.h
@@ -8,11 +8,11 @@
 
 @interface WebNullPluginView : NSImageView {
 
-    BOOL errorSent;
+    BOOL didSendError;
     NSString *mimeType;
     NSURL *pluginPage;
 }
 
-- initWithFrame:(NSRect)frame mimeType:(NSString *)mime arguments:(NSDictionary *)arguments;
+- initWithFrame:(NSRect)frame mimeType:(NSString *)mime attributes:(NSDictionary *)attributes;
 
 @end
diff --git a/WebKit/Plugins.subproj/WebNullPluginView.m b/WebKit/Plugins.subproj/WebNullPluginView.m
index f8a142b..69db395 100644
--- a/WebKit/Plugins.subproj/WebNullPluginView.m
+++ b/WebKit/Plugins.subproj/WebNullPluginView.m
@@ -16,7 +16,7 @@ static NSImage *image = nil;
 
 @implementation WebNullPluginView
 
-- initWithFrame:(NSRect)frame mimeType:(NSString *)mime arguments:(NSDictionary *)arguments
+- initWithFrame:(NSRect)frame mimeType:(NSString *)mime attributes:(NSDictionary *)attributes
 {
     NSBundle *bundle;
     NSString *imagePath, *pluginPageString;
@@ -32,11 +32,11 @@ static NSImage *image = nil;
         [self setImage:image];
         
         mimeType = [mime retain];
-        pluginPageString = [arguments objectForKey:@"pluginspage"];
-        if(pluginPageString)
-            pluginPage = [[NSURL _web_URLWithString:pluginPageString] retain];
         
-        errorSent = NO;
+        pluginPageString = [attributes objectForKey:@"pluginspage"];
+        if(pluginPageString){
+            pluginPage = [[NSURL _web_URLWithString:pluginPageString] retain];
+        }
     }
     return self;
 }
@@ -53,8 +53,8 @@ static NSImage *image = nil;
     WebController *webController;
 
     [super drawRect:rect];
-    if(!errorSent){
-        errorSent = YES;
+    if(!didSendError){
+        didSendError = YES;
         webView = (WebView *)[self _web_superviewOfClass:[WebView class]];
         webController = [webView controller];
         [[webController policyDelegate] pluginNotFoundForMIMEType:mimeType pluginPageURL:pluginPage];
diff --git a/WebKit/Plugins.subproj/WebPluginController.h b/WebKit/Plugins.subproj/WebPluginController.h
index 07c715d..1f6aabd 100644
--- a/WebKit/Plugins.subproj/WebPluginController.h
+++ b/WebKit/Plugins.subproj/WebPluginController.h
@@ -12,11 +12,17 @@
 
 @class WebFrame;
 
+ at protocol WebPlugin;
+
 @interface WebPluginController : NSObject <WebPluginContainer>
 {
     WebFrame *frame;
+
+    NSMutableArray *views;
 }
 
 - initWithWebFrame:(WebFrame *)theFrame;
 
+- (void)addPluginView:(NSView <WebPlugin> *)view;
+
 @end
diff --git a/WebKit/Plugins.subproj/WebPluginController.m b/WebKit/Plugins.subproj/WebPluginController.m
index f13663e..e49ade5 100644
--- a/WebKit/Plugins.subproj/WebPluginController.m
+++ b/WebKit/Plugins.subproj/WebPluginController.m
@@ -9,6 +9,7 @@
 #import <WebKit/WebController.h>
 #import <WebKit/WebDataSource.h>
 #import <WebKit/WebFrame.h>
+#import <WebKit/WebPlugin.h>
 #import <WebKit/WebPluginController.h>
 #import <WebKit/WebWindowOperationsDelegate.h>
 
@@ -18,12 +19,29 @@
 
 - initWithWebFrame:(WebFrame *)theFrame
 {
+    [super init];
+    
     // Not retained because the frame retains this plug-in controller.
     frame = theFrame;
-
+    
+    views = [[NSMutableArray array] retain];
+    
     return self;
 }
 
+- (void)dealloc
+{
+    [views removeAllObjects];
+    [views release];
+    [super dealloc];
+}
+
+- (void)addPluginView:(NSView <WebPlugin> *)view
+{
+    [views addObject:view];
+    [view pluginInitialize];
+}
+
 - (void)showURL:(NSURL *)URL inFrame:(NSString *)target
 {
     if(!URL || !target){
diff --git a/WebKit/Plugins.subproj/WebPluginPackage.h b/WebKit/Plugins.subproj/WebPluginPackage.h
index 123c0ba..76084d4 100644
--- a/WebKit/Plugins.subproj/WebPluginPackage.h
+++ b/WebKit/Plugins.subproj/WebPluginPackage.h
@@ -10,9 +10,13 @@
 
 #import <WebKit/WebBasePluginPackage.h>
 
+ at protocol WebPluginViewFactory;
+
 @interface WebPluginPackage : WebBasePluginPackage
 {
     NSBundle *bundle;
 }
 
+- (Class)viewFactory;
+
 @end
diff --git a/WebKit/Plugins.subproj/WebPluginPackage.m b/WebKit/Plugins.subproj/WebPluginPackage.m
index 6e84aa4..99f9fb0 100644
--- a/WebKit/Plugins.subproj/WebPluginPackage.m
+++ b/WebKit/Plugins.subproj/WebPluginPackage.m
@@ -36,4 +36,9 @@
     return self;
 }
 
+- (Class)viewFactory
+{
+    return [bundle principalClass];
+}
+
 @end
diff --git a/WebKit/WebCoreSupport.subproj/WebBridge.m b/WebKit/WebCoreSupport.subproj/WebBridge.m
index c2e5c0c..6cebc28 100644
--- a/WebKit/WebCoreSupport.subproj/WebBridge.m
+++ b/WebKit/WebCoreSupport.subproj/WebBridge.m
@@ -19,8 +19,11 @@
 #import <WebKit/WebNetscapePluginEmbeddedView.h>
 #import <WebKit/WebNetscapePluginPackage.h>
 #import <WebKit/WebNullPluginView.h>
+#import <WebKit/WebPlugin.h>
+#import <WebKit/WebPluginController.h>
 #import <WebKit/WebPluginDatabase.h>
 #import <WebKit/WebPluginPackage.h>
+#import <WebKit/WebPluginViewFactory.h>
 #import <WebKit/WebPreferences.h>
 #import <WebKit/WebResourceLoadDelegate.h>
 #import <WebKit/WebSubresourceClient.h>
@@ -421,23 +424,42 @@
     return [[[self dataSource] request] URL];
 }
 
-- (NSView *)viewForPluginWithURL:(NSURL *)pluginURL serviceType:(NSString *)serviceType arguments:(NSArray *)args baseURL:(NSURL *)baseURL
+- (NSView <WebPlugin> *)pluginViewWithPackage:(WebPluginPackage *)pluginPackage
+                                   attributes:(NSDictionary *)attributes
+                                      baseURL:(NSURL *)baseURL
+{
+    WebPluginController *pluginController = [frame pluginController];
+
+    NSDictionary *arguments = [NSDictionary dictionaryWithObjectsAndKeys:
+        baseURL, WebPluginBaseURLKey,
+        attributes, WebPluginAttributesKey,
+        pluginController, WebPluginContainerKey, nil];
+
+    NSView<WebPlugin> *view = [[pluginPackage viewFactory] pluginViewWithArguments:arguments];
+    [pluginController addPluginView:view];
+
+    return view;
+}
+
+- (NSView *)viewForPluginWithURL:(NSURL *)URL
+                      attributes:(NSArray *)attributesArray
+                         baseURL:(NSURL *)baseURL
+                     serviceType:(NSString *)serviceType
 {
-    NSMutableDictionary *arguments;
     NSString *mimeType, *extension;
     NSRange r1, r2, r3;
     WebBasePluginPackage *pluginPackage;
     uint i;
 
-    arguments = [NSMutableDictionary dictionary];
-    for (i = 0; i < [args count]; i++){
-        NSString *arg = [args objectAtIndex:i];
-        if ([arg rangeOfString:@"__KHTML__"].length == 0) {
-            r1 = [arg rangeOfString:@"="]; // parse out attributes and values
-            r2 = [arg rangeOfString:@"\""];
+    NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
+    for (i = 0; i < [attributesArray count]; i++){
+        NSString *attribute = [attributesArray objectAtIndex:i];
+        if ([attribute rangeOfString:@"__KHTML__"].length == 0) {
+            r1 = [attribute rangeOfString:@"="]; // parse out attributes and values
+            r2 = [attribute rangeOfString:@"\""];
             r3.location = r2.location + 1;
-            r3.length = [arg length] - r2.location - 2; // don't include quotes
-            [arguments setObject:[arg substringWithRange:r3] forKey:[arg substringToIndex:r1.location]];
+            r3.length = [attribute length] - r2.location - 2; // don't include quotes
+            [attributes setObject:[attribute substringWithRange:r3] forKey:[attribute substringToIndex:r1.location]];
         }
     }
 
@@ -445,21 +467,24 @@
         mimeType = serviceType;
         pluginPackage = [[WebPluginDatabase installedPlugins] pluginForMIMEType:mimeType];
     } else {
-        extension = [[pluginURL path] pathExtension];
+        extension = [[URL path] pathExtension];
         pluginPackage = [[WebPluginDatabase installedPlugins] pluginForExtension:extension];
         mimeType = [[pluginPackage extensionToMIMEDictionary] objectForKey:extension];
     }
 
     if (pluginPackage) {
         if([pluginPackage isKindOfClass:[WebPluginPackage class]]){
-            return nil;
-        }else if([pluginPackage isKindOfClass:[WebNetscapePluginPackage class]]){
+            return [self pluginViewWithPackage:(WebPluginPackage *)pluginPackage
+                                    attributes:attributes
+                                       baseURL:baseURL];
+        }
+        else if([pluginPackage isKindOfClass:[WebNetscapePluginPackage class]]){
             return [[[WebNetscapePluginEmbeddedView alloc] initWithFrame:NSMakeRect(0,0,0,0)
                                                                   plugin:(WebNetscapePluginPackage *)pluginPackage
-                                                                     URL:pluginURL
+                                                                     URL:URL
                                                                  baseURL:baseURL
                                                                     mime:mimeType
-                                                               arguments:arguments] autorelease];
+                                                               attributes:attributes] autorelease];
         }else{
             [NSException raise:NSInternalInconsistencyException
                         format:@"Plugin package class not recognized"];
@@ -468,11 +493,11 @@
     }else{
         return [[[WebNullPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0)
                                                 mimeType:mimeType
-                                               arguments:arguments] autorelease];
+                                              attributes:attributes] autorelease];
     }
 }
 
-- (NSView *)viewForJavaAppletWithFrame:(NSRect)theFrame baseURL:(NSURL *)baseURL parameters:(NSDictionary *)parameters
+- (NSView *)viewForJavaAppletWithFrame:(NSRect)theFrame attributes:(NSDictionary *)attributes baseURL:(NSURL *)baseURL
 {
     WebBasePluginPackage *pluginPackage;
 
@@ -483,14 +508,17 @@
     }
 
     if([pluginPackage isKindOfClass:[WebPluginPackage class]]){
-        return nil;
-    }else if([pluginPackage isKindOfClass:[WebNetscapePluginPackage class]]){
+        return [self pluginViewWithPackage:(WebPluginPackage *)pluginPackage
+                                attributes:attributes
+                                   baseURL:baseURL];
+    }
+    else if([pluginPackage isKindOfClass:[WebNetscapePluginPackage class]]){
         return [[[WebNetscapePluginEmbeddedView alloc] initWithFrame:theFrame
                                                               plugin:(WebNetscapePluginPackage *)pluginPackage
                                                                  URL:nil
                                                              baseURL:baseURL
                                                                 mime:@"application/x-java-applet"
-                                                           arguments:parameters] autorelease];
+                                                           attributes:attributes] autorelease];
     }else{
         [NSException raise:NSInternalInconsistencyException
                     format:@"Plugin package class not recognized"];

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list