OLD | NEW |
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 "content/common/plugin_list.h" | 5 #include "content/common/plugin_list.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/file_version_info.h" | 10 #include "base/file_version_info.h" |
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
355 FindClose(find_handle); | 355 FindClose(find_handle); |
356 } | 356 } |
357 | 357 |
358 void PluginList::GetPluginPathsFromRegistry( | 358 void PluginList::GetPluginPathsFromRegistry( |
359 std::vector<base::FilePath>* plugins) { | 359 std::vector<base::FilePath>* plugins) { |
360 if (PluginList::plugins_discovery_disabled_) | 360 if (PluginList::plugins_discovery_disabled_) |
361 return; | 361 return; |
362 | 362 |
363 std::set<base::FilePath> plugin_dirs; | 363 std::set<base::FilePath> plugin_dirs; |
364 | 364 |
| 365 // Search for plugins from HKCU and HKLM. THis will only find plugins that |
| 366 // are correctly registered in the correct WOW64 registry hive. |
365 GetPluginsInRegistryDirectory(HKEY_CURRENT_USER, | 367 GetPluginsInRegistryDirectory(HKEY_CURRENT_USER, |
366 kRegistryMozillaPlugins, | 368 kRegistryMozillaPlugins, |
367 0, | 369 0, |
368 &plugin_dirs); | 370 &plugin_dirs); |
369 GetPluginsInRegistryDirectory(HKEY_LOCAL_MACHINE, | 371 GetPluginsInRegistryDirectory(HKEY_LOCAL_MACHINE, |
370 kRegistryMozillaPlugins, | 372 kRegistryMozillaPlugins, |
371 KEY_WOW64_64KEY, | 373 0, |
372 &plugin_dirs); | |
373 GetPluginsInRegistryDirectory(HKEY_LOCAL_MACHINE, | |
374 kRegistryMozillaPlugins, | |
375 KEY_WOW64_32KEY, | |
376 &plugin_dirs); | 374 &plugin_dirs); |
377 | 375 |
378 for (std::set<base::FilePath>::iterator i = plugin_dirs.begin(); | 376 for (std::set<base::FilePath>::iterator i = plugin_dirs.begin(); |
379 i != plugin_dirs.end(); ++i) { | 377 i != plugin_dirs.end(); ++i) { |
380 plugins->push_back(*i); | 378 plugins->push_back(*i); |
381 } | 379 } |
382 } | 380 } |
383 | 381 |
384 bool PluginList::ShouldLoadPluginUsingPluginList( | 382 bool PluginList::ShouldLoadPluginUsingPluginList( |
385 const WebPluginInfo& info, | 383 const WebPluginInfo& info, |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
481 return false; | 479 return false; |
482 #else | 480 #else |
483 // The plugin in question could be a 64 bit plugin which we cannot load. | 481 // The plugin in question could be a 64 bit plugin which we cannot load. |
484 if (!IsValid32BitImage(base::MakeAbsoluteFilePath(plugin_path))) | 482 if (!IsValid32BitImage(base::MakeAbsoluteFilePath(plugin_path))) |
485 return false; | 483 return false; |
486 #endif | 484 #endif |
487 return true; | 485 return true; |
488 } | 486 } |
489 | 487 |
490 } // namespace content | 488 } // namespace content |
OLD | NEW |