mozilla-prefer_plugin_pref.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Thu, 17 Apr 2014 23:08:54 +0200
branchfirefox29
changeset 717 c18c0e8dbac7
parent 650 e8c83b144fd1
permissions -rw-r--r--
update to 29.0b8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8
19a8c8d53349 Fixed patch comments
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1
diff changeset
     1
From: Ubuntu
491
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
     2
Subject: introduce a pref to prefer certain plugins for mime-types
8
19a8c8d53349 Fixed patch comments
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 1
diff changeset
     3
289
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
     4
diff --git a/dom/plugins/base/nsPluginHost.cpp b/dom/plugins/base/nsPluginHost.cpp
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
     5
--- a/dom/plugins/base/nsPluginHost.cpp
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
     6
+++ b/dom/plugins/base/nsPluginHost.cpp
650
e8c83b144fd1 22.0b4 update
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 568
diff changeset
     7
@@ -1334,17 +1334,51 @@ nsPluginHost::FindPluginForType(const ch
289
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
     8
   if (!aMimeType) {
541
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
     9
     return nullptr;
289
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
    10
   }
123
1d88ea95ad20 update to beta3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 8
diff changeset
    11
 
1d88ea95ad20 update to beta3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 8
diff changeset
    12
   LoadPlugins();
1d88ea95ad20 update to beta3
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 8
diff changeset
    13
 
541
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    14
   InfallibleTArray<nsPluginTag*> matchingPlugins;
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    15
 
650
e8c83b144fd1 22.0b4 update
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 568
diff changeset
    16
+  char *preferredPluginPath = nullptr;
568
2c74c5927ea2 first working Aurora 18 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 541
diff changeset
    17
+  nsAutoCString mimetypePrefString ("modules.plugins.mimetype.");
491
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
    18
+  mimetypePrefString.Append(aMimeType);
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
    19
+  const char *mimetypePrefChar = mimetypePrefString.get();
505
edb0bc96e43b updated patch
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 491
diff changeset
    20
+  nsAdoptingCString pluginPath = Preferences::GetCString(mimetypePrefChar);
edb0bc96e43b updated patch
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 491
diff changeset
    21
+  preferredPluginPath = (char*) pluginPath.get();
491
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
    22
+
289
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
    23
   nsPluginTag *plugin = mPlugins;
1
045edd78eceb Add missing files
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
+
491
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
    25
+  if(preferredPluginPath) {
541
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    26
+    while (plugin) {
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    27
+      if (!aCheckEnabled || plugin->IsEnabled()) {
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    28
+        if (0 == PL_strcasecmp(plugin->mFileName.get(), preferredPluginPath) ||
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    29
+            0 == PL_strcasecmp(plugin->mFullPath.get(), preferredPluginPath)) {
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    30
+          matchingPlugins.AppendElement(plugin);
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    31
+        }
491
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
    32
+      }
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
    33
+      plugin = plugin->mNext;
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
    34
+    }
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
    35
+
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
    36
+    // now lets search for substrings
43deb5e6462d snapshot 20120625
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 439
diff changeset
    37
+    plugin = mPlugins;
541
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    38
+    while (plugin) {
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    39
+      if (!aCheckEnabled || plugin->IsEnabled()) {
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    40
+        if (nullptr != PL_strstr(plugin->mFileName.get(), preferredPluginPath) ||
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    41
+            nullptr != PL_strstr(plugin->mFullPath.get(), preferredPluginPath)) {
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    42
+          matchingPlugins.AppendElement(plugin);
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    43
+        }
1
045edd78eceb Add missing files
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
+      }
289
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
    45
+      plugin = plugin->mNext;
1
045edd78eceb Add missing files
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
+    }
541
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    47
+
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    48
+    return FindPreferredPlugin(matchingPlugins);
289
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
    49
+  }
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
    50
+
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
    51
   while (plugin) {
650
e8c83b144fd1 22.0b4 update
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 568
diff changeset
    52
     if (!aCheckEnabled || plugin->IsActive()) {
541
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    53
       int32_t mimeCount = plugin->mMimeTypes.Length();
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    54
       for (int32_t i = 0; i < mimeCount; i++) {
289
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
    55
         if (0 == PL_strcasecmp(plugin->mMimeTypes[i].get(), aMimeType)) {
541
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    56
           matchingPlugins.AppendElement(plugin);
830e50bbfc79 working Aurora 17.0 build
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 505
diff changeset
    57
           break;
289
3c0dff7ca9c4 Update to version 6.0b1
Wolfgang Rosenauer <wr@rosenauer.org>
parents: 123
diff changeset
    58
         }