diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-18 18:22:00 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-18 18:22:00 +0000 |
commit | bf5b205429537f0a2e70ca1f83929b52e263018b (patch) | |
tree | 1e38008ea466a019c652aed067b48fd98f7fa3ab /webkit/glue/plugins | |
parent | fc97bc58d378f86911ed097306382c5da9342753 (diff) | |
download | chromium_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.cc | 22 |
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. |