summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
authorstuartmorgan@chromium.org <stuartmorgan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-13 17:14:07 +0000
committerstuartmorgan@chromium.org <stuartmorgan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-13 17:14:07 +0000
commite24029e0af7cbeea014d29763bfc6b2083078f6b (patch)
tree4b7e350386537c1d78012d674ea58d1ada3711aa /webkit/glue
parentab352339b60c24999706fdb081a943e81e984aa2 (diff)
downloadchromium_src-e24029e0af7cbeea014d29763bfc6b2083078f6b.zip
chromium_src-e24029e0af7cbeea014d29763bfc6b2083078f6b.tar.gz
chromium_src-e24029e0af7cbeea014d29763bfc6b2083078f6b.tar.bz2
Make Flip4Mac handling version-specific
BUG=52661 TEST=Flip4Mac 2.3.6+ should show up in chrome://plugins and stay enabled once enabled. Flip4Mac 2.3.[0-5] should not show up. Review URL: http://codereview.chromium.org/5684003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69010 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/plugins/plugin_list_mac.mm22
1 files changed, 14 insertions, 8 deletions
diff --git a/webkit/glue/plugins/plugin_list_mac.mm b/webkit/glue/plugins/plugin_list_mac.mm
index 6e5019d..e7a2337 100644
--- a/webkit/glue/plugins/plugin_list_mac.mm
+++ b/webkit/glue/plugins/plugin_list_mac.mm
@@ -8,6 +8,8 @@
#include "base/file_util.h"
#include "base/mac_util.h"
+#include "base/string_number_conversions.h"
+#include "base/string_split.h"
#include "base/string_util.h"
#include "base/utf_string_conversions.h"
#include "webkit/glue/plugins/plugin_lib.h"
@@ -43,6 +45,18 @@ bool IsBlacklistedPlugin(const WebPluginInfo& info) {
return true;
}
+ // Versions of Flip4Mac 2.3 before 2.3.6 often hang the renderer, so don't
+ // load them.
+ if (StartsWith(info.name, ASCIIToUTF16("Flip4Mac Windows Media"), false) &&
+ StartsWith(info.version, ASCIIToUTF16("2.3"), false)) {
+ std::vector<string16> components;
+ base::SplitString(info.version, '.', &components);
+ int bugfix_version = 0;
+ return (components.size() >= 3 &&
+ base::StringToInt(components[2], &bugfix_version) &&
+ bugfix_version < 6);
+ }
+
return false;
}
@@ -80,14 +94,6 @@ bool PluginList::ShouldLoadPlugin(const WebPluginInfo& info,
if (IsBlacklistedPlugin(info))
return false;
- // Flip4Mac has a reproducible hang during a synchronous call from the render
- // with certain content types (as well as a common crash). Disable by default
- // to minimize those issues, but don't blacklist it so that users can choose
- // to enable it.
- if (StartsWith(info.name, ASCIIToUTF16("Flip4Mac Windows Media Plugin"),
- false))
- DisablePlugin(info.path);
-
// Hierarchy check
// (we're loading plugins hierarchically from Library folders, so plugins we
// encounter earlier must override plugins we encounter later)