summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/mac/Plugins/WebBasePluginPackage.mm')
-rw-r--r--Source/WebKit/mac/Plugins/WebBasePluginPackage.mm12
1 files changed, 10 insertions, 2 deletions
diff --git a/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm b/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm
index 05b084a..3fb86cb 100644
--- a/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm
+++ b/Source/WebKit/mac/Plugins/WebBasePluginPackage.mm
@@ -38,6 +38,7 @@
#import <wtf/Assertions.h>
#import <wtf/Threading.h>
#import <wtf/Vector.h>
+#import <wtf/text/CString.h>
#import <WebKitSystemInterface.h>
@@ -222,8 +223,15 @@ static NSString *pathByResolvingSymlinksAndAliases(NSString *thePath)
MimeClassInfo mimeClassInfo;
extensions = [[MIMEDictionary objectForKey:WebPluginExtensionsKey] _web_lowercaseStrings];
- for (NSUInteger i = 0; i < [extensions count]; ++i)
- mimeClassInfo.extensions.append((NSString *)[extensions objectAtIndex:i]);
+ for (NSUInteger i = 0; i < [extensions count]; ++i) {
+ // The DivX plug-in lists multiple extensions in a comma separated string instead of using
+ // multiple array elements in the property list. Work around this here by splitting the
+ // extension string into components.
+ NSArray *extensionComponents = [[extensions objectAtIndex:i] componentsSeparatedByString:@","];
+
+ for (NSString *extension in extensionComponents)
+ mimeClassInfo.extensions.append(extension);
+ }
if ([extensions count] == 0)
extensions = [NSArray arrayWithObject:@""];