| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "webkit/plugins/npapi/plugin_list.h" | 5 #include "webkit/glue/plugins/plugin_list.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/string_split.h" | 12 #include "base/string_split.h" |
| 13 #include "base/string_util.h" | 13 #include "base/string_util.h" |
| 14 #include "base/sys_string_conversions.h" | 14 #include "base/sys_string_conversions.h" |
| 15 #include "base/utf_string_conversions.h" | 15 #include "base/utf_string_conversions.h" |
| 16 #include "googleurl/src/gurl.h" | 16 #include "googleurl/src/gurl.h" |
| 17 #include "net/base/mime_util.h" | 17 #include "net/base/mime_util.h" |
| 18 #include "webkit/glue/plugins/plugin_constants_win.h" |
| 19 #include "webkit/glue/plugins/plugin_lib.h" |
| 18 #include "webkit/glue/webkit_glue.h" | 20 #include "webkit/glue/webkit_glue.h" |
| 19 #include "webkit/plugins/npapi/plugin_constants_win.h" | |
| 20 #include "webkit/plugins/npapi/plugin_lib.h" | |
| 21 #include "webkit/plugins/plugin_switches.h" | 21 #include "webkit/plugins/plugin_switches.h" |
| 22 | 22 |
| 23 #if defined(OS_POSIX) | 23 #if defined(OS_POSIX) |
| 24 #include "base/stl_util-inl.h" | 24 #include "base/stl_util-inl.h" |
| 25 #include "base/third_party/valgrind/valgrind.h" | 25 #include "base/third_party/valgrind/valgrind.h" |
| 26 #endif // defined(OS_POSIX) | 26 #endif // defined(OS_POSIX) |
| 27 | 27 |
| 28 namespace webkit { | 28 namespace NPAPI { |
| 29 namespace npapi { | |
| 30 | |
| 31 FilePath::CharType kDefaultPluginLibraryName[] = | |
| 32 FILE_PATH_LITERAL("default_plugin"); | |
| 33 | 29 |
| 34 #if defined(OS_MACOSX) | 30 #if defined(OS_MACOSX) |
| 35 // Plugin Groups for Mac. | 31 // Plugin Groups for Mac. |
| 36 // Plugins are listed here as soon as vulnerabilities and solutions | 32 // Plugins are listed here as soon as vulnerabilities and solutions |
| 37 // (new versions) are published. | 33 // (new versions) are published. |
| 38 // TODO(panayiotis): Get the Real Player version on Mac, somehow. | 34 // TODO(panayiotis): Get the Real Player version on Mac, somehow. |
| 39 static const VersionRangeDefinition kQuicktimeVersionRange[] = { | 35 static const VersionRangeDefinition kQuicktimeVersionRange[] = { |
| 40 { "", "", "7.6.6" } | 36 { "", "", "7.6.6" } |
| 41 }; | 37 }; |
| 42 static const VersionRangeDefinition kJavaVersionRange[] = { | 38 static const VersionRangeDefinition kJavaVersionRange[] = { |
| (...skipping 28 matching lines...) Expand all Loading... |
| 71 "http://www.telestream.net/flip4mac-wmv/overview.htm" }, | 67 "http://www.telestream.net/flip4mac-wmv/overview.htm" }, |
| 72 { "shockwave", "Shockwave", "Shockwave for Director", kShockwaveVersionRange, | 68 { "shockwave", "Shockwave", "Shockwave for Director", kShockwaveVersionRange, |
| 73 arraysize(kShockwaveVersionRange), | 69 arraysize(kShockwaveVersionRange), |
| 74 "http://www.adobe.com/shockwave/download/" } | 70 "http://www.adobe.com/shockwave/download/" } |
| 75 }; | 71 }; |
| 76 | 72 |
| 77 #elif defined(OS_WIN) | 73 #elif defined(OS_WIN) |
| 78 // TODO(panayiotis): We should group "RealJukebox NS Plugin" with the rest of | 74 // TODO(panayiotis): We should group "RealJukebox NS Plugin" with the rest of |
| 79 // the RealPlayer files. | 75 // the RealPlayer files. |
| 80 static const VersionRangeDefinition kQuicktimeVersionRange[] = { | 76 static const VersionRangeDefinition kQuicktimeVersionRange[] = { |
| 81 { "", "", "7.6.8" } | 77 { "", "", "7.6.9" } |
| 82 }; | 78 }; |
| 83 static const VersionRangeDefinition kJavaVersionRange[] = { | 79 static const VersionRangeDefinition kJavaVersionRange[] = { |
| 84 { "0", "7", "6.0.220" } // "220" is not a typo. | 80 { "0", "7", "6.0.220" } // "220" is not a typo. |
| 85 }; | 81 }; |
| 86 static const VersionRangeDefinition kAdobeReaderVersionRange[] = { | 82 static const VersionRangeDefinition kAdobeReaderVersionRange[] = { |
| 87 { "10", "11", "" }, | 83 { "10", "11", "" }, |
| 88 { "9", "10", "9.4.1" }, | 84 { "9", "10", "9.4.1" }, |
| 89 { "0", "9", "8.2.5" } | 85 { "0", "9", "8.2.5" } |
| 90 }; | 86 }; |
| 91 static const VersionRangeDefinition kFlashVersionRange[] = { | 87 static const VersionRangeDefinition kFlashVersionRange[] = { |
| 92 { "", "", "10.1.102" } | 88 { "", "", "10.1.102" } |
| 93 }; | 89 }; |
| 94 static const VersionRangeDefinition kSilverlightVersionRange[] = { | 90 static const VersionRangeDefinition kSilverlightVersionRange[] = { |
| 95 { "0", "4", "3.0.50106.0" }, | 91 { "0", "4", "3.0.50106.0" }, |
| 96 { "4", "5", "" } | 92 { "4", "5", "" } |
| 97 }; | 93 }; |
| 98 static const VersionRangeDefinition kShockwaveVersionRange[] = { | 94 static const VersionRangeDefinition kShockwaveVersionRange[] = { |
| 99 { "", "", "11.5.9.615" } | 95 { "", "", "11.5.9.615" } |
| 100 }; | 96 }; |
| 101 static const VersionRangeDefinition kDivXVersionRange[] = { | 97 static const VersionRangeDefinition kDivXVersionRange[] = { |
| 102 { "", "", "1.4.3.4" } | 98 { "", "", "1.4.3.4" } |
| 103 }; | 99 }; |
| 100 static const VersionRangeDefinition kRealPlayerVersionRange[] = { |
| 101 { "", "", "12.0.1.609" } |
| 102 }; |
| 104 static const PluginGroupDefinition kGroupDefinitions[] = { | 103 static const PluginGroupDefinition kGroupDefinitions[] = { |
| 105 { "apple-quicktime", "Quicktime", "QuickTime Plug-in", kQuicktimeVersionRange, | 104 { "apple-quicktime", "Quicktime", "QuickTime Plug-in", kQuicktimeVersionRange, |
| 106 arraysize(kQuicktimeVersionRange), | 105 arraysize(kQuicktimeVersionRange), |
| 107 "http://www.apple.com/quicktime/download/" }, | 106 "http://www.apple.com/quicktime/download/" }, |
| 108 { "java-runtime-environment", "Java 6", "Java", kJavaVersionRange, | 107 { "java-runtime-environment", "Java 6", "Java", kJavaVersionRange, |
| 109 arraysize(kJavaVersionRange), "http://www.java.com/" }, | 108 arraysize(kJavaVersionRange), "http://www.java.com/" }, |
| 110 { "adobe-reader", PluginGroup::kAdobeReaderGroupName, "Adobe Acrobat", | 109 { "adobe-reader", PluginGroup::kAdobeReaderGroupName, "Adobe Acrobat", |
| 111 kAdobeReaderVersionRange, arraysize(kAdobeReaderVersionRange), | 110 kAdobeReaderVersionRange, arraysize(kAdobeReaderVersionRange), |
| 112 "http://get.adobe.com/reader/" }, | 111 "http://get.adobe.com/reader/" }, |
| 113 { "adobe-flash-player", "Flash", "Shockwave Flash", kFlashVersionRange, | 112 { "adobe-flash-player", "Flash", "Shockwave Flash", kFlashVersionRange, |
| 114 arraysize(kFlashVersionRange), "http://get.adobe.com/flashplayer/" }, | 113 arraysize(kFlashVersionRange), "http://get.adobe.com/flashplayer/" }, |
| 115 { "silverlight", "Silverlight", "Silverlight", kSilverlightVersionRange, | 114 { "silverlight", "Silverlight", "Silverlight", kSilverlightVersionRange, |
| 116 arraysize(kSilverlightVersionRange), | 115 arraysize(kSilverlightVersionRange), |
| 117 "http://www.microsoft.com/getsilverlight/" }, | 116 "http://www.microsoft.com/getsilverlight/" }, |
| 118 { "shockwave", "Shockwave", "Shockwave for Director", kShockwaveVersionRange, | 117 { "shockwave", "Shockwave", "Shockwave for Director", kShockwaveVersionRange, |
| 119 arraysize(kShockwaveVersionRange), | 118 arraysize(kShockwaveVersionRange), |
| 120 "http://www.adobe.com/shockwave/download/" }, | 119 "http://www.adobe.com/shockwave/download/" }, |
| 121 { "divx-player", "DivX Player", "DivX Web Player", kDivXVersionRange, | 120 { "divx-player", "DivX Player", "DivX Web Player", kDivXVersionRange, |
| 122 arraysize(kDivXVersionRange), | 121 arraysize(kDivXVersionRange), |
| 123 "http://download.divx.com/divx/autoupdate/player/" | 122 "http://download.divx.com/divx/autoupdate/player/" |
| 124 "DivXWebPlayerInstaller.exe" }, | 123 "DivXWebPlayerInstaller.exe" }, |
| 124 { "realplayer", "RealPlayer", "RealPlayer", kRealPlayerVersionRange, |
| 125 arraysize(kRealPlayerVersionRange), |
| 126 "http://www.real.com/realplayer" }, |
| 125 // These are here for grouping, no vulnerabilities known. | 127 // These are here for grouping, no vulnerabilities known. |
| 126 { "windows-media-player", "Windows Media Player", "Windows Media Player", | 128 { "windows-media-player", "Windows Media Player", "Windows Media Player", |
| 127 NULL, 0, "" }, | 129 NULL, 0, "" }, |
| 128 { "microsoft-office", "Microsoft Office", "Microsoft Office", | 130 { "microsoft-office", "Microsoft Office", "Microsoft Office", |
| 129 NULL, 0, "" }, | 131 NULL, 0, "" }, |
| 130 // TODO(panayiotis): The vulnerable versions are | |
| 131 // (v >= 6.0.12.1040 && v <= 6.0.12.1663) | |
| 132 // || v == 6.0.12.1698 || v == 6.0.12.1741 | |
| 133 { "realplayer", "RealPlayer", "RealPlayer", NULL, 0, | |
| 134 "www.real.com/realplayer/downloads" }, | |
| 135 }; | 132 }; |
| 136 | 133 |
| 137 #else | 134 #else |
| 138 static const PluginGroupDefinition kGroupDefinitions[] = {}; | 135 static const PluginGroupDefinition kGroupDefinitions[] = {}; |
| 139 #endif | 136 #endif |
| 140 | 137 |
| 141 // static | 138 // static |
| 142 const PluginGroupDefinition* PluginList::GetPluginGroupDefinitions() { | 139 const PluginGroupDefinition* PluginList::GetPluginGroupDefinitions() { |
| 143 return kGroupDefinitions; | 140 return kGroupDefinitions; |
| 144 } | 141 } |
| (...skipping 629 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 774 // However, when running on Valgrind, we need to do the cleanup to keep the | 771 // However, when running on Valgrind, we need to do the cleanup to keep the |
| 775 // memory tree green. | 772 // memory tree green. |
| 776 #if defined(OS_POSIX) | 773 #if defined(OS_POSIX) |
| 777 if (RUNNING_ON_VALGRIND) { | 774 if (RUNNING_ON_VALGRIND) { |
| 778 STLDeleteContainerPairSecondPointers(plugin_groups_.begin(), | 775 STLDeleteContainerPairSecondPointers(plugin_groups_.begin(), |
| 779 plugin_groups_.end()); | 776 plugin_groups_.end()); |
| 780 } | 777 } |
| 781 #endif | 778 #endif |
| 782 } | 779 } |
| 783 | 780 |
| 784 } // namespace npapi | 781 } // namespace NPAPI |
| 785 } // namespace webkit | |
| OLD | NEW |