[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:21:00 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit 20e836309af330502384da8c079782b8be959b0d
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Jun 24 22:06:31 2002 +0000
WebKit:
* Plugins.subproj/IFPlugin.h:
* Plugins.subproj/IFPlugin.m:
(-[IFPlugin initWithPath:]): Close resource files when done.
(-[IFPlugin load]): Remove Java plug-in workaround, load as mach-o
* Plugins.subproj/IFPluginView.h:
* Plugins.subproj/IFPluginView.mm:
(-[IFPluginView initWithFrame:plugin:url:baseURL:mime:arguments:]): take NSURLs
(-[IFPluginView dealloc]): release baseURL
* WebCoreSupport.subproj/IFWebCoreViewFactory.m:
(-[IFWebCoreViewFactory viewForPluginWithURL:serviceType:arguments:baseURL:]): take NSURLs
(-[IFWebCoreViewFactory viewForJavaAppletWithArguments:]):
WebCore:
Changed the plug-in view constructor to take NSURL's rather
than URL strings.
* kwq/KWQKHTMLPart.mm:
(KWQKHTMLPartImpl::requestObject):
* kwq/WebCoreViewFactory.h:
* kwq/WebCoreViewFactory.m:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1421 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit/ChangeLog b/WebKit/ChangeLog
index a0dbda9..432b7bd 100644
--- a/WebKit/ChangeLog
+++ b/WebKit/ChangeLog
@@ -1,3 +1,17 @@
+2002-06-24 Chris Blumenberg <cblu at apple.com>
+
+ * Plugins.subproj/IFPlugin.h:
+ * Plugins.subproj/IFPlugin.m:
+ (-[IFPlugin initWithPath:]): Close resource files when done.
+ (-[IFPlugin load]): Remove Java plug-in workaround, load as mach-o
+ * Plugins.subproj/IFPluginView.h:
+ * Plugins.subproj/IFPluginView.mm:
+ (-[IFPluginView initWithFrame:plugin:url:baseURL:mime:arguments:]): take NSURLs
+ (-[IFPluginView dealloc]): release baseURL
+ * WebCoreSupport.subproj/IFWebCoreViewFactory.m:
+ (-[IFWebCoreViewFactory viewForPluginWithURL:serviceType:arguments:baseURL:]): take NSURLs
+ (-[IFWebCoreViewFactory viewForJavaAppletWithArguments:]):
+
2002-06-24 Darin Adler <darin at apple.com>
Remove some unused stuff. Other minor cleanup.
diff --git a/WebKit/ChangeLog-2002-12-03 b/WebKit/ChangeLog-2002-12-03
index a0dbda9..432b7bd 100644
--- a/WebKit/ChangeLog-2002-12-03
+++ b/WebKit/ChangeLog-2002-12-03
@@ -1,3 +1,17 @@
+2002-06-24 Chris Blumenberg <cblu at apple.com>
+
+ * Plugins.subproj/IFPlugin.h:
+ * Plugins.subproj/IFPlugin.m:
+ (-[IFPlugin initWithPath:]): Close resource files when done.
+ (-[IFPlugin load]): Remove Java plug-in workaround, load as mach-o
+ * Plugins.subproj/IFPluginView.h:
+ * Plugins.subproj/IFPluginView.mm:
+ (-[IFPluginView initWithFrame:plugin:url:baseURL:mime:arguments:]): take NSURLs
+ (-[IFPluginView dealloc]): release baseURL
+ * WebCoreSupport.subproj/IFWebCoreViewFactory.m:
+ (-[IFWebCoreViewFactory viewForPluginWithURL:serviceType:arguments:baseURL:]): take NSURLs
+ (-[IFWebCoreViewFactory viewForJavaAppletWithArguments:]):
+
2002-06-24 Darin Adler <darin at apple.com>
Remove some unused stuff. Other minor cleanup.
diff --git a/WebKit/Plugins.subproj/IFPlugin.h b/WebKit/Plugins.subproj/IFPlugin.h
index 52a7079..8a9df8c 100644
--- a/WebKit/Plugins.subproj/IFPlugin.h
+++ b/WebKit/Plugins.subproj/IFPlugin.h
@@ -58,7 +58,7 @@
- initWithPath:(NSString *)pluginPath;
- (BOOL)load;
- (void)unload;
-- (NSString *)mimeTypeForURL:(NSString *)URL;
+- (NSString *)mimeTypeForExtension:(NSString *)extension;
- (NSString *)path;
- (BOOL)isLoaded;
- (NSString *)description;
diff --git a/WebKit/Plugins.subproj/IFPlugin.m b/WebKit/Plugins.subproj/IFPlugin.m
index 344304d..ad9e7cb 100644
--- a/WebKit/Plugins.subproj/IFPlugin.m
+++ b/WebKit/Plugins.subproj/IFPlugin.m
@@ -111,17 +111,20 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
}
[self _getPluginInfoForResourceFile:resRef];
+ CloseResFile(resRef);
isBundle = NO;
}else return nil;
- }else if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeDirectory"]){ //bundle plug-in
+ //bundle plug-in
+ }else if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeDirectory"]){
pluginURL = CFURLCreateWithFileSystemPath(NULL, (CFStringRef)pluginPath, kCFURLPOSIXPathStyle, TRUE);
bundle = CFBundleCreate(NULL, pluginURL);
CFBundleGetPackageInfo(bundle, &type, NULL);
- if(type == FOUR_CHAR_CODE('BRPL') || type == FOUR_CHAR_CODE('IEPL') ){ // 1112690764 = 'BRPL'
+ if(type == FOUR_CHAR_CODE('BRPL') || type == FOUR_CHAR_CODE('IEPL') ){
resRef = CFBundleOpenBundleResourceMap(bundle);
[self _getPluginInfoForResourceFile:resRef];
+ CFBundleCloseBundleResourceMap(bundle, resRef);
isBundle = YES;
}else{
return nil;
@@ -161,11 +164,7 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
if(!memcmp([data bytes], "Joy!peff", 8)){
isCFM = TRUE;
}else{
- if([name isEqualToString:@"Java Plug-in"]){ //FIXME 2885120
- isCFM = TRUE;
- }else{
- isCFM = FALSE;
- }
+ isCFM = FALSE;
}
[executableFile closeFile];
didLoad = CFBundleLoadExecutable(bundle);
@@ -206,7 +205,7 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
isCFM = TRUE;
}
- // swap function table stage
+ // swap function tables
if(isCFM){
browserFuncs.version = 11;
browserFuncs.size = sizeof(NPNetscapeFuncs);
@@ -314,13 +313,11 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
isLoaded = FALSE;
}
-- (NSString *)mimeTypeForURL:(NSString *)URL
+- (NSString *)mimeTypeForExtension:(NSString *)extension;
{
uint n;
NSRange hasExtension;
- NSString *extension;
-
- extension = [URL pathExtension];
+
for(n=0; n<[mimeTypes count]; n++){
hasExtension = [[[mimeTypes objectAtIndex:n] objectAtIndex:1] rangeOfString:extension];
if(hasExtension.length){
diff --git a/WebKit/Plugins.subproj/IFPluginView.h b/WebKit/Plugins.subproj/IFPluginView.h
index accd2d4..9c4f88d 100644
--- a/WebKit/Plugins.subproj/IFPluginView.h
+++ b/WebKit/Plugins.subproj/IFPluginView.h
@@ -53,7 +53,7 @@
NPP_SetValueProcPtr NPP_SetValue;
}
-- (id)initWithFrame:(NSRect)r plugin:(IFPlugin *)plugin url:(NSURL *)theURL mime:(NSString *)mimeType arguments:(NSDictionary *)arguments;
+- (id)initWithFrame:(NSRect)r plugin:(IFPlugin *)plugin url:(NSURL *)theURL baseURL:(NSURL *)theBaseURL mime:(NSString *)mimeType arguments:(NSDictionary *)arguments;
-(void)stop;
- (IFWebDataSource *)webDataSource;
- (IFWebController *)webController;
diff --git a/WebKit/Plugins.subproj/IFPluginView.mm b/WebKit/Plugins.subproj/IFPluginView.mm
index 0f51bb2..b9e8d50 100644
--- a/WebKit/Plugins.subproj/IFPluginView.mm
+++ b/WebKit/Plugins.subproj/IFPluginView.mm
@@ -262,10 +262,8 @@ static char *newCString(NSString *string)
return cString;
}
-- (id)initWithFrame:(NSRect)r plugin:(IFPlugin *)plugin url:(NSURL *)theURL mime:(NSString *)mimeType arguments:(NSDictionary *)arguments
+- (id)initWithFrame:(NSRect)r plugin:(IFPlugin *)plugin url:(NSURL *)theURL baseURL:(NSURL *)theBaseURL mime:(NSString *)mimeType arguments:(NSDictionary *)arguments
{
- NSString *baseURLString;
-
[super initWithFrame: r];
instance = &instanceStruct;
@@ -273,7 +271,8 @@ static char *newCString(NSString *string)
mime = [mimeType retain];
srcURL = [theURL retain];
-
+ baseURL = [theBaseURL retain];
+
// load the plug-in if it is not already loaded
if(![plugin load])
return nil;
@@ -291,24 +290,26 @@ static char *newCString(NSString *string)
NPP_URLNotify = [plugin NPP_URLNotify];
NPP_GetValue = [plugin NPP_GetValue];
NPP_SetValue = [plugin NPP_SetValue];
- NPP_Print = [plugin NPP_Print];
-
- // get base URL which was added in the args in the part
- baseURLString = [arguments objectForKey:@"WebKitBaseURL"];
- if (baseURLString)
- baseURL = [[NSURL _IF_URLWithString:baseURLString] retain];
-
- isHidden = [arguments objectForKey:@"hidden"] != nil;
-
- argsCount = 0;
+ NPP_Print = [plugin NPP_Print];
// Convert arguments dictionary to 2 string arrays.
// These arrays are passed to NPP_New, but the strings need to be
// modifiable and live the entire life of the plugin.
- cAttributes = new char * [[arguments count]];
- cValues = new char * [[arguments count]];
+ argsCount = 0;
+ // The Java plug-in requires the first argument to be the base URL
+ if([mime isEqualToString:@"application/x-java-applet"]){
+ cAttributes = new char * [[arguments count]+1];
+ cValues = new char * [[arguments count]+1];
+ cAttributes[0] = newCString(@"CODEBASE");
+ cValues[0] = newCString([baseURL absoluteString]);
+ argsCount++;
+ }else{
+ cAttributes = new char * [[arguments count]];
+ cValues = new char * [[arguments count]];
+ }
+
NSEnumerator *e = [arguments keyEnumerator];
NSString *key;
while ((key = [e nextObject])) {
@@ -316,8 +317,9 @@ static char *newCString(NSString *string)
cValues[argsCount] = newCString([arguments objectForKey:key]);
argsCount++;
}
+
streams = [[NSMutableArray alloc] init];
- notificationData = [[NSMutableDictionary dictionaryWithCapacity:1] retain];
+ notificationData = [[NSMutableDictionary alloc] init];
// Initialize globals
canRestart = YES;
@@ -341,6 +343,7 @@ static char *newCString(NSString *string)
[streams release];
[mime release];
[srcURL release];
+ [baseURL release];
[notificationData release];
delete [] cAttributes;
delete [] cValues;
diff --git a/WebKit/Plugins.subproj/WebPlugin.h b/WebKit/Plugins.subproj/WebPlugin.h
index 52a7079..8a9df8c 100644
--- a/WebKit/Plugins.subproj/WebPlugin.h
+++ b/WebKit/Plugins.subproj/WebPlugin.h
@@ -58,7 +58,7 @@
- initWithPath:(NSString *)pluginPath;
- (BOOL)load;
- (void)unload;
-- (NSString *)mimeTypeForURL:(NSString *)URL;
+- (NSString *)mimeTypeForExtension:(NSString *)extension;
- (NSString *)path;
- (BOOL)isLoaded;
- (NSString *)description;
diff --git a/WebKit/Plugins.subproj/WebPlugin.m b/WebKit/Plugins.subproj/WebPlugin.m
index 344304d..ad9e7cb 100644
--- a/WebKit/Plugins.subproj/WebPlugin.m
+++ b/WebKit/Plugins.subproj/WebPlugin.m
@@ -111,17 +111,20 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
}
[self _getPluginInfoForResourceFile:resRef];
+ CloseResFile(resRef);
isBundle = NO;
}else return nil;
- }else if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeDirectory"]){ //bundle plug-in
+ //bundle plug-in
+ }else if([[fileInfo objectForKey:@"NSFileType"] isEqualToString:@"NSFileTypeDirectory"]){
pluginURL = CFURLCreateWithFileSystemPath(NULL, (CFStringRef)pluginPath, kCFURLPOSIXPathStyle, TRUE);
bundle = CFBundleCreate(NULL, pluginURL);
CFBundleGetPackageInfo(bundle, &type, NULL);
- if(type == FOUR_CHAR_CODE('BRPL') || type == FOUR_CHAR_CODE('IEPL') ){ // 1112690764 = 'BRPL'
+ if(type == FOUR_CHAR_CODE('BRPL') || type == FOUR_CHAR_CODE('IEPL') ){
resRef = CFBundleOpenBundleResourceMap(bundle);
[self _getPluginInfoForResourceFile:resRef];
+ CFBundleCloseBundleResourceMap(bundle, resRef);
isBundle = YES;
}else{
return nil;
@@ -161,11 +164,7 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
if(!memcmp([data bytes], "Joy!peff", 8)){
isCFM = TRUE;
}else{
- if([name isEqualToString:@"Java Plug-in"]){ //FIXME 2885120
- isCFM = TRUE;
- }else{
- isCFM = FALSE;
- }
+ isCFM = FALSE;
}
[executableFile closeFile];
didLoad = CFBundleLoadExecutable(bundle);
@@ -206,7 +205,7 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
isCFM = TRUE;
}
- // swap function table stage
+ // swap function tables
if(isCFM){
browserFuncs.version = 11;
browserFuncs.size = sizeof(NPNetscapeFuncs);
@@ -314,13 +313,11 @@ TransitionVector tVectorForFunctionPointer(FunctionPointer);
isLoaded = FALSE;
}
-- (NSString *)mimeTypeForURL:(NSString *)URL
+- (NSString *)mimeTypeForExtension:(NSString *)extension;
{
uint n;
NSRange hasExtension;
- NSString *extension;
-
- extension = [URL pathExtension];
+
for(n=0; n<[mimeTypes count]; n++){
hasExtension = [[[mimeTypes objectAtIndex:n] objectAtIndex:1] rangeOfString:extension];
if(hasExtension.length){
diff --git a/WebKit/Plugins.subproj/WebPluginView.h b/WebKit/Plugins.subproj/WebPluginView.h
index accd2d4..9c4f88d 100644
--- a/WebKit/Plugins.subproj/WebPluginView.h
+++ b/WebKit/Plugins.subproj/WebPluginView.h
@@ -53,7 +53,7 @@
NPP_SetValueProcPtr NPP_SetValue;
}
-- (id)initWithFrame:(NSRect)r plugin:(IFPlugin *)plugin url:(NSURL *)theURL mime:(NSString *)mimeType arguments:(NSDictionary *)arguments;
+- (id)initWithFrame:(NSRect)r plugin:(IFPlugin *)plugin url:(NSURL *)theURL baseURL:(NSURL *)theBaseURL mime:(NSString *)mimeType arguments:(NSDictionary *)arguments;
-(void)stop;
- (IFWebDataSource *)webDataSource;
- (IFWebController *)webController;
diff --git a/WebKit/Plugins.subproj/WebPluginView.m b/WebKit/Plugins.subproj/WebPluginView.m
index 0f51bb2..b9e8d50 100644
--- a/WebKit/Plugins.subproj/WebPluginView.m
+++ b/WebKit/Plugins.subproj/WebPluginView.m
@@ -262,10 +262,8 @@ static char *newCString(NSString *string)
return cString;
}
-- (id)initWithFrame:(NSRect)r plugin:(IFPlugin *)plugin url:(NSURL *)theURL mime:(NSString *)mimeType arguments:(NSDictionary *)arguments
+- (id)initWithFrame:(NSRect)r plugin:(IFPlugin *)plugin url:(NSURL *)theURL baseURL:(NSURL *)theBaseURL mime:(NSString *)mimeType arguments:(NSDictionary *)arguments
{
- NSString *baseURLString;
-
[super initWithFrame: r];
instance = &instanceStruct;
@@ -273,7 +271,8 @@ static char *newCString(NSString *string)
mime = [mimeType retain];
srcURL = [theURL retain];
-
+ baseURL = [theBaseURL retain];
+
// load the plug-in if it is not already loaded
if(![plugin load])
return nil;
@@ -291,24 +290,26 @@ static char *newCString(NSString *string)
NPP_URLNotify = [plugin NPP_URLNotify];
NPP_GetValue = [plugin NPP_GetValue];
NPP_SetValue = [plugin NPP_SetValue];
- NPP_Print = [plugin NPP_Print];
-
- // get base URL which was added in the args in the part
- baseURLString = [arguments objectForKey:@"WebKitBaseURL"];
- if (baseURLString)
- baseURL = [[NSURL _IF_URLWithString:baseURLString] retain];
-
- isHidden = [arguments objectForKey:@"hidden"] != nil;
-
- argsCount = 0;
+ NPP_Print = [plugin NPP_Print];
// Convert arguments dictionary to 2 string arrays.
// These arrays are passed to NPP_New, but the strings need to be
// modifiable and live the entire life of the plugin.
- cAttributes = new char * [[arguments count]];
- cValues = new char * [[arguments count]];
+ argsCount = 0;
+ // The Java plug-in requires the first argument to be the base URL
+ if([mime isEqualToString:@"application/x-java-applet"]){
+ cAttributes = new char * [[arguments count]+1];
+ cValues = new char * [[arguments count]+1];
+ cAttributes[0] = newCString(@"CODEBASE");
+ cValues[0] = newCString([baseURL absoluteString]);
+ argsCount++;
+ }else{
+ cAttributes = new char * [[arguments count]];
+ cValues = new char * [[arguments count]];
+ }
+
NSEnumerator *e = [arguments keyEnumerator];
NSString *key;
while ((key = [e nextObject])) {
@@ -316,8 +317,9 @@ static char *newCString(NSString *string)
cValues[argsCount] = newCString([arguments objectForKey:key]);
argsCount++;
}
+
streams = [[NSMutableArray alloc] init];
- notificationData = [[NSMutableDictionary dictionaryWithCapacity:1] retain];
+ notificationData = [[NSMutableDictionary alloc] init];
// Initialize globals
canRestart = YES;
@@ -341,6 +343,7 @@ static char *newCString(NSString *string)
[streams release];
[mime release];
[srcURL release];
+ [baseURL release];
[notificationData release];
delete [] cAttributes;
delete [] cValues;
diff --git a/WebKit/WebCoreSupport.subproj/IFWebCoreViewFactory.m b/WebKit/WebCoreSupport.subproj/IFWebCoreViewFactory.m
index 053d53d..c94bf2d 100644
--- a/WebKit/WebCoreSupport.subproj/IFWebCoreViewFactory.m
+++ b/WebKit/WebCoreSupport.subproj/IFWebCoreViewFactory.m
@@ -26,10 +26,10 @@
WEBKIT_ASSERT([[self sharedFactory] isMemberOfClass:self]);
}
-- (NSView *)viewForPluginWithURL:(NSString *)pluginURL serviceType:(NSString *)serviceType arguments:(NSArray *)args baseURL:(NSString *)baseURL
+- (NSView *)viewForPluginWithURL:(NSURL *)pluginURL serviceType:(NSString *)serviceType arguments:(NSArray *)args baseURL:(NSURL *)baseURL
{
NSMutableDictionary *arguments;
- NSString *mimeType;
+ NSString *mimeType, *extension;
NSRange r1, r2, r3;
IFPlugin *plugin;
uint i;
@@ -45,23 +45,20 @@
[arguments setObject:[arg substringWithRange:r3] forKey:[arg substringToIndex:r1.location]];
}
}
-
- if ([baseURL length]) {
- [arguments setObject:baseURL forKey:@"WebKitBaseURL"];
- }
if ([serviceType length]) {
mimeType = serviceType;
plugin = [[IFPluginDatabase installedPlugins] pluginForMimeType:mimeType];
} else {
- plugin = [[IFPluginDatabase installedPlugins] pluginForExtension:[pluginURL pathExtension]];
- mimeType = [plugin mimeTypeForURL:pluginURL];
+ extension = [[pluginURL path] pathExtension];
+ plugin = [[IFPluginDatabase installedPlugins] pluginForExtension:extension];
+ mimeType = [plugin mimeTypeForExtension:extension];
}
if (plugin == nil) {
return [[[IFNullPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) mimeType:mimeType arguments:arguments] autorelease];
}
- return [[[IFPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) plugin:plugin url:[NSURL _IF_URLWithString:pluginURL] mime:mimeType arguments:arguments] autorelease];
+ return [[[IFPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) plugin:plugin url:pluginURL baseURL:baseURL mime:mimeType arguments:arguments] autorelease];
}
- (NSArray *)pluginsInfo
@@ -72,21 +69,19 @@
- (NSView *)viewForJavaAppletWithArguments:(NSDictionary *)arguments
{
IFPlugin *plugin;
- NSMutableDictionary *argsCopy;
+ NSURL *baseURL;
- plugin = [[IFPluginDatabase installedPlugins] pluginWithFilename:@"Java.plugin"];
+ plugin = [[IFPluginDatabase installedPlugins] pluginForMimeType:@"application/x-java-applet"];
if (plugin == nil) {
return nil;
}
- argsCopy = [NSMutableDictionary dictionaryWithDictionary:arguments];
- [argsCopy setObject:[argsCopy objectForKey:@"baseURL"] forKey:@"DOCBASE"];
- [argsCopy removeObjectForKey:@"baseURL"];
+ baseURL = [NSURL _IF_URLWithString:[arguments objectForKey:@"baseURL"]];
if (plugin == nil) {
- return [[[IFNullPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) mimeType:@"application/x-java-applet" arguments:argsCopy] autorelease];
+ return [[[IFNullPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) mimeType:@"application/x-java-applet" arguments:arguments] autorelease];
}
- return [[[IFPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) plugin:plugin url:nil mime:@"application/x-java-applet" arguments:argsCopy] autorelease];
+ return [[[IFPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) plugin:plugin url:nil baseURL:baseURL mime:@"application/x-java-applet" arguments:arguments] autorelease];
}
@end
diff --git a/WebKit/WebCoreSupport.subproj/WebViewFactory.m b/WebKit/WebCoreSupport.subproj/WebViewFactory.m
index 053d53d..c94bf2d 100644
--- a/WebKit/WebCoreSupport.subproj/WebViewFactory.m
+++ b/WebKit/WebCoreSupport.subproj/WebViewFactory.m
@@ -26,10 +26,10 @@
WEBKIT_ASSERT([[self sharedFactory] isMemberOfClass:self]);
}
-- (NSView *)viewForPluginWithURL:(NSString *)pluginURL serviceType:(NSString *)serviceType arguments:(NSArray *)args baseURL:(NSString *)baseURL
+- (NSView *)viewForPluginWithURL:(NSURL *)pluginURL serviceType:(NSString *)serviceType arguments:(NSArray *)args baseURL:(NSURL *)baseURL
{
NSMutableDictionary *arguments;
- NSString *mimeType;
+ NSString *mimeType, *extension;
NSRange r1, r2, r3;
IFPlugin *plugin;
uint i;
@@ -45,23 +45,20 @@
[arguments setObject:[arg substringWithRange:r3] forKey:[arg substringToIndex:r1.location]];
}
}
-
- if ([baseURL length]) {
- [arguments setObject:baseURL forKey:@"WebKitBaseURL"];
- }
if ([serviceType length]) {
mimeType = serviceType;
plugin = [[IFPluginDatabase installedPlugins] pluginForMimeType:mimeType];
} else {
- plugin = [[IFPluginDatabase installedPlugins] pluginForExtension:[pluginURL pathExtension]];
- mimeType = [plugin mimeTypeForURL:pluginURL];
+ extension = [[pluginURL path] pathExtension];
+ plugin = [[IFPluginDatabase installedPlugins] pluginForExtension:extension];
+ mimeType = [plugin mimeTypeForExtension:extension];
}
if (plugin == nil) {
return [[[IFNullPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) mimeType:mimeType arguments:arguments] autorelease];
}
- return [[[IFPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) plugin:plugin url:[NSURL _IF_URLWithString:pluginURL] mime:mimeType arguments:arguments] autorelease];
+ return [[[IFPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) plugin:plugin url:pluginURL baseURL:baseURL mime:mimeType arguments:arguments] autorelease];
}
- (NSArray *)pluginsInfo
@@ -72,21 +69,19 @@
- (NSView *)viewForJavaAppletWithArguments:(NSDictionary *)arguments
{
IFPlugin *plugin;
- NSMutableDictionary *argsCopy;
+ NSURL *baseURL;
- plugin = [[IFPluginDatabase installedPlugins] pluginWithFilename:@"Java.plugin"];
+ plugin = [[IFPluginDatabase installedPlugins] pluginForMimeType:@"application/x-java-applet"];
if (plugin == nil) {
return nil;
}
- argsCopy = [NSMutableDictionary dictionaryWithDictionary:arguments];
- [argsCopy setObject:[argsCopy objectForKey:@"baseURL"] forKey:@"DOCBASE"];
- [argsCopy removeObjectForKey:@"baseURL"];
+ baseURL = [NSURL _IF_URLWithString:[arguments objectForKey:@"baseURL"]];
if (plugin == nil) {
- return [[[IFNullPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) mimeType:@"application/x-java-applet" arguments:argsCopy] autorelease];
+ return [[[IFNullPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) mimeType:@"application/x-java-applet" arguments:arguments] autorelease];
}
- return [[[IFPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) plugin:plugin url:nil mime:@"application/x-java-applet" arguments:argsCopy] autorelease];
+ return [[[IFPluginView alloc] initWithFrame:NSMakeRect(0,0,0,0) plugin:plugin url:nil baseURL:baseURL mime:@"application/x-java-applet" arguments:arguments] autorelease];
}
@end
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list