diff options
author | stuartmorgan@chromium.org <stuartmorgan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-13 17:14:07 +0000 |
---|---|---|
committer | stuartmorgan@chromium.org <stuartmorgan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-13 17:14:07 +0000 |
commit | e24029e0af7cbeea014d29763bfc6b2083078f6b (patch) | |
tree | 4b7e350386537c1d78012d674ea58d1ada3711aa /webkit/glue | |
parent | ab352339b60c24999706fdb081a943e81e984aa2 (diff) | |
download | chromium_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.mm | 22 |
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) |