[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