mozilla-prefer_plugin_pref.patch
branchfirefox14
changeset 492 c0088c242dab
parent 490 be017dcbd7af
child 494 21aea6bec3cb
equal deleted inserted replaced
490:be017dcbd7af 492:c0088c242dab
     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 +