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

Side by Side Diff: chrome/common/chrome_paths.cc

Issue 6576020: Remove Gears from Chrome (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: windows fixes Created 9 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
« no previous file with comments | « chrome/common/chrome_paths.h ('k') | chrome/common/chrome_plugin_api.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/common/chrome_paths.h" 5 #include "chrome/common/chrome_paths.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 *result = result->Append("Internet Plug-Ins"); 66 *result = result->Append("Internet Plug-Ins");
67 return true; 67 return true;
68 } 68 }
69 // In tests, just look in the module directory (below). 69 // In tests, just look in the module directory (below).
70 #endif 70 #endif
71 71
72 // The rest of the world expects plugins in the module directory. 72 // The rest of the world expects plugins in the module directory.
73 return PathService::Get(base::DIR_MODULE, result); 73 return PathService::Get(base::DIR_MODULE, result);
74 } 74 }
75 75
76 bool GetGearsPluginPathFromCommandLine(FilePath* path) {
77 #ifndef NDEBUG
78 // for debugging, support a cmd line based override
79 FilePath plugin_path =
80 CommandLine::ForCurrentProcess()->GetSwitchValuePath(
81 switches::kGearsPluginPathOverride);
82 *path = plugin_path;
83 return !plugin_path.empty();
84 #else
85 return false;
86 #endif
87 }
88
89 bool PathProvider(int key, FilePath* result) { 76 bool PathProvider(int key, FilePath* result) {
90 // Some keys are just aliases... 77 // Some keys are just aliases...
91 switch (key) { 78 switch (key) {
92 case chrome::DIR_APP: 79 case chrome::DIR_APP:
93 return PathService::Get(base::DIR_MODULE, result); 80 return PathService::Get(base::DIR_MODULE, result);
94 case chrome::DIR_LOGS: 81 case chrome::DIR_LOGS:
95 #ifdef NDEBUG 82 #ifdef NDEBUG
96 // Release builds write to the data dir 83 // Release builds write to the data dir
97 return PathService::Get(chrome::DIR_USER_DATA, result); 84 return PathService::Get(chrome::DIR_USER_DATA, result);
98 #else 85 #else
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 case chrome::FILE_LOCAL_STATE: 198 case chrome::FILE_LOCAL_STATE:
212 if (!PathService::Get(chrome::DIR_USER_DATA, &cur)) 199 if (!PathService::Get(chrome::DIR_USER_DATA, &cur))
213 return false; 200 return false;
214 cur = cur.Append(chrome::kLocalStateFilename); 201 cur = cur.Append(chrome::kLocalStateFilename);
215 break; 202 break;
216 case chrome::FILE_RECORDED_SCRIPT: 203 case chrome::FILE_RECORDED_SCRIPT:
217 if (!PathService::Get(chrome::DIR_USER_DATA, &cur)) 204 if (!PathService::Get(chrome::DIR_USER_DATA, &cur))
218 return false; 205 return false;
219 cur = cur.Append(FILE_PATH_LITERAL("script.log")); 206 cur = cur.Append(FILE_PATH_LITERAL("script.log"));
220 break; 207 break;
221 case chrome::FILE_GEARS_PLUGIN:
222 if (!GetGearsPluginPathFromCommandLine(&cur)) {
223 #if defined(OS_WIN)
224 // Search for gears.dll alongside chrome.dll first. This new model
225 // allows us to package gears.dll with the Chrome installer and update
226 // it while Chrome is running.
227 if (!GetInternalPluginsDirectory(&cur))
228 return false;
229 cur = cur.Append(FILE_PATH_LITERAL("gears.dll"));
230
231 if (!file_util::PathExists(cur)) {
232 if (!PathService::Get(base::DIR_EXE, &cur))
233 return false;
234 cur = cur.Append(FILE_PATH_LITERAL("plugins"));
235 cur = cur.Append(FILE_PATH_LITERAL("gears"));
236 cur = cur.Append(FILE_PATH_LITERAL("gears.dll"));
237 }
238 #else
239 // No gears.dll on non-Windows systems.
240 return false;
241 #endif
242 }
243 break;
244 case chrome::FILE_FLASH_PLUGIN: 208 case chrome::FILE_FLASH_PLUGIN:
245 if (!GetInternalPluginsDirectory(&cur)) 209 if (!GetInternalPluginsDirectory(&cur))
246 return false; 210 return false;
247 cur = cur.Append(kInternalFlashPluginFileName); 211 cur = cur.Append(kInternalFlashPluginFileName);
248 if (!file_util::PathExists(cur)) 212 if (!file_util::PathExists(cur))
249 return false; 213 return false;
250 break; 214 break;
251 case chrome::FILE_PDF_PLUGIN: 215 case chrome::FILE_PDF_PLUGIN:
252 if (!GetInternalPluginsDirectory(&cur)) 216 if (!GetInternalPluginsDirectory(&cur))
253 return false; 217 return false;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 return true; 312 return true;
349 } 313 }
350 314
351 // This cannot be done as a static initializer sadly since Visual Studio will 315 // This cannot be done as a static initializer sadly since Visual Studio will
352 // eliminate this object file if there is no direct entry point into it. 316 // eliminate this object file if there is no direct entry point into it.
353 void RegisterPathProvider() { 317 void RegisterPathProvider() {
354 PathService::RegisterProvider(PathProvider, PATH_START, PATH_END); 318 PathService::RegisterProvider(PathProvider, PATH_START, PATH_END);
355 } 319 }
356 320
357 } // namespace chrome 321 } // namespace chrome
OLDNEW
« no previous file with comments | « chrome/common/chrome_paths.h ('k') | chrome/common/chrome_plugin_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698