mozilla-prefer_plugin_pref.patch
changeset 650 e8c83b144fd1
parent 568 2c74c5927ea2
equal deleted inserted replaced
649:de1740022f78 650:e8c83b144fd1
     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;