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 @@ -1581,19 +1581,51 @@ nsPluginHost::FindPluginForType(const ch |
7 @@ -1581,19 +1581,47 @@ nsPluginHost::FindPluginForType(const ch |
8 bool aCheckEnabled) |
8 bool aCheckEnabled) |
9 { |
9 { |
10 if (!aMimeType) { |
10 if (!aMimeType) { |
11 return nsnull; |
11 return nsnull; |
12 } |
12 } |
13 |
13 |
14 LoadPlugins(); |
14 LoadPlugins(); |
15 |
15 |
16 + nsresult res; |
|
17 + nsCOMPtr<nsIPrefBranch> prefB (do_QueryInterface(mPrefService)); |
|
18 + |
|
19 + char *preferredPluginPath = NULL; |
16 + char *preferredPluginPath = NULL; |
20 + nsCAutoString mimetypePrefString ("modules.plugins.mimetype."); |
17 + nsCAutoString mimetypePrefString ("modules.plugins.mimetype."); |
21 + mimetypePrefString.Append(aMimeType); |
18 + mimetypePrefString.Append(aMimeType); |
22 + const char *mimetypePrefChar = mimetypePrefString.get(); |
19 + const char *mimetypePrefChar = mimetypePrefString.get(); |
23 + res = prefB->GetCharPref(mimetypePrefChar, &preferredPluginPath); |
20 + nsAdoptingCString pluginPath = Preferences::GetCString(mimetypePrefChar); |
24 + |
21 + preferredPluginPath = (char*) pluginPath.get(); |
25 + if(!NS_SUCCEEDED(res)) preferredPluginPath = NULL; |
|
26 + |
22 + |
27 InfallibleTArray<nsPluginTag*> matchingPlugins; |
23 InfallibleTArray<nsPluginTag*> matchingPlugins; |
28 |
24 |
29 nsPluginTag *plugin = mPlugins; |
25 nsPluginTag *plugin = mPlugins; |
30 + |
26 + |