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

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

Issue 5699005: Policy: Re-enabled plugin still disabled (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed unit tests. Created 9 years, 11 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
OLDNEW
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/plugins/npapi/plugin_list.h"
6 6
7 #include <tchar.h> 7 #include <tchar.h>
8 8
9 #include <set> 9 #include <set>
10 10
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 FilePath filename = path.Append(find_file_data.cFileName); 265 FilePath filename = path.Append(find_file_data.cFileName);
266 LoadPlugin(filename, plugins); 266 LoadPlugin(filename, plugins);
267 visited_plugins->insert(filename); 267 visited_plugins->insert(filename);
268 } 268 }
269 } while (FindNextFile(find_handle, &find_file_data) != 0); 269 } while (FindNextFile(find_handle, &find_file_data) != 0);
270 270
271 DCHECK(GetLastError() == ERROR_NO_MORE_FILES); 271 DCHECK(GetLastError() == ERROR_NO_MORE_FILES);
272 FindClose(find_handle); 272 FindClose(find_handle);
273 } 273 }
274 274
275 void PluginList::LoadPluginsFromRegistry( 275 void PluginList::LoadPluginsFromRegistry(std::vector<WebPluginInfo>* plugins,
276 std::vector<WebPluginInfo>* plugins, 276 std::set<FilePath>* visited_plugins) {
277 std::set<FilePath>* visited_plugins) {
278 std::set<FilePath> plugin_dirs; 277 std::set<FilePath> plugin_dirs;
279 278
280 GetPluginsInRegistryDirectory( 279 GetPluginsInRegistryDirectory(
281 HKEY_CURRENT_USER, kRegistryMozillaPlugins, &plugin_dirs); 280 HKEY_CURRENT_USER, kRegistryMozillaPlugins, &plugin_dirs);
282 GetPluginsInRegistryDirectory( 281 GetPluginsInRegistryDirectory(
283 HKEY_LOCAL_MACHINE, kRegistryMozillaPlugins, &plugin_dirs); 282 HKEY_LOCAL_MACHINE, kRegistryMozillaPlugins, &plugin_dirs);
284 283
285 for (std::set<FilePath>::iterator i = plugin_dirs.begin(); 284 for (std::set<FilePath>::iterator i = plugin_dirs.begin();
286 i != plugin_dirs.end(); ++i) { 285 i != plugin_dirs.end(); ++i) {
287 LoadPlugin(*i, plugins); 286 LoadPlugin(*i, plugins);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 } 329 }
331 return false; 330 return false;
332 } 331 }
333 332
334 bool PluginList::ShouldLoadPlugin(const WebPluginInfo& info, 333 bool PluginList::ShouldLoadPlugin(const WebPluginInfo& info,
335 std::vector<WebPluginInfo>* plugins) { 334 std::vector<WebPluginInfo>* plugins) {
336 // Version check 335 // Version check
337 336
338 for (size_t i = 0; i < plugins->size(); ++i) { 337 for (size_t i = 0; i < plugins->size(); ++i) {
339 std::wstring plugin1 = 338 std::wstring plugin1 =
340 StringToLowerASCII((*plugins)[i].path.BaseName().ToWStringHack()); 339 StringToLowerASCII(plugins->at(i).path.BaseName().ToWStringHack());
341 std::wstring plugin2 = 340 std::wstring plugin2 =
342 StringToLowerASCII(info.path.BaseName().ToWStringHack()); 341 StringToLowerASCII(info.path.BaseName().ToWStringHack());
343 if ((plugin1 == plugin2 && HaveSharedMimeType((*plugins)[i], info)) || 342 if ((plugin1 == plugin2 && HaveSharedMimeType(plugins->at(i), info)) ||
344 (plugin1 == kJavaDeploy1 && plugin2 == kJavaDeploy2) || 343 (plugin1 == kJavaDeploy1 && plugin2 == kJavaDeploy2) ||
345 (plugin1 == kJavaDeploy2 && plugin2 == kJavaDeploy1)) { 344 (plugin1 == kJavaDeploy2 && plugin2 == kJavaDeploy1)) {
346 if (!IsNewerVersion((*plugins)[i].version, info.version)) 345 if (!IsNewerVersion(plugins->at(i).version, info.version))
347 return false; // We have loaded a plugin whose version is newer. 346 return false; // We have loaded a plugin whose version is newer.
348 347
349 plugins->erase(plugins->begin() + i); 348 plugins->erase(plugins->begin() + i);
350 break; 349 break;
351 } 350 }
352 } 351 }
353 352
354 // Troublemakers 353 // Troublemakers
355 354
356 std::wstring filename = StringToLowerASCII(info.path.BaseName().value()); 355 std::wstring filename = StringToLowerASCII(info.path.BaseName().value());
(...skipping 30 matching lines...) Expand all
387 } 386 }
388 387
389 // Special WMP handling 388 // Special WMP handling
390 389
391 // If both the new and old WMP plugins exist, only load the new one. 390 // If both the new and old WMP plugins exist, only load the new one.
392 if (filename == kNewWMPPlugin) { 391 if (filename == kNewWMPPlugin) {
393 if (dont_load_new_wmp_) 392 if (dont_load_new_wmp_)
394 return false; 393 return false;
395 394
396 for (size_t i = 0; i < plugins->size(); ++i) { 395 for (size_t i = 0; i < plugins->size(); ++i) {
397 if ((*plugins)[i].path.BaseName().value() == kOldWMPPlugin) { 396 if (plugins->at(i).path.BaseName().value() == kOldWMPPlugin) {
398 plugins->erase(plugins->begin() + i); 397 plugins->erase(plugins->begin() + i);
399 break; 398 break;
400 } 399 }
401 } 400 }
402 } else if (filename == kOldWMPPlugin) { 401 } else if (filename == kOldWMPPlugin) {
403 for (size_t i = 0; i < plugins->size(); ++i) { 402 for (size_t i = 0; i < plugins->size(); ++i) {
404 if ((*plugins)[i].path.BaseName().value() == kNewWMPPlugin) 403 if (plugins->at(i).path.BaseName().value() == kNewWMPPlugin)
405 return false; 404 return false;
406 } 405 }
407 } 406 }
408 407
409 return true; 408 return true;
410 } 409 }
411 410
412 } // namespace npapi 411 } // namespace npapi
413 } // namespace webkit 412 } // namespace webkit
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698