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

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

Issue 13219005: Replace string16 with base::string16 in src/webkit (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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
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 <set> 7 #include <set>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 // Path is an output parameter to receive the path. 63 // Path is an output parameter to receive the path.
64 void GetExeDirectory(std::set<base::FilePath>* plugin_dirs) { 64 void GetExeDirectory(std::set<base::FilePath>* plugin_dirs) {
65 base::FilePath exe_path; 65 base::FilePath exe_path;
66 if (!PathService::Get(base::DIR_EXE, &exe_path)) 66 if (!PathService::Get(base::DIR_EXE, &exe_path))
67 return; 67 return;
68 plugin_dirs->insert(AppendPluginsDir(exe_path)); 68 plugin_dirs->insert(AppendPluginsDir(exe_path));
69 } 69 }
70 70
71 // Gets the installed path for a registered app. 71 // Gets the installed path for a registered app.
72 bool GetInstalledPath(const char16* app, base::FilePath* out) { 72 bool GetInstalledPath(const char16* app, base::FilePath* out) {
73 string16 reg_path(kRegistryApps); 73 base::string16 reg_path(kRegistryApps);
74 reg_path.append(L"\\"); 74 reg_path.append(L"\\");
75 reg_path.append(app); 75 reg_path.append(app);
76 76
77 base::win::RegKey hkcu_key(HKEY_CURRENT_USER, reg_path.c_str(), KEY_READ); 77 base::win::RegKey hkcu_key(HKEY_CURRENT_USER, reg_path.c_str(), KEY_READ);
78 string16 path; 78 base::string16 path;
79 // As of Win7 AppPaths can also be registered in HKCU: http://goo.gl/UgFOf. 79 // As of Win7 AppPaths can also be registered in HKCU: http://goo.gl/UgFOf.
80 if (base::win::GetVersion() >= base::win::VERSION_WIN7 && 80 if (base::win::GetVersion() >= base::win::VERSION_WIN7 &&
81 hkcu_key.ReadValue(kRegistryPath, &path) == ERROR_SUCCESS) { 81 hkcu_key.ReadValue(kRegistryPath, &path) == ERROR_SUCCESS) {
82 *out = base::FilePath(path); 82 *out = base::FilePath(path);
83 return true; 83 return true;
84 } else { 84 } else {
85 base::win::RegKey hklm_key(HKEY_LOCAL_MACHINE, reg_path.c_str(), KEY_READ); 85 base::win::RegKey hklm_key(HKEY_LOCAL_MACHINE, reg_path.c_str(), KEY_READ);
86 if (hklm_key.ReadValue(kRegistryPath, &path) == ERROR_SUCCESS) { 86 if (hklm_key.ReadValue(kRegistryPath, &path) == ERROR_SUCCESS) {
87 *out = base::FilePath(path); 87 *out = base::FilePath(path);
88 return true; 88 return true;
89 } 89 }
90 } 90 }
91 91
92 return false; 92 return false;
93 } 93 }
94 94
95 // Search the registry at the given path and detect plugin directories. 95 // Search the registry at the given path and detect plugin directories.
96 void GetPluginsInRegistryDirectory( 96 void GetPluginsInRegistryDirectory(
97 HKEY root_key, 97 HKEY root_key,
98 const string16& registry_folder, 98 const base::string16& registry_folder,
99 std::set<base::FilePath>* plugin_dirs) { 99 std::set<base::FilePath>* plugin_dirs) {
100 for (base::win::RegistryKeyIterator iter(root_key, registry_folder.c_str()); 100 for (base::win::RegistryKeyIterator iter(root_key, registry_folder.c_str());
101 iter.Valid(); ++iter) { 101 iter.Valid(); ++iter) {
102 // Use the registry to gather plugin across the file system. 102 // Use the registry to gather plugin across the file system.
103 string16 reg_path = registry_folder; 103 base::string16 reg_path = registry_folder;
104 reg_path.append(L"\\"); 104 reg_path.append(L"\\");
105 reg_path.append(iter.Name()); 105 reg_path.append(iter.Name());
106 base::win::RegKey key(root_key, reg_path.c_str(), KEY_READ); 106 base::win::RegKey key(root_key, reg_path.c_str(), KEY_READ);
107 107
108 string16 path; 108 base::string16 path;
109 if (key.ReadValue(kRegistryPath, &path) == ERROR_SUCCESS) 109 if (key.ReadValue(kRegistryPath, &path) == ERROR_SUCCESS)
110 plugin_dirs->insert(base::FilePath(path)); 110 plugin_dirs->insert(base::FilePath(path));
111 } 111 }
112 } 112 }
113 113
114 // Enumerate through the registry key to find all installed FireFox paths. 114 // Enumerate through the registry key to find all installed FireFox paths.
115 // FireFox 3 beta and version 2 can coexist. See bug: 1025003 115 // FireFox 3 beta and version 2 can coexist. See bug: 1025003
116 void GetFirefoxInstalledPaths(std::vector<base::FilePath>* out) { 116 void GetFirefoxInstalledPaths(std::vector<base::FilePath>* out) {
117 base::win::RegistryKeyIterator it(HKEY_LOCAL_MACHINE, 117 base::win::RegistryKeyIterator it(HKEY_LOCAL_MACHINE,
118 kRegistryFirefoxInstalled); 118 kRegistryFirefoxInstalled);
119 for (; it.Valid(); ++it) { 119 for (; it.Valid(); ++it) {
120 string16 full_path = string16(kRegistryFirefoxInstalled) + L"\\" + 120 base::string16 full_path = base::string16(kRegistryFirefoxInstalled) +
121 it.Name() + L"\\Main"; 121 L"\\" + it.Name() + L"\\Main";
122 base::win::RegKey key(HKEY_LOCAL_MACHINE, full_path.c_str(), KEY_READ); 122 base::win::RegKey key(HKEY_LOCAL_MACHINE, full_path.c_str(), KEY_READ);
123 string16 install_dir; 123 base::string16 install_dir;
124 if (key.ReadValue(L"Install Directory", &install_dir) != ERROR_SUCCESS) 124 if (key.ReadValue(L"Install Directory", &install_dir) != ERROR_SUCCESS)
125 continue; 125 continue;
126 out->push_back(base::FilePath(install_dir)); 126 out->push_back(base::FilePath(install_dir));
127 } 127 }
128 } 128 }
129 129
130 // Get plugin directory locations from the Firefox install path. This is kind 130 // Get plugin directory locations from the Firefox install path. This is kind
131 // of a kludge, but it helps us locate the flash player for users that 131 // of a kludge, but it helps us locate the flash player for users that
132 // already have it for firefox. Not having to download yet-another-plugin 132 // already have it for firefox. Not having to download yet-another-plugin
133 // is a good thing. 133 // is a good thing.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 } 172 }
173 173
174 // Hardcoded logic to detect Java plugin location. 174 // Hardcoded logic to detect Java plugin location.
175 void GetJavaDirectory(std::set<base::FilePath>* plugin_dirs) { 175 void GetJavaDirectory(std::set<base::FilePath>* plugin_dirs) {
176 // Load the new NPAPI Java plugin 176 // Load the new NPAPI Java plugin
177 // 1. Open the main JRE key under HKLM 177 // 1. Open the main JRE key under HKLM
178 base::win::RegKey java_key(HKEY_LOCAL_MACHINE, kRegistryJava, 178 base::win::RegKey java_key(HKEY_LOCAL_MACHINE, kRegistryJava,
179 KEY_QUERY_VALUE); 179 KEY_QUERY_VALUE);
180 180
181 // 2. Read the current Java version 181 // 2. Read the current Java version
182 string16 java_version; 182 base::string16 java_version;
183 if (java_key.ReadValue(kRegistryBrowserJavaVersion, &java_version) != 183 if (java_key.ReadValue(kRegistryBrowserJavaVersion, &java_version) !=
184 ERROR_SUCCESS) { 184 ERROR_SUCCESS) {
185 java_key.ReadValue(kRegistryCurrentJavaVersion, &java_version); 185 java_key.ReadValue(kRegistryCurrentJavaVersion, &java_version);
186 } 186 }
187 187
188 if (!java_version.empty()) { 188 if (!java_version.empty()) {
189 java_key.OpenKey(java_version.c_str(), KEY_QUERY_VALUE); 189 java_key.OpenKey(java_version.c_str(), KEY_QUERY_VALUE);
190 190
191 // 3. Install path of the JRE binaries is specified in "JavaHome" 191 // 3. Install path of the JRE binaries is specified in "JavaHome"
192 // value under the Java version key. 192 // value under the Java version key.
193 string16 java_plugin_directory; 193 base::string16 java_plugin_directory;
194 if (java_key.ReadValue(kRegistryJavaHome, &java_plugin_directory) == 194 if (java_key.ReadValue(kRegistryJavaHome, &java_plugin_directory) ==
195 ERROR_SUCCESS) { 195 ERROR_SUCCESS) {
196 // 4. The new plugin resides under the 'bin/new_plugin' 196 // 4. The new plugin resides under the 'bin/new_plugin'
197 // subdirectory. 197 // subdirectory.
198 DCHECK(!java_plugin_directory.empty()); 198 DCHECK(!java_plugin_directory.empty());
199 java_plugin_directory.append(L"\\bin\\new_plugin"); 199 java_plugin_directory.append(L"\\bin\\new_plugin");
200 200
201 // 5. We don't know the exact name of the DLL but it's in the form 201 // 5. We don't know the exact name of the DLL but it's in the form
202 // NP*.dll so just invoke LoadPlugins on this path. 202 // NP*.dll so just invoke LoadPlugins on this path.
203 plugin_dirs->insert(base::FilePath(java_plugin_directory)); 203 plugin_dirs->insert(base::FilePath(java_plugin_directory));
(...skipping 23 matching lines...) Expand all
227 if (plugin1.mime_types[i].mime_type == plugin2.mime_types[j].mime_type) 227 if (plugin1.mime_types[i].mime_type == plugin2.mime_types[j].mime_type)
228 return true; 228 return true;
229 } 229 }
230 } 230 }
231 231
232 return false; 232 return false;
233 } 233 }
234 234
235 // Compares Windows style version strings (i.e. 1,2,3,4). Returns true if b's 235 // Compares Windows style version strings (i.e. 1,2,3,4). Returns true if b's
236 // version is newer than a's, or false if it's equal or older. 236 // version is newer than a's, or false if it's equal or older.
237 bool IsNewerVersion(const string16& a, const string16& b) { 237 bool IsNewerVersion(const base::string16& a, const base::string16& b) {
238 std::vector<string16> a_ver, b_ver; 238 std::vector<base::string16> a_ver, b_ver;
239 base::SplitString(a, ',', &a_ver); 239 base::SplitString(a, ',', &a_ver);
240 base::SplitString(b, ',', &b_ver); 240 base::SplitString(b, ',', &b_ver);
241 if (a_ver.size() == 1 && b_ver.size() == 1) { 241 if (a_ver.size() == 1 && b_ver.size() == 1) {
242 base::SplitString(a, '.', &a_ver); 242 base::SplitString(a, '.', &a_ver);
243 base::SplitString(b, '.', &b_ver); 243 base::SplitString(b, '.', &b_ver);
244 } 244 }
245 if (a_ver.size() != b_ver.size()) 245 if (a_ver.size() != b_ver.size())
246 return false; 246 return false;
247 for (size_t i = 0; i < a_ver.size(); i++) { 247 for (size_t i = 0; i < a_ver.size(); i++) {
248 int cur_a, cur_b; 248 int cur_a, cur_b;
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 292
293 for (std::set<base::FilePath>::iterator i = dirs.begin(); i != dirs.end(); ++i ) 293 for (std::set<base::FilePath>::iterator i = dirs.begin(); i != dirs.end(); ++i )
294 plugin_dirs->push_back(*i); 294 plugin_dirs->push_back(*i);
295 } 295 }
296 296
297 void PluginList::GetPluginsInDir( 297 void PluginList::GetPluginsInDir(
298 const base::FilePath& path, std::vector<base::FilePath>* plugins) { 298 const base::FilePath& path, std::vector<base::FilePath>* plugins) {
299 WIN32_FIND_DATA find_file_data; 299 WIN32_FIND_DATA find_file_data;
300 HANDLE find_handle; 300 HANDLE find_handle;
301 301
302 string16 dir = path.value(); 302 base::string16 dir = path.value();
303 // FindFirstFile requires that you specify a wildcard for directories. 303 // FindFirstFile requires that you specify a wildcard for directories.
304 dir.append(L"\\NP*.DLL"); 304 dir.append(L"\\NP*.DLL");
305 305
306 find_handle = FindFirstFile(dir.c_str(), &find_file_data); 306 find_handle = FindFirstFile(dir.c_str(), &find_file_data);
307 if (find_handle == INVALID_HANDLE_VALUE) 307 if (find_handle == INVALID_HANDLE_VALUE)
308 return; 308 return;
309 309
310 do { 310 do {
311 if (!(find_file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) { 311 if (!(find_file_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
312 base::FilePath filename = path.Append(find_file_data.cFileName); 312 base::FilePath filename = path.Append(find_file_data.cFileName);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 base::FilePath plugin_path(info.path); 421 base::FilePath plugin_path(info.path);
422 file_util::AbsolutePath(&plugin_path); 422 file_util::AbsolutePath(&plugin_path);
423 if (!IsValid32BitImage(plugin_path)) 423 if (!IsValid32BitImage(plugin_path))
424 return false; 424 return false;
425 #endif 425 #endif
426 return true; 426 return true;
427 } 427 }
428 428
429 } // namespace npapi 429 } // namespace npapi
430 } // namespace webkit 430 } // namespace webkit
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698