2 Subject: introduce a pref to prefer certain plugins for mime-types |
2 Subject: introduce a pref to prefer certain plugins for mime-types |
3 |
3 |
4 diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp |
4 diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp |
5 --- a/dom/plugins/base/nsPluginHost.cpp |
5 --- a/dom/plugins/base/nsPluginHost.cpp |
6 +++ b/dom/plugins/base/nsPluginHost.cpp |
6 +++ b/dom/plugins/base/nsPluginHost.cpp |
7 @@ -1543,17 +1543,51 @@ nsPluginHost::FindPluginForType(const ch |
7 @@ -1334,17 +1334,51 @@ nsPluginHost::FindPluginForType(const ch |
8 if (!aMimeType) { |
8 if (!aMimeType) { |
9 return nullptr; |
9 return nullptr; |
10 } |
10 } |
11 |
11 |
12 LoadPlugins(); |
12 LoadPlugins(); |
13 |
13 |
14 InfallibleTArray<nsPluginTag*> matchingPlugins; |
14 InfallibleTArray<nsPluginTag*> matchingPlugins; |
15 |
15 |
16 + char *preferredPluginPath = NULL; |
16 + char *preferredPluginPath = nullptr; |
17 + nsAutoCString mimetypePrefString ("modules.plugins.mimetype."); |
17 + nsAutoCString mimetypePrefString ("modules.plugins.mimetype."); |
18 + mimetypePrefString.Append(aMimeType); |
18 + mimetypePrefString.Append(aMimeType); |
19 + const char *mimetypePrefChar = mimetypePrefString.get(); |
19 + const char *mimetypePrefChar = mimetypePrefString.get(); |
20 + nsAdoptingCString pluginPath = Preferences::GetCString(mimetypePrefChar); |
20 + nsAdoptingCString pluginPath = Preferences::GetCString(mimetypePrefChar); |
21 + preferredPluginPath = (char*) pluginPath.get(); |
21 + preferredPluginPath = (char*) pluginPath.get(); |
47 + |
47 + |
48 + return FindPreferredPlugin(matchingPlugins); |
48 + return FindPreferredPlugin(matchingPlugins); |
49 + } |
49 + } |
50 + |
50 + |
51 while (plugin) { |
51 while (plugin) { |
52 if (!aCheckEnabled || plugin->IsEnabled()) { |
52 if (!aCheckEnabled || plugin->IsActive()) { |
53 int32_t mimeCount = plugin->mMimeTypes.Length(); |
53 int32_t mimeCount = plugin->mMimeTypes.Length(); |
54 for (int32_t i = 0; i < mimeCount; i++) { |
54 for (int32_t i = 0; i < mimeCount; i++) { |
55 if (0 == PL_strcasecmp(plugin->mMimeTypes[i].get(), aMimeType)) { |
55 if (0 == PL_strcasecmp(plugin->mMimeTypes[i].get(), aMimeType)) { |
56 matchingPlugins.AppendElement(plugin); |
56 matchingPlugins.AppendElement(plugin); |
57 break; |
57 break; |