[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 05:56:31 UTC 2009
The following commit has been merged in the debian/unstable branch:
commit f0234ab83a185582ec8d221af485c023eaebeaa6
Author: cblu <cblu at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Sat Mar 2 00:29:12 2002 +0000
Improved the plug-in search scheme to make it easier to change the plug-in locations in the future. Added Alexander's PlugIns directory to the search locations
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@683 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/kwq/WCPluginDatabase.h b/WebCore/kwq/WCPluginDatabase.h
index af546ac..0443373 100644
--- a/WebCore/kwq/WCPluginDatabase.h
+++ b/WebCore/kwq/WCPluginDatabase.h
@@ -38,4 +38,5 @@
@end
+NSArray *pluginLocations(void);
NSArray *findPlugins(void);
\ No newline at end of file
diff --git a/WebCore/kwq/WCPluginDatabase.mm b/WebCore/kwq/WCPluginDatabase.mm
index 196e54b..58fc5ca 100644
--- a/WebCore/kwq/WCPluginDatabase.mm
+++ b/WebCore/kwq/WCPluginDatabase.mm
@@ -99,31 +99,52 @@ static WCPluginDatabase *__WCPluginDatabase = nil;
@end
-NSArray *findPlugins(void){
+NSArray *pluginLocations(void)
+{
+ NSMutableArray *locations;
+ NSBundle *applicationBundle;
+
+ // Plug-ins are found in order of precedence.
+ // If there are duplicates, the first found plug-in is used.
+ // For example, if there is a QuickTime.plugin in the users's home directory
+ // that is used instead of the /Library/Internet Plug-ins version.
+ // The purpose is to allow non-admin user's to update their plug-ins.
+
+ locations = [NSMutableArray arrayWithCapacity:3];
+ [locations addObject:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Internet Plug-Ins"]];
+ [locations addObject:@"/Library/Internet Plug-Ins"];
+
+ applicationBundle = [NSBundle mainBundle];
+ [locations addObject:[applicationBundle builtInPlugInsPath]];
+
+ return locations;
+}
+
+NSArray *findPlugins(void)
+{
NSFileManager *fileManager;
- NSArray *libraryPlugins, *homePlugins;
- NSString *homePluginDir, *libPluginDir;
- NSMutableArray *pluginPaths, *pluginArray;
+ NSArray *pluginDirectories, *files;
+ NSString *file;
+ NSMutableArray *pluginPaths, *pluginArray, *filenames;
WCPlugin *plugin;
- uint i;
+ uint i, n;
+ pluginDirectories = pluginLocations();
fileManager = [NSFileManager defaultManager];
- homePluginDir = [[NSString stringWithString:NSHomeDirectory()] stringByAppendingPathComponent:@"Library/Internet Plug-Ins"];
- libPluginDir = [NSString stringWithString:@"/Library/Internet Plug-Ins"];
+ pluginPaths = [NSMutableArray arrayWithCapacity:10];
+ filenames = [NSMutableArray arrayWithCapacity:10];
- homePlugins = [fileManager directoryContentsAtPath:homePluginDir];
- libraryPlugins = [fileManager directoryContentsAtPath:libPluginDir];
-
- pluginPaths = [NSMutableArray arrayWithCapacity:[homePlugins count]+[libraryPlugins count]];
-
- for(i=0; i<[homePlugins count]; i++){
- [pluginPaths addObject:[homePluginDir stringByAppendingPathComponent:[homePlugins objectAtIndex:i]]];
- }
- for(i=0; i<[libraryPlugins count]; i++){
- if(![homePlugins containsObject:[libraryPlugins objectAtIndex:i]]){ // avoid dups, give precedense to home dir
- [pluginPaths addObject:[libPluginDir stringByAppendingPathComponent:[libraryPlugins objectAtIndex:i]]];
+ for(i=0; i<[pluginDirectories count]; i++){
+ files = [fileManager directoryContentsAtPath:[pluginDirectories objectAtIndex:i]];
+ for(n=0; n<[files count]; n++){
+ file = [files objectAtIndex:n];
+ if(![filenames containsObject:file]){ // avoid duplicates
+ [filenames addObject:file];
+ [pluginPaths addObject:[[pluginDirectories objectAtIndex:i] stringByAppendingPathComponent:file]];
+ }
}
}
+
pluginArray = [NSMutableArray arrayWithCapacity:[pluginPaths count]];
for(i=0; i<[pluginPaths count]; i++){
diff --git a/WebCore/src/kwq/WCPluginDatabase.h b/WebCore/src/kwq/WCPluginDatabase.h
index af546ac..0443373 100644
--- a/WebCore/src/kwq/WCPluginDatabase.h
+++ b/WebCore/src/kwq/WCPluginDatabase.h
@@ -38,4 +38,5 @@
@end
+NSArray *pluginLocations(void);
NSArray *findPlugins(void);
\ No newline at end of file
diff --git a/WebCore/src/kwq/WCPluginDatabase.mm b/WebCore/src/kwq/WCPluginDatabase.mm
index 196e54b..58fc5ca 100644
--- a/WebCore/src/kwq/WCPluginDatabase.mm
+++ b/WebCore/src/kwq/WCPluginDatabase.mm
@@ -99,31 +99,52 @@ static WCPluginDatabase *__WCPluginDatabase = nil;
@end
-NSArray *findPlugins(void){
+NSArray *pluginLocations(void)
+{
+ NSMutableArray *locations;
+ NSBundle *applicationBundle;
+
+ // Plug-ins are found in order of precedence.
+ // If there are duplicates, the first found plug-in is used.
+ // For example, if there is a QuickTime.plugin in the users's home directory
+ // that is used instead of the /Library/Internet Plug-ins version.
+ // The purpose is to allow non-admin user's to update their plug-ins.
+
+ locations = [NSMutableArray arrayWithCapacity:3];
+ [locations addObject:[NSHomeDirectory() stringByAppendingPathComponent:@"Library/Internet Plug-Ins"]];
+ [locations addObject:@"/Library/Internet Plug-Ins"];
+
+ applicationBundle = [NSBundle mainBundle];
+ [locations addObject:[applicationBundle builtInPlugInsPath]];
+
+ return locations;
+}
+
+NSArray *findPlugins(void)
+{
NSFileManager *fileManager;
- NSArray *libraryPlugins, *homePlugins;
- NSString *homePluginDir, *libPluginDir;
- NSMutableArray *pluginPaths, *pluginArray;
+ NSArray *pluginDirectories, *files;
+ NSString *file;
+ NSMutableArray *pluginPaths, *pluginArray, *filenames;
WCPlugin *plugin;
- uint i;
+ uint i, n;
+ pluginDirectories = pluginLocations();
fileManager = [NSFileManager defaultManager];
- homePluginDir = [[NSString stringWithString:NSHomeDirectory()] stringByAppendingPathComponent:@"Library/Internet Plug-Ins"];
- libPluginDir = [NSString stringWithString:@"/Library/Internet Plug-Ins"];
+ pluginPaths = [NSMutableArray arrayWithCapacity:10];
+ filenames = [NSMutableArray arrayWithCapacity:10];
- homePlugins = [fileManager directoryContentsAtPath:homePluginDir];
- libraryPlugins = [fileManager directoryContentsAtPath:libPluginDir];
-
- pluginPaths = [NSMutableArray arrayWithCapacity:[homePlugins count]+[libraryPlugins count]];
-
- for(i=0; i<[homePlugins count]; i++){
- [pluginPaths addObject:[homePluginDir stringByAppendingPathComponent:[homePlugins objectAtIndex:i]]];
- }
- for(i=0; i<[libraryPlugins count]; i++){
- if(![homePlugins containsObject:[libraryPlugins objectAtIndex:i]]){ // avoid dups, give precedense to home dir
- [pluginPaths addObject:[libPluginDir stringByAppendingPathComponent:[libraryPlugins objectAtIndex:i]]];
+ for(i=0; i<[pluginDirectories count]; i++){
+ files = [fileManager directoryContentsAtPath:[pluginDirectories objectAtIndex:i]];
+ for(n=0; n<[files count]; n++){
+ file = [files objectAtIndex:n];
+ if(![filenames containsObject:file]){ // avoid duplicates
+ [filenames addObject:file];
+ [pluginPaths addObject:[[pluginDirectories objectAtIndex:i] stringByAppendingPathComponent:file]];
+ }
}
}
+
pluginArray = [NSMutableArray arrayWithCapacity:[pluginPaths count]];
for(i=0; i<[pluginPaths count]; i++){
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list