summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util/shell_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/installer/util/shell_util.cc')
-rw-r--r--chrome/installer/util/shell_util.cc27
1 files changed, 12 insertions, 15 deletions
diff --git a/chrome/installer/util/shell_util.cc b/chrome/installer/util/shell_util.cc
index 947c8a0..b82bbf8 100644
--- a/chrome/installer/util/shell_util.cc
+++ b/chrome/installer/util/shell_util.cc
@@ -295,10 +295,10 @@ bool IsChromeRegistered(const std::wstring& chrome_exe,
return registered;
}
-// This method registers Chrome on Vista by launching eleavated setup.exe.
-// That will show user standard Vista elevation prompt. If user accepts it
-// the new process will make the necessary changes and return SUCCESS that
-// we capture and return.
+// This method registers Chrome on Vista by launching an elevated setup.exe.
+// That will show the user the standard Vista elevation prompt. If the user
+// accepts it the new process will make the necessary changes and return SUCCESS
+// that we capture and return.
bool ElevateAndRegisterChrome(const std::wstring& chrome_exe,
const std::wstring& suffix) {
FilePath exe_path =
@@ -314,26 +314,23 @@ bool ElevateAndRegisterChrome(const std::wstring& chrome_exe,
CommandLine command_line = CommandLine::FromString(uninstall_string);
exe_path = command_line.GetProgram();
}
+
if (file_util::PathExists(exe_path)) {
- std::wstring params(L"--");
- params.append(
- ASCIIToWide(installer_util::switches::kRegisterChromeBrowser));
- params.append(L"=\"" + chrome_exe + L"\"");
+ CommandLine cmd(exe_path);
+ cmd.AppendSwitchNative(installer_util::switches::kRegisterChromeBrowser,
+ chrome_exe);
if (!suffix.empty()) {
- params.append(L" --");
- params.append(ASCIIToWide(
- installer_util::switches::kRegisterChromeBrowserSuffix));
- params.append(L"=\"" + suffix + L"\"");
+ cmd.AppendSwitchNative(
+ installer_util::switches::kRegisterChromeBrowserSuffix, suffix);
}
CommandLine& browser_command_line = *CommandLine::ForCurrentProcess();
if (browser_command_line.HasSwitch(switches::kChromeFrame)) {
- params.append(L" --");
- params.append(installer_util::switches::kChromeFrame);
+ cmd.AppendSwitch(installer_util::switches::kChromeFrame);
}
DWORD ret_val = 0;
- InstallUtil::ExecuteExeAsAdmin(exe_path.value(), params, &ret_val);
+ InstallUtil::ExecuteExeAsAdmin(cmd, &ret_val);
if (ret_val == 0)
return true;
}