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

Side by Side Diff: chrome/browser/component_updater/recovery_component_installer.cc

Issue 819133004: Make callers of CommandLine use it via the base:: namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 5 years, 12 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
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 "chrome/browser/component_updater/recovery_component_installer.h" 5 #include "chrome/browser/component_updater/recovery_component_installer.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <string> 8 #include <string>
9 9
10 #include "base/base_paths.h" 10 #include "base/base_paths.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 enum ChromeRecoveryExitCode { 55 enum ChromeRecoveryExitCode {
56 EXIT_CODE_RECOVERY_SUCCEEDED = 0, 56 EXIT_CODE_RECOVERY_SUCCEEDED = 0,
57 EXIT_CODE_RECOVERY_SKIPPED = 1, 57 EXIT_CODE_RECOVERY_SKIPPED = 1,
58 EXIT_CODE_ELEVATION_NEEDED = 2, 58 EXIT_CODE_ELEVATION_NEEDED = 2,
59 }; 59 };
60 60
61 #if !defined(OS_CHROMEOS) 61 #if !defined(OS_CHROMEOS)
62 // Checks if elevated recovery simulation switch was present on the command 62 // Checks if elevated recovery simulation switch was present on the command
63 // line. This is for testing purpose. 63 // line. This is for testing purpose.
64 bool SimulatingElevatedRecovery() { 64 bool SimulatingElevatedRecovery() {
65 return CommandLine::ForCurrentProcess()-> 65 return base::CommandLine::ForCurrentProcess()->HasSwitch(
66 HasSwitch(switches::kSimulateElevatedRecovery); 66 switches::kSimulateElevatedRecovery);
67 } 67 }
68 #endif 68 #endif
69 69
70 #if defined(OS_WIN) 70 #if defined(OS_WIN)
71 scoped_ptr<base::DictionaryValue> ReadManifest(const base::FilePath& manifest) { 71 scoped_ptr<base::DictionaryValue> ReadManifest(const base::FilePath& manifest) {
72 JSONFileValueSerializer serializer(manifest); 72 JSONFileValueSerializer serializer(manifest);
73 std::string error; 73 std::string error;
74 scoped_ptr<base::Value> root(serializer.Deserialize(NULL, &error)); 74 scoped_ptr<base::Value> root(serializer.Deserialize(NULL, &error));
75 if (root.get() && root->IsType(base::Value::TYPE_DICTIONARY)) { 75 if (root.get() && root->IsType(base::Value::TYPE_DICTIONARY)) {
76 return scoped_ptr<base::DictionaryValue>( 76 return scoped_ptr<base::DictionaryValue>(
(...skipping 13 matching lines...) Expand all
90 std::string name; 90 std::string name;
91 manifest->GetStringASCII("name", &name); 91 manifest->GetStringASCII("name", &name);
92 if (name != kRecoveryManifestName) 92 if (name != kRecoveryManifestName)
93 return; 93 return;
94 std::string proposed_version; 94 std::string proposed_version;
95 manifest->GetStringASCII("version", &proposed_version); 95 manifest->GetStringASCII("version", &proposed_version);
96 const Version version(proposed_version.c_str()); 96 const Version version(proposed_version.c_str());
97 if (!version.IsValid()) 97 if (!version.IsValid())
98 return; 98 return;
99 99
100 CommandLine cmdline(main_file); 100 base::CommandLine cmdline(main_file);
101 std::string arguments; 101 std::string arguments;
102 if (manifest->GetStringASCII("x-recovery-args", &arguments)) 102 if (manifest->GetStringASCII("x-recovery-args", &arguments))
103 cmdline.AppendArg(arguments); 103 cmdline.AppendArg(arguments);
104 std::string add_version; 104 std::string add_version;
105 if (manifest->GetStringASCII("x-recovery-add-version", &add_version) && 105 if (manifest->GetStringASCII("x-recovery-add-version", &add_version) &&
106 add_version == "yes") { 106 add_version == "yes") {
107 cmdline.AppendSwitchASCII("version", version.GetString()); 107 cmdline.AppendSwitchASCII("version", version.GetString());
108 } 108 }
109 109
110 base::LaunchOptions options; 110 base::LaunchOptions options;
(...skipping 27 matching lines...) Expand all
138 138
139 void OnUpdateError(int error) override; 139 void OnUpdateError(int error) override;
140 140
141 bool Install(const base::DictionaryValue& manifest, 141 bool Install(const base::DictionaryValue& manifest,
142 const base::FilePath& unpack_path) override; 142 const base::FilePath& unpack_path) override;
143 143
144 bool GetInstalledFile(const std::string& file, 144 bool GetInstalledFile(const std::string& file,
145 base::FilePath* installed_file) override; 145 base::FilePath* installed_file) override;
146 146
147 private: 147 private:
148 bool RunInstallCommand(const CommandLine& cmdline, 148 bool RunInstallCommand(const base::CommandLine& cmdline,
149 const base::FilePath& installer_folder) const; 149 const base::FilePath& installer_folder) const;
150 150
151 Version current_version_; 151 Version current_version_;
152 PrefService* prefs_; 152 PrefService* prefs_;
153 }; 153 };
154 154
155 void SimulateElevatedRecoveryHelper(PrefService* prefs) { 155 void SimulateElevatedRecoveryHelper(PrefService* prefs) {
156 prefs->SetBoolean(prefs::kRecoveryComponentNeedsElevation, true); 156 prefs->SetBoolean(prefs::kRecoveryComponentNeedsElevation, true);
157 } 157 }
158 158
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 BrowserThread::UI, 210 BrowserThread::UI,
211 FROM_HERE, 211 FROM_HERE,
212 base::Bind(&SetPrefsForElevatedRecoveryInstall, 212 base::Bind(&SetPrefsForElevatedRecoveryInstall,
213 installer_folder, 213 installer_folder,
214 prefs)); 214 prefs));
215 } 215 }
216 base::CloseProcessHandle(process_handle); 216 base::CloseProcessHandle(process_handle);
217 } 217 }
218 218
219 bool RecoveryComponentInstaller::RunInstallCommand( 219 bool RecoveryComponentInstaller::RunInstallCommand(
220 const CommandLine& cmdline, const base::FilePath& installer_folder) const { 220 const base::CommandLine& cmdline,
221 const base::FilePath& installer_folder) const {
221 base::ProcessHandle process_handle; 222 base::ProcessHandle process_handle;
222 base::LaunchOptions options; 223 base::LaunchOptions options;
223 options.start_hidden = true; 224 options.start_hidden = true;
224 if (!base::LaunchProcess(cmdline, options, &process_handle)) 225 if (!base::LaunchProcess(cmdline, options, &process_handle))
225 return false; 226 return false;
226 227
227 // Let worker pool thread wait for us so we don't block Chrome shutdown. 228 // Let worker pool thread wait for us so we don't block Chrome shutdown.
228 base::WorkerPool::PostTask( 229 base::WorkerPool::PostTask(
229 FROM_HERE, 230 FROM_HERE,
230 base::Bind(&WaitForInstallToComplete, 231 base::Bind(&WaitForInstallToComplete,
231 process_handle, installer_folder, prefs_), 232 process_handle, installer_folder, prefs_),
232 true); 233 true);
233 234
234 // Returns true regardless of install result since from updater service 235 // Returns true regardless of install result since from updater service
235 // perspective the install is done, even we may need to do elevated 236 // perspective the install is done, even we may need to do elevated
236 // install later. 237 // install later.
237 return true; 238 return true;
238 } 239 }
239 #else 240 #else
240 bool RecoveryComponentInstaller::RunInstallCommand( 241 bool RecoveryComponentInstaller::RunInstallCommand(
241 const CommandLine& cmdline, const base::FilePath&) const { 242 const base::CommandLine& cmdline,
243 const base::FilePath&) const {
242 return base::LaunchProcess(cmdline, base::LaunchOptions(), NULL); 244 return base::LaunchProcess(cmdline, base::LaunchOptions(), NULL);
243 } 245 }
244 #endif 246 #endif
245 247
246 bool RecoveryComponentInstaller::Install(const base::DictionaryValue& manifest, 248 bool RecoveryComponentInstaller::Install(const base::DictionaryValue& manifest,
247 const base::FilePath& unpack_path) { 249 const base::FilePath& unpack_path) {
248 std::string name; 250 std::string name;
249 manifest.GetStringASCII("name", &name); 251 manifest.GetStringASCII("name", &name);
250 if (name != kRecoveryManifestName) 252 if (name != kRecoveryManifestName)
251 return false; 253 return false;
(...skipping 16 matching lines...) Expand all
268 return false; 270 return false;
269 if (!base::Move(unpack_path, path)) { 271 if (!base::Move(unpack_path, path)) {
270 DVLOG(1) << "Recovery component move failed."; 272 DVLOG(1) << "Recovery component move failed.";
271 return false; 273 return false;
272 } 274 }
273 275
274 base::FilePath main_file = path.Append(kRecoveryFileName); 276 base::FilePath main_file = path.Append(kRecoveryFileName);
275 if (!base::PathExists(main_file)) 277 if (!base::PathExists(main_file))
276 return false; 278 return false;
277 // Run the recovery component. 279 // Run the recovery component.
278 CommandLine cmdline(main_file); 280 base::CommandLine cmdline(main_file);
279 std::string arguments; 281 std::string arguments;
280 if (manifest.GetStringASCII("x-recovery-args", &arguments)) 282 if (manifest.GetStringASCII("x-recovery-args", &arguments))
281 cmdline.AppendArg(arguments); 283 cmdline.AppendArg(arguments);
282 std::string add_version; 284 std::string add_version;
283 if (manifest.GetStringASCII("x-recovery-add-version", &add_version) && 285 if (manifest.GetStringASCII("x-recovery-add-version", &add_version) &&
284 add_version == "yes") { 286 add_version == "yes") {
285 cmdline.AppendSwitchASCII("version", current_version_.GetString()); 287 cmdline.AppendSwitchASCII("version", current_version_.GetString());
286 } 288 }
287 289
288 if (!RunInstallCommand(cmdline, path)) { 290 if (!RunInstallCommand(cmdline, path)) {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 #endif 343 #endif
342 prefs->SetBoolean(prefs::kRecoveryComponentNeedsElevation, false); 344 prefs->SetBoolean(prefs::kRecoveryComponentNeedsElevation, false);
343 } 345 }
344 346
345 void DeclinedElevatedRecoveryInstall(PrefService* prefs) { 347 void DeclinedElevatedRecoveryInstall(PrefService* prefs) {
346 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 348 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
347 prefs->SetBoolean(prefs::kRecoveryComponentNeedsElevation, false); 349 prefs->SetBoolean(prefs::kRecoveryComponentNeedsElevation, false);
348 } 350 }
349 351
350 } // namespace component_updater 352 } // namespace component_updater
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698