Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Side by Side Diff: webkit/plugins/npapi/plugin_list.cc

Issue 9537014: Merge a bunch of CLs to whitelist the Google Talk plug-in when turning on click-to-play. (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1025/src
Patch Set: sync Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/common/pref_names.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/plugins/npapi/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"
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 return allow; 48 return allow;
49 } 49 }
50 50
51 } 51 }
52 52
53 namespace webkit { 53 namespace webkit {
54 namespace npapi { 54 namespace npapi {
55 55
56 // Some version ranges can be shared across operating systems. This should be 56 // Some version ranges can be shared across operating systems. This should be
57 // done where possible to avoid duplication. 57 // done where possible to avoid duplication.
58 // TODO(bauerb): The |requires_authorization| flag should be part of
59 // PluginGroupDefinition, not VersionRangeDefinition.
60 static const VersionRangeDefinition kAllVersionsInfobarVersionRange[] = {
61 { "", "", "", true }
62 };
63
64 static const VersionRangeDefinition kAllVersionsNoInfobarVersionRange[] = {
65 { "", "", "", false }
66 };
67
58 // This is up to date with 68 // This is up to date with
59 // http://www.adobe.com/support/security/bulletins/apsb11-26.html 69 // http://www.adobe.com/support/security/bulletins/apsb11-26.html
60 static const VersionRangeDefinition kFlashVersionRange[] = { 70 static const VersionRangeDefinition kFlashVersionRange[] = {
61 { "", "", "10.3.183", false } 71 { "", "", "10.3.183", false }
62 }; 72 };
63 // This is up to date with 73 // This is up to date with
64 // http://www.adobe.com/support/security/bulletins/apsb11-19.html 74 // http://www.adobe.com/support/security/bulletins/apsb11-19.html
65 static const VersionRangeDefinition kShockwaveVersionRange[] = { 75 static const VersionRangeDefinition kShockwaveVersionRange[] = {
66 { "", "", "11.6.1.629", true } 76 { "", "", "11.6.1.629", true }
67 }; 77 };
(...skipping 11 matching lines...) Expand all
79 #define kShockwaveDefinition { \ 89 #define kShockwaveDefinition { \
80 "shockwave", PluginGroup::kShockwaveGroupName, "Shockwave for Director", \ 90 "shockwave", PluginGroup::kShockwaveGroupName, "Shockwave for Director", \
81 kShockwaveVersionRange, arraysize(kShockwaveVersionRange), \ 91 kShockwaveVersionRange, arraysize(kShockwaveVersionRange), \
82 "http://www.adobe.com/shockwave/download/" } 92 "http://www.adobe.com/shockwave/download/" }
83 93
84 #define kSilverlightDefinition { \ 94 #define kSilverlightDefinition { \
85 "silverlight", PluginGroup::kSilverlightGroupName, "Silverlight", \ 95 "silverlight", PluginGroup::kSilverlightGroupName, "Silverlight", \
86 kSilverlightVersionRange, arraysize(kSilverlightVersionRange), \ 96 kSilverlightVersionRange, arraysize(kSilverlightVersionRange), \
87 "http://www.microsoft.com/getsilverlight/" } 97 "http://www.microsoft.com/getsilverlight/" }
88 98
99 #define kChromePdfDefinition { \
100 "google-chrome-pdf", "Chrome PDF Viewer", "Chrome PDF Viewer", \
101 kAllVersionsNoInfobarVersionRange, \
102 arraysize(kAllVersionsNoInfobarVersionRange), "" }
103
104 #define kGoogleTalkDefinition { \
105 "google-talk", "Google Talk NPAPI Plugin", "Google Talk NPAPI Plugin", \
106 kAllVersionsNoInfobarVersionRange, \
107 arraysize(kAllVersionsNoInfobarVersionRange), ""}
108
89 #if defined(OS_MACOSX) 109 #if defined(OS_MACOSX)
90 // Plugin Groups for Mac. 110 // Plugin Groups for Mac.
91 // Plugins are listed here as soon as vulnerabilities and solutions 111 // Plugins are listed here as soon as vulnerabilities and solutions
92 // (new versions) are published. 112 // (new versions) are published.
93 static const VersionRangeDefinition kQuicktimeVersionRange[] = { 113 static const VersionRangeDefinition kQuicktimeVersionRange[] = {
94 { "", "", "7.6.6", true } 114 { "", "", "7.6.6", true }
95 }; 115 };
96 static const VersionRangeDefinition kJavaVersionRange[] = { 116 static const VersionRangeDefinition kJavaVersionRange[] = {
97 { "0", "13.0", "12.8.0", true }, // Leopard 117 { "0", "13.0", "12.8.0", true }, // Leopard
98 { "13.0", "14.0", "13.5.0", true }, // Snow Leopard 118 { "13.0", "14.0", "13.5.0", true }, // Snow Leopard
99 { "14.0", "", "14.0.3", true } // Lion 119 { "14.0", "", "14.0.3", true } // Lion
100 }; 120 };
101 static const VersionRangeDefinition kFlip4MacVersionRange[] = { 121 static const VersionRangeDefinition kFlip4MacVersionRange[] = {
102 { "", "", "2.2.1", true } 122 { "", "", "2.2.1", true }
103 }; 123 };
104 // Note: The Adobe Reader browser plug-in is not supported in Chrome. 124 // Note: The Adobe Reader browser plug-in is not supported in Chrome.
105 // Note: The Real Player plugin for mac doesn't expose a version at all. 125 // Note: The Real Player plugin for mac doesn't expose a version at all.
106 static const PluginGroupDefinition kGroupDefinitions[] = { 126 static const PluginGroupDefinition kGroupDefinitions[] = {
107 kFlashDefinition, 127 kFlashDefinition,
108 { "apple-quicktime", PluginGroup::kQuickTimeGroupName, "QuickTime Plug-in", 128 { "apple-quicktime", PluginGroup::kQuickTimeGroupName, "QuickTime Plug-in",
109 kQuicktimeVersionRange, arraysize(kQuicktimeVersionRange), 129 kQuicktimeVersionRange, arraysize(kQuicktimeVersionRange),
110 "http://www.apple.com/quicktime/download/" }, 130 "http://www.apple.com/quicktime/download/" },
111 { "java-runtime-environment", PluginGroup::kJavaGroupName, "Java", 131 { "java-runtime-environment", PluginGroup::kJavaGroupName, "Java",
112 kJavaVersionRange, arraysize(kJavaVersionRange), 132 kJavaVersionRange, arraysize(kJavaVersionRange),
113 "http://support.apple.com/kb/HT1338" }, 133 "http://support.apple.com/kb/HT1338" },
114 kSilverlightDefinition, 134 kSilverlightDefinition,
115 { "flip4mac", "Flip4Mac", "Flip4Mac", kFlip4MacVersionRange, 135 { "flip4mac", "Flip4Mac", "Flip4Mac", kFlip4MacVersionRange,
116 arraysize(kFlip4MacVersionRange), 136 arraysize(kFlip4MacVersionRange),
117 "http://www.telestream.net/flip4mac-wmv/overview.htm" }, 137 "http://www.telestream.net/flip4mac-wmv/overview.htm" },
118 kShockwaveDefinition 138 kShockwaveDefinition,
139 kChromePdfDefinition,
140 kGoogleTalkDefinition,
119 }; 141 };
120 142
121 #elif defined(OS_WIN) 143 #elif defined(OS_WIN)
122 // TODO(panayiotis): We should group "RealJukebox NS Plugin" with the rest of 144 // TODO(panayiotis): We should group "RealJukebox NS Plugin" with the rest of
123 // the RealPlayer files. 145 // the RealPlayer files.
124 static const VersionRangeDefinition kQuicktimeVersionRange[] = { 146 static const VersionRangeDefinition kQuicktimeVersionRange[] = {
125 { "", "", "7.6.9", true } 147 { "", "", "7.6.9", true }
126 }; 148 };
127 static const VersionRangeDefinition kJavaVersionRange[] = { 149 static const VersionRangeDefinition kJavaVersionRange[] = {
128 { "0", "7", "6.0.310", true }, // "310" is not a typo. 150 { "0", "7", "6.0.310", true }, // "310" is not a typo.
129 { "7", "", "10.3", true } // JDK7u3 identifies itself as 10.3 151 { "7", "", "10.3", true } // JDK7u3 identifies itself as 10.3
130 }; 152 };
131 // This is up to date with 153 // This is up to date with
132 // http://www.adobe.com/support/security/bulletins/apsb11-24.html 154 // http://www.adobe.com/support/security/bulletins/apsb11-24.html
133 static const VersionRangeDefinition kAdobeReaderVersionRange[] = { 155 static const VersionRangeDefinition kAdobeReaderVersionRange[] = {
134 { "10", "11", "10.1.1", false }, 156 { "10", "11", "10.1.1", false },
135 { "9", "10", "9.4.6", false }, 157 { "9", "10", "9.4.6", false },
136 { "0", "9", "8.3.1", false } 158 { "0", "9", "8.3.1", false }
137 }; 159 };
138 static const VersionRangeDefinition kDivXVersionRange[] = { 160 static const VersionRangeDefinition kDivXVersionRange[] = {
139 { "", "", "1.4.3.4", false } 161 { "", "", "1.4.3.4", false }
140 }; 162 };
141 static const VersionRangeDefinition kRealPlayerVersionRange[] = { 163 static const VersionRangeDefinition kRealPlayerVersionRange[] = {
142 { "", "", "12.0.1.666", true } 164 { "", "", "12.0.1.666", true }
143 }; 165 };
144 static const VersionRangeDefinition kWindowsMediaPlayerVersionRange[] = {
145 { "", "", "", true }
146 };
147 static const VersionRangeDefinition kNvidia3DVersionRange[] = {
148 { "", "", "", true }
149 };
150 static const PluginGroupDefinition kGroupDefinitions[] = { 166 static const PluginGroupDefinition kGroupDefinitions[] = {
151 kFlashDefinition, 167 kFlashDefinition,
152 { "apple-quicktime", PluginGroup::kQuickTimeGroupName, "QuickTime Plug-in", 168 { "apple-quicktime", PluginGroup::kQuickTimeGroupName, "QuickTime Plug-in",
153 kQuicktimeVersionRange, arraysize(kQuicktimeVersionRange), 169 kQuicktimeVersionRange, arraysize(kQuicktimeVersionRange),
154 "http://www.apple.com/quicktime/download/" }, 170 "http://www.apple.com/quicktime/download/" },
155 { "java-runtime-environment", PluginGroup::kJavaGroupName, "Java", 171 { "java-runtime-environment", PluginGroup::kJavaGroupName, "Java",
156 kJavaVersionRange, arraysize(kJavaVersionRange), 172 kJavaVersionRange, arraysize(kJavaVersionRange),
157 "http://www.java.com/download" }, 173 "http://www.java.com/download" },
158 { "adobe-reader", PluginGroup::kAdobeReaderGroupName, "Adobe Acrobat", 174 { "adobe-reader", PluginGroup::kAdobeReaderGroupName, "Adobe Acrobat",
159 kAdobeReaderVersionRange, arraysize(kAdobeReaderVersionRange), 175 kAdobeReaderVersionRange, arraysize(kAdobeReaderVersionRange),
160 "http://get.adobe.com/reader/" }, 176 "http://get.adobe.com/reader/" },
161 kSilverlightDefinition, 177 kSilverlightDefinition,
162 kShockwaveDefinition, 178 kShockwaveDefinition,
163 { "divx-player", "DivX Player", "DivX Web Player", kDivXVersionRange, 179 { "divx-player", "DivX Player", "DivX Web Player", kDivXVersionRange,
164 arraysize(kDivXVersionRange), 180 arraysize(kDivXVersionRange),
165 "http://download.divx.com/divx/autoupdate/player/" 181 "http://download.divx.com/divx/autoupdate/player/"
166 "DivXWebPlayerInstaller.exe" }, 182 "DivXWebPlayerInstaller.exe" },
167 { "realplayer", PluginGroup::kRealPlayerGroupName, "RealPlayer", 183 { "realplayer", PluginGroup::kRealPlayerGroupName, "RealPlayer",
168 kRealPlayerVersionRange, arraysize(kRealPlayerVersionRange), 184 kRealPlayerVersionRange, arraysize(kRealPlayerVersionRange),
169 "http://www.real.com/realplayer/download" }, 185 "http://www.real.com/realplayer/download" },
170 // These are here for grouping, no vulnerabilities known. 186 // These are here for grouping, no vulnerabilities known.
171 { "windows-media-player", PluginGroup::kWindowsMediaPlayerGroupName, 187 { "windows-media-player", PluginGroup::kWindowsMediaPlayerGroupName,
172 "Windows Media Player", kWindowsMediaPlayerVersionRange, 188 "Windows Media Player", kAllVersionsInfobarVersionRange,
173 arraysize(kWindowsMediaPlayerVersionRange), "" }, 189 arraysize(kAllVersionsInfobarVersionRange), "" },
174 { "microsoft-office", "Microsoft Office", "Microsoft Office", 190 { "microsoft-office", "Microsoft Office", "Microsoft Office",
175 NULL, 0, "" }, 191 NULL, 0, "" },
176 { "nvidia-3d", "NVIDIA 3D", "NVIDIA 3D", kNvidia3DVersionRange, 192 { "nvidia-3d", "NVIDIA 3D", "NVIDIA 3D", kAllVersionsInfobarVersionRange,
177 arraysize(kNvidia3DVersionRange), "" }, 193 arraysize(kAllVersionsInfobarVersionRange), "" },
194 kChromePdfDefinition,
195 kGoogleTalkDefinition,
178 }; 196 };
179 197
180 #elif defined(OS_CHROMEOS) 198 #elif defined(OS_CHROMEOS)
181 // ChromeOS generally has (autoupdated) system plug-ins and no user-installable 199 // ChromeOS generally has (autoupdated) system plug-ins and no user-installable
182 // plug-ins. 200 // plug-ins, so we just use these definitions for grouping.
183 static const PluginGroupDefinition kGroupDefinitions[] = { }; 201 static const PluginGroupDefinition kGroupDefinitions[] = {
202 kFlashDefinition,
203 kChromePdfDefinition,
204 };
184 205
185 #else // Most importantly, covers desktop Linux. 206 #else // Most importantly, covers desktop Linux.
186 static const VersionRangeDefinition kJavaVersionRange[] = { 207 static const VersionRangeDefinition kJavaVersionRange[] = {
187 { "0", "1.7", "1.6.0.29", true }, 208 { "0", "1.7", "1.6.0.29", true },
188 { "1.7", "", "1.7.0.1", true } 209 { "1.7", "", "1.7.0.1", true }
189 }; 210 };
190 211
191 static const VersionRangeDefinition kRedhatIcedTeaVersionRange[] = { 212 static const VersionRangeDefinition kRedhatIcedTeaVersionRange[] = {
192 { "0", "1.9", "1.8.10", true }, 213 { "0", "1.9", "1.8.10", true },
193 { "1.9", "1.10", "1.9.10", true }, 214 { "1.9", "1.10", "1.9.10", true },
194 { "1.10", "", "1.10.4", true } 215 { "1.10", "", "1.10.4", true }
195 }; 216 };
196 217
197 static const PluginGroupDefinition kGroupDefinitions[] = { 218 static const PluginGroupDefinition kGroupDefinitions[] = {
198 // Flash on Linux is significant because there isn't yet a built-in Flash 219 // Flash on Linux is significant because there isn't yet a built-in Flash
199 // plug-in on the Linux 64-bit version of Chrome. 220 // plug-in on the Linux 64-bit version of Chrome.
200 kFlashDefinition, 221 kFlashDefinition,
201 { "java-runtime-environment", PluginGroup::kJavaGroupName, "Java", 222 { "java-runtime-environment", PluginGroup::kJavaGroupName, "Java",
202 kJavaVersionRange, arraysize(kJavaVersionRange), 223 kJavaVersionRange, arraysize(kJavaVersionRange),
203 "http://www.java.com/en/download/manual.jsp" }, 224 "http://www.java.com/en/download/manual.jsp" },
204 { "redhat-icetea-java", "IcedTea", "IcedTea", 225 { "redhat-icetea-java", "IcedTea", "IcedTea",
205 kRedhatIcedTeaVersionRange, arraysize(kRedhatIcedTeaVersionRange), 226 kRedhatIcedTeaVersionRange, arraysize(kRedhatIcedTeaVersionRange),
206 "http://www.linuxsecurity.com/content/section/3/170/" }, 227 "http://www.linuxsecurity.com/content/section/3/170/" },
228 kChromePdfDefinition,
229 kGoogleTalkDefinition,
207 }; 230 };
208 #endif 231 #endif
209 232
210 // static 233 // static
211 PluginList* PluginList::Singleton() { 234 PluginList* PluginList::Singleton() {
212 return g_singleton.Pointer(); 235 return g_singleton.Pointer();
213 } 236 }
214 237
215 // static 238 // static
216 bool PluginList::DebugPluginLoading() { 239 bool PluginList::DebugPluginLoading() {
(...skipping 484 matching lines...) Expand 10 before | Expand all | Expand 10 after
701 } 724 }
702 return false; 725 return false;
703 } 726 }
704 727
705 PluginList::~PluginList() { 728 PluginList::~PluginList() {
706 } 729 }
707 730
708 731
709 } // namespace npapi 732 } // namespace npapi
710 } // namespace webkit 733 } // namespace webkit
OLDNEW
« no previous file with comments | « chrome/common/pref_names.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698