| Index: chrome/installer/util/shell_util.cc
|
| ===================================================================
|
| --- chrome/installer/util/shell_util.cc (revision 66087)
|
| +++ chrome/installer/util/shell_util.cc (working copy)
|
| @@ -295,10 +295,10 @@
|
| 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 @@
|
| 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;
|
| }
|
|
|