[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