diff options
author | cevans@chromium.org <cevans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-11 01:28:10 +0000 |
---|---|---|
committer | cevans@chromium.org <cevans@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-11 01:28:10 +0000 |
commit | 2fe2a5fa9cb4e20527d49f94c4a1bf6d6ad7f20c (patch) | |
tree | ed45ec63a08a691f23101f53d48df695b5690bb9 /webkit | |
parent | 3b6c3bf40a6efefdae2bd4004b16d08a9a6844ad (diff) | |
download | chromium_src-2fe2a5fa9cb4e20527d49f94c4a1bf6d6ad7f20c.zip chromium_src-2fe2a5fa9cb4e20527d49f94c4a1bf6d6ad7f20c.tar.gz chromium_src-2fe2a5fa9cb4e20527d49f94c4a1bf6d6ad7f20c.tar.bz2 |
Revert 70963 - Support out-of-date plugin blocking on Linux.
BUG=NONE
TEST=plugin_group_unittest.cc,plugin_lib_unittest.cc
Review URL: http://codereview.chromium.org/5981010
TBR=nirnimesh@chromium.org
Review URL: http://codereview.chromium.org/6146008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70980 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r-- | webkit/plugins/npapi/plugin_group.cc | 4 | ||||
-rw-r--r-- | webkit/plugins/npapi/plugin_group_unittest.cc | 15 | ||||
-rw-r--r-- | webkit/plugins/npapi/plugin_lib.h | 5 | ||||
-rw-r--r-- | webkit/plugins/npapi/plugin_lib_posix.cc | 45 | ||||
-rw-r--r-- | webkit/plugins/npapi/plugin_lib_unittest.cc | 22 | ||||
-rw-r--r-- | webkit/plugins/npapi/plugin_list.cc | 47 |
6 files changed, 18 insertions, 120 deletions
diff --git a/webkit/plugins/npapi/plugin_group.cc b/webkit/plugins/npapi/plugin_group.cc index 6323998..23b0abc0 100644 --- a/webkit/plugins/npapi/plugin_group.cc +++ b/webkit/plugins/npapi/plugin_group.cc @@ -181,7 +181,8 @@ bool PluginGroup::Match(const WebPluginInfo& plugin) const { } // There's at least one version range, the plugin's version must be in it. - scoped_ptr<Version> plugin_version(CreateVersionFromString(plugin.version)); + scoped_ptr<Version> plugin_version( + Version::GetVersionFromString(UTF16ToASCII(plugin.version))); if (plugin_version.get() == NULL) { // No version could be extracted, assume we don't match the range. return false; @@ -206,7 +207,6 @@ Version* PluginGroup::CreateVersionFromString(const string16& version_string) { std::replace(version.begin(), version.end(), 'r', '.'); std::replace(version.begin(), version.end(), ',', '.'); std::replace(version.begin(), version.end(), '(', '.'); - std::replace(version.begin(), version.end(), '_', '.'); return Version::GetVersionFromString(WideToASCII(version)); } diff --git a/webkit/plugins/npapi/plugin_group_unittest.cc b/webkit/plugins/npapi/plugin_group_unittest.cc index 6fc3db2..3bda17c 100644 --- a/webkit/plugins/npapi/plugin_group_unittest.cc +++ b/webkit/plugins/npapi/plugin_group_unittest.cc @@ -49,9 +49,6 @@ static const PluginGroupDefinition kPluginDefNotVulnerable = { "myplugin-latest", "MyPlugin", "MyPlugin", NULL, 0, "http://latest" }; // name, path, version, desc. -static WebPluginInfo kPluginNoVersion = WebPluginInfo( - ASCIIToUTF16("MyPlugin"), FilePath(FILE_PATH_LITERAL("myplugin.so.2.0.43")), - ASCIIToUTF16(""), ASCIIToUTF16("MyPlugin version 2.0.43")); static WebPluginInfo kPlugin2043 = WebPluginInfo( ASCIIToUTF16("MyPlugin"), FilePath(FILE_PATH_LITERAL("myplugin.so.2.0.43")), ASCIIToUTF16("2.0.43"), ASCIIToUTF16("MyPlugin version 2.0.43")); @@ -64,9 +61,6 @@ static WebPluginInfo kPlugin3044 = WebPluginInfo( static WebPluginInfo kPlugin3045 = WebPluginInfo( ASCIIToUTF16("MyPlugin"), FilePath(FILE_PATH_LITERAL("myplugin.so.3.0.45")), ASCIIToUTF16("3.0.45"), ASCIIToUTF16("MyPlugin version 3.0.45")); -static WebPluginInfo kPlugin3045r = WebPluginInfo( - ASCIIToUTF16("MyPlugin"), FilePath(FILE_PATH_LITERAL("myplugin.so.3.0.45")), - ASCIIToUTF16("3.0r45"), ASCIIToUTF16("MyPlugin version 3.0r45")); static WebPluginInfo kPlugin4043 = WebPluginInfo( ASCIIToUTF16("MyPlugin"), FilePath(FILE_PATH_LITERAL("myplugin.so.4.0.43")), ASCIIToUTF16("4.0.43"), ASCIIToUTF16("MyPlugin version 4.0.43")); @@ -90,13 +84,8 @@ TEST(PluginGroupTest, PluginGroupMatch) { scoped_ptr<PluginGroup> group(PluginGroupTest::CreatePluginGroup( kPluginDef3)); EXPECT_TRUE(group->Match(kPlugin3045)); - EXPECT_TRUE(group->Match(kPlugin3045r)); - EXPECT_FALSE(group->Match(kPluginNoVersion)); group->AddPlugin(kPlugin3045, 0); EXPECT_FALSE(group->IsVulnerable()); - - group.reset(PluginGroupTest::CreatePluginGroup(kPluginDef)); - EXPECT_FALSE(group->Match(kPluginNoVersion)); } TEST(PluginGroupTest, PluginGroupMatchCorrectVersion) { @@ -207,9 +196,7 @@ TEST(PluginGroupTest, VersionExtraction) { { "3, 0, 0, 0", "3.0.0.0" }, // Picasa { "1, 0, 0, 1", "1.0.0.1" }, // Earth { "10,0,45,2", "10.0.45.2" }, // Flash - { "11.5.7r609", "11.5.7.609"}, // Shockwave - { "10.1 r102", "10.1.102"}, // Flash - { "1.6.0_22", "1.6.0.22"}, // Java + { "11.5.7r609", "11.5.7.609"} // Shockwave }; for (size_t i = 0; i < arraysize(versions); i++) { diff --git a/webkit/plugins/npapi/plugin_lib.h b/webkit/plugins/npapi/plugin_lib.h index 67f5d82..081e593 100644 --- a/webkit/plugins/npapi/plugin_lib.h +++ b/webkit/plugins/npapi/plugin_lib.h @@ -39,11 +39,6 @@ class PluginLib : public base::RefCounted<PluginLib> { // This API is only used on Unixes, and is exposed here for testing. static void ParseMIMEDescription(const std::string& description, std::vector<WebPluginMimeType>* mime_types); - - // Extract a version number from a description string. - // This API is only used on Unixes, and is exposed here for testing. - static void ExtractVersionString(const std::string& version, - WebPluginInfo* info); #endif // Unloads all the loaded plugin libraries and cleans up the plugin map. diff --git a/webkit/plugins/npapi/plugin_lib_posix.cc b/webkit/plugins/npapi/plugin_lib_posix.cc index 27f87de..19fa141 100644 --- a/webkit/plugins/npapi/plugin_lib_posix.cc +++ b/webkit/plugins/npapi/plugin_lib_posix.cc @@ -185,25 +185,18 @@ bool PluginLib::ReadWebPluginInfo(const FilePath& filename, if (NP_GetValue) { const char* name = NULL; NP_GetValue(NULL, nsPluginVariable_NameString, &name); - if (name) { + if (name) info->name = UTF8ToUTF16(name); - ExtractVersionString(name, info); - } const char* description = NULL; NP_GetValue(NULL, nsPluginVariable_DescriptionString, &description); - if (description) { + if (description) info->desc = UTF8ToUTF16(description); - if (info->version.empty()) - ExtractVersionString(description, info); - } LOG_IF(ERROR, PluginList::DebugPluginLoading()) << "Got info for plugin " << filename.value() << " Name = \"" << UTF16ToUTF8(info->name) - << "\", Description = \"" << UTF16ToUTF8(info->desc) - << "\", Version = \"" << UTF16ToUTF8(info->version) - << "\"."; + << "\", Description = \"" << UTF16ToUTF8(info->desc) << "\"."; } else { LOG_IF(ERROR, PluginList::DebugPluginLoading()) << "Plugin " << filename.value() @@ -259,38 +252,6 @@ void PluginLib::ParseMIMEDescription( } } -// static -void PluginLib::ExtractVersionString(const std::string& desc, - WebPluginInfo* info) { - // This matching works by extracting a version substring, along the lines of: - // No postfix: second match in .*<prefix>.*$ - // With postfix: second match .*<prefix>.*<postfix> - static const struct { - const char* kPrefix; - const char* kPostfix; - } kPrePostFixes[] = { - { "Shockwave Flash ", 0 }, - { "Java(TM) Plug-in ", 0 }, - { "(using IcedTea6 ", " " }, - { 0, 0 } - }; - std::string version; - for (size_t i = 0; kPrePostFixes[i].kPrefix; ++i) { - size_t pos; - if ((pos = desc.find(kPrePostFixes[i].kPrefix)) != std::string::npos) { - version = desc.substr(pos + strlen(kPrePostFixes[i].kPrefix)); - pos = std::string::npos; - if (kPrePostFixes[i].kPostfix) - pos = version.find(kPrePostFixes[i].kPostfix); - if (pos != std::string::npos) - version = version.substr(0, pos); - break; - } - } - if (!version.empty()) { - info->version = UTF8ToUTF16(version); - } -} } // namespace npapi } // namespace webkit diff --git a/webkit/plugins/npapi/plugin_lib_unittest.cc b/webkit/plugins/npapi/plugin_lib_unittest.cc index bce68a6..1794da90 100644 --- a/webkit/plugins/npapi/plugin_lib_unittest.cc +++ b/webkit/plugins/npapi/plugin_lib_unittest.cc @@ -152,28 +152,6 @@ TEST(MIMEDescriptionParse, ComplicatedJava) { EXPECT_TRUE(types[4].mime_type.find(';') != std::string::npos); } -// Make sure we understand how to get the version numbers for common Linux -// plug-ins. -TEST(PluginDescriptionParse, ExtractVersion) { - WebPluginInfo info; - PluginLib::ExtractVersionString("Shockwave Flash 10.1 r102", &info); - EXPECT_EQ(ASCIIToUTF16("10.1 r102"), info.version); - PluginLib::ExtractVersionString("Java(TM) Plug-in 1.6.0_22", &info); - EXPECT_EQ(ASCIIToUTF16("1.6.0_22"), info.version); - // It's actually much more likely for a modern Linux distribution to have - // IcedTea. - PluginLib::ExtractVersionString( - "IcedTea NPR Web Browser Plugin " - "(using IcedTea6 1.9.2 (6b20-1.9.2-0ubuntu1~10.04.1))", - &info); - EXPECT_EQ(ASCIIToUTF16("1.9.2"), info.version); - PluginLib::ExtractVersionString( - "IcedTea NPR Web Browser Plugin " - "(using IcedTea6 1.9.3 (fedora-49.1.9.3.fc14-i386))`", - &info); - EXPECT_EQ(ASCIIToUTF16("1.9.3"), info.version); -} - #endif // defined(OS_LINUX) } // namespace npapi diff --git a/webkit/plugins/npapi/plugin_list.cc b/webkit/plugins/npapi/plugin_list.cc index b2598a7..6c4049a 100644 --- a/webkit/plugins/npapi/plugin_list.cc +++ b/webkit/plugins/npapi/plugin_list.cc @@ -31,18 +31,6 @@ namespace npapi { FilePath::CharType kDefaultPluginLibraryName[] = FILE_PATH_LITERAL("default_plugin"); -// Some version ranges can be shared across operating systems. This should be -// done where possible to avoid duplication. -static const VersionRangeDefinition kFlashVersionRange[] = { - { "", "", "10.1.102" } -}; - -// Similarly, try and share the group definition for plug-ins that are -// very consistent across OS'es. -static const PluginGroupDefinition kFlashDefinition = { - "adobe-flash-player", "Flash", "Shockwave Flash", kFlashVersionRange, - arraysize(kFlashVersionRange), "http://get.adobe.com/flashplayer/" }; - #if defined(OS_MACOSX) // Plugin Groups for Mac. // Plugins are listed here as soon as vulnerabilities and solutions @@ -52,7 +40,10 @@ static const VersionRangeDefinition kQuicktimeVersionRange[] = { { "", "", "7.6.6" } }; static const VersionRangeDefinition kJavaVersionRange[] = { - { "13.0", "14.0", "13.3.0" } // Snow Leopard + { "", "", "" } +}; +static const VersionRangeDefinition kFlashVersionRange[] = { + { "", "", "10.1.102" } }; static const VersionRangeDefinition kSilverlightVersionRange[] = { { "0", "4", "3.0.50106.0" }, @@ -65,12 +56,13 @@ static const VersionRangeDefinition kShockwaveVersionRange[] = { { "", "", "11.5.9.615" } }; static const PluginGroupDefinition kGroupDefinitions[] = { - kFlashDefinition, { "apple-quicktime", "Quicktime", "QuickTime Plug-in", kQuicktimeVersionRange, arraysize(kQuicktimeVersionRange), "http://www.apple.com/quicktime/download/" }, { "java-runtime-environment", "Java", "Java", kJavaVersionRange, arraysize(kJavaVersionRange), "http://support.apple.com/kb/HT1338" }, + { "adobe-flash-player", "Flash", "Shockwave Flash", kFlashVersionRange, + arraysize(kFlashVersionRange), "http://get.adobe.com/flashplayer/" }, { "silverlight", "Silverlight", "Silverlight", kSilverlightVersionRange, arraysize(kSilverlightVersionRange), "http://www.microsoft.com/getsilverlight/" }, @@ -96,6 +88,9 @@ static const VersionRangeDefinition kAdobeReaderVersionRange[] = { { "9", "10", "9.4.1" }, { "0", "9", "8.2.5" } }; +static const VersionRangeDefinition kFlashVersionRange[] = { + { "", "", "10.1.102" } +}; static const VersionRangeDefinition kSilverlightVersionRange[] = { { "0", "4", "3.0.50106.0" }, { "4", "5", "" } @@ -107,7 +102,6 @@ static const VersionRangeDefinition kDivXVersionRange[] = { { "", "", "1.4.3.4" } }; static const PluginGroupDefinition kGroupDefinitions[] = { - kFlashDefinition, { "apple-quicktime", "Quicktime", "QuickTime Plug-in", kQuicktimeVersionRange, arraysize(kQuicktimeVersionRange), "http://www.apple.com/quicktime/download/" }, @@ -116,6 +110,8 @@ static const PluginGroupDefinition kGroupDefinitions[] = { { "adobe-reader", PluginGroup::kAdobeReaderGroupName, "Adobe Acrobat", kAdobeReaderVersionRange, arraysize(kAdobeReaderVersionRange), "http://get.adobe.com/reader/" }, + { "adobe-flash-player", "Flash", "Shockwave Flash", kFlashVersionRange, + arraysize(kFlashVersionRange), "http://get.adobe.com/flashplayer/" }, { "silverlight", "Silverlight", "Silverlight", kSilverlightVersionRange, arraysize(kSilverlightVersionRange), "http://www.microsoft.com/getsilverlight/" }, @@ -139,26 +135,7 @@ static const PluginGroupDefinition kGroupDefinitions[] = { }; #else -static const VersionRangeDefinition kJavaVersionRange[] = { - { "0", "1.7", "1.6.0.22" } -}; -// TODO(cevans): see if this can be generalized to more distributions. -static const VersionRangeDefinition kRedhatIcedTeaVersionRange[] = { - { "0", "1.9", "1.8.3" }, - { "1.9", "1.10", "1.9.2" }, -}; - -static const PluginGroupDefinition kGroupDefinitions[] = { - // Flash on Linux is significant because there isn't yet a built-in Flash - // plug-in on the Linux 64-bit version of Chrome. - kFlashDefinition, - { "java-runtime-environment", "Java 6", "Java", kJavaVersionRange, - arraysize(kJavaVersionRange), - "http://www.java.com/en/download/manual.jsp" }, - { "redhat-icetea-java", "IcedTea", "IcedTea", kRedhatIcedTeaVersionRange, - arraysize(kRedhatIcedTeaVersionRange), - "http://www.linuxsecurity.com/content/section/3/170/" }, -}; +static const PluginGroupDefinition kGroupDefinitions[] = {}; #endif // static |