summaryrefslogtreecommitdiffstats
path: root/webkit/glue/plugins
diff options
context:
space:
mode:
authorjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-18 18:22:00 +0000
committerjam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-18 18:22:00 +0000
commitbf5b205429537f0a2e70ca1f83929b52e263018b (patch)
tree1e38008ea466a019c652aed067b48fd98f7fa3ab /webkit/glue/plugins
parentfc97bc58d378f86911ed097306382c5da9342753 (diff)
downloadchromium_src-bf5b205429537f0a2e70ca1f83929b52e263018b.zip
chromium_src-bf5b205429537f0a2e70ca1f83929b52e263018b.tar.gz
chromium_src-bf5b205429537f0a2e70ca1f83929b52e263018b.tar.bz2
Look for the WMP plugin in the directory that it's left in if Firefox isn't installed.
BUG=22077 TEST=on a machine without Firefox, install the WMP NPAPI plugin and ensure that Chrome finds it Review URL: http://codereview.chromium.org/214018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26594 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/plugins')
-rw-r--r--webkit/glue/plugins/plugin_list_win.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/webkit/glue/plugins/plugin_list_win.cc b/webkit/glue/plugins/plugin_list_win.cc
index 9873691..9576238 100644
--- a/webkit/glue/plugins/plugin_list_win.cc
+++ b/webkit/glue/plugins/plugin_list_win.cc
@@ -8,8 +8,10 @@
#include "base/basictypes.h"
#include "base/command_line.h"
+#include "base/file_util.h"
#include "base/path_service.h"
#include "base/registry.h"
+#include "base/scoped_ptr.h"
#include "base/string_util.h"
#include "webkit/glue/plugins/plugin_constants_win.h"
#include "webkit/glue/plugins/plugin_lib.h"
@@ -149,6 +151,26 @@ void GetWindowsMediaDirectory(std::set<FilePath>* plugin_dirs) {
FilePath path;
if (GetInstalledPath(kRegistryWindowsMedia, &path))
plugin_dirs->insert(path);
+
+ // If the Windows Media Player Firefox plugin is installed before Firefox,
+ // the plugin will get written under PFiles\Plugins on one the drives
+ // (usually, but not always, the last letter).
+ int size = GetLogicalDriveStrings(0, NULL);
+ if (size) {
+ scoped_array<wchar_t> strings(new wchar_t[size]);
+ if (GetLogicalDriveStrings(size, strings.get())) {
+ wchar_t* next_drive = strings.get();
+ while (*next_drive) {
+ if (GetDriveType(next_drive) == DRIVE_FIXED) {
+ FilePath pfiles(next_drive);
+ pfiles = pfiles.Append(L"PFiles\\Plugins");
+ if (file_util::PathExists(pfiles))
+ plugin_dirs->insert(pfiles);
+ }
+ next_drive = &next_drive[wcslen(next_drive) + 1];
+ }
+ }
+ }
}
// Hardcoded logic to detect Java plugin location.