| Index: chrome/installer/setup/setup_main.cc
|
| diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc
|
| index ad881c2fcc8b4eb62451416f7c43be0123776f92..4e709f66dcc1493e37c460ae7145b3d037eb0b79 100644
|
| --- a/chrome/installer/setup/setup_main.cc
|
| +++ b/chrome/installer/setup/setup_main.cc
|
| @@ -7,8 +7,6 @@
|
| #include <shellapi.h>
|
| #include <shlobj.h>
|
|
|
| -#include <string>
|
| -
|
| #include "base/at_exit.h"
|
| #include "base/basictypes.h"
|
| #include "base/command_line.h"
|
| @@ -17,6 +15,7 @@
|
| #include "base/path_service.h"
|
| #include "base/process_util.h"
|
| #include "base/scoped_temp_dir.h"
|
| +#include "base/string16.h"
|
| #include "base/string_number_conversions.h"
|
| #include "base/string_util.h"
|
| #include "base/utf_string_conversions.h"
|
| @@ -99,7 +98,7 @@ DWORD UnPackArchive(const FilePath& archive,
|
| // First uncompress the payload. This could be a differential
|
| // update (patch.7z) or full archive (chrome.7z). If this uncompress fails
|
| // return with error.
|
| - std::wstring unpacked_file;
|
| + string16 unpacked_file;
|
| int32 ret = LzmaUtil::UnPackArchive(archive.value(), temp_path.value(),
|
| &unpacked_file);
|
| if (ret != NO_ERROR)
|
| @@ -234,7 +233,7 @@ installer::InstallStatus RenameChromeExecutables(
|
| // Add work items to delete the "opv", "cpv", and "cmd" values from all
|
| // distributions.
|
| HKEY reg_root = installer_state->root_key();
|
| - std::wstring version_key;
|
| + string16 version_key;
|
| for (int i = 0; i < num_dists; ++i) {
|
| version_key = dists[i]->GetVersionKey();
|
| install_list->AddDeleteRegValueWorkItem(
|
| @@ -663,7 +662,8 @@ installer::InstallStatus InstallProductsHelper(
|
| temp_path.path(), prefs_source_path, prefs, *installer_version);
|
|
|
| int install_msg_base = IDS_INSTALL_FAILED_BASE;
|
| - std::wstring chrome_exe;
|
| + string16 chrome_exe;
|
| + string16 quoted_chrome_exe;
|
| if (install_status == installer::SAME_VERSION_REPAIR_FAILED) {
|
| if (installer_state.FindProduct(BrowserDistribution::CHROME_FRAME)) {
|
| install_msg_base = IDS_SAME_VERSION_REPAIR_FAILED_CF_BASE;
|
| @@ -679,7 +679,7 @@ installer::InstallStatus InstallProductsHelper(
|
| } else {
|
| chrome_exe = installer_state.target_path()
|
| .Append(installer::kChromeExe).value();
|
| - chrome_exe = L"\"" + chrome_exe + L"\"";
|
| + quoted_chrome_exe = L"\"" + chrome_exe + L"\"";
|
| install_msg_base = 0;
|
| }
|
| }
|
| @@ -707,7 +707,7 @@ installer::InstallStatus InstallProductsHelper(
|
| install_status != installer::IN_USE_UPDATED);
|
|
|
| installer_state.WriteInstallerResult(install_status, install_msg_base,
|
| - write_chrome_launch_string ? &chrome_exe : NULL);
|
| + write_chrome_launch_string ? "ed_chrome_exe : NULL);
|
|
|
| if (install_status == installer::FIRST_INSTALL_SUCCESS) {
|
| VLOG(1) << "First install successful.";
|
| @@ -724,8 +724,11 @@ installer::InstallStatus InstallProductsHelper(
|
| (install_status == installer::IN_USE_UPDATED)) {
|
| const Product* chrome = installer_state.FindProduct(
|
| BrowserDistribution::CHROME_BROWSER);
|
| - if (chrome != NULL)
|
| - installer::RemoveChromeLegacyRegistryKeys(chrome->distribution());
|
| + if (chrome != NULL) {
|
| + DCHECK_NE(chrome_exe, string16());
|
| + installer::RemoveChromeLegacyRegistryKeys(chrome->distribution(),
|
| + chrome_exe);
|
| + }
|
| }
|
| }
|
| }
|
| @@ -901,9 +904,9 @@ installer::InstallStatus UninstallProducts(
|
| return install_status;
|
| }
|
|
|
| -installer::InstallStatus ShowEULADialog(const std::wstring& inner_frame) {
|
| +installer::InstallStatus ShowEULADialog(const string16& inner_frame) {
|
| VLOG(1) << "About to show EULA";
|
| - std::wstring eula_path = installer::GetLocalizedEulaResource();
|
| + string16 eula_path = installer::GetLocalizedEulaResource();
|
| if (eula_path.empty()) {
|
| LOG(ERROR) << "No EULA path available";
|
| return installer::EULA_REJECTED;
|
| @@ -945,10 +948,10 @@ bool HandleNonInstallCmdLineOptions(const InstallationState& original_state,
|
| if (!temp_path.CreateUniqueTempDir()) {
|
| PLOG(ERROR) << "Could not create temporary path.";
|
| } else {
|
| - std::wstring setup_patch = cmd_line.GetSwitchValueNative(
|
| + string16 setup_patch = cmd_line.GetSwitchValueNative(
|
| installer::switches::kUpdateSetupExe);
|
| VLOG(1) << "Opening archive " << setup_patch;
|
| - std::wstring uncompressed_patch;
|
| + string16 uncompressed_patch;
|
| if (LzmaUtil::UnPackArchive(setup_patch, temp_path.path().value(),
|
| &uncompressed_patch) == NO_ERROR) {
|
| FilePath old_setup_exe = cmd_line.GetProgram();
|
| @@ -980,7 +983,7 @@ bool HandleNonInstallCmdLineOptions(const InstallationState& original_state,
|
| } else if (cmd_line.HasSwitch(installer::switches::kShowEula)) {
|
| // Check if we need to show the EULA. If it is passed as a command line
|
| // then the dialog is shown and regardless of the outcome setup exits here.
|
| - std::wstring inner_frame =
|
| + string16 inner_frame =
|
| cmd_line.GetSwitchValueNative(installer::switches::kShowEula);
|
| *exit_code = ShowEULADialog(inner_frame);
|
| if (installer::EULA_REJECTED != *exit_code) {
|
| @@ -1009,9 +1012,9 @@ bool HandleNonInstallCmdLineOptions(const InstallationState& original_state,
|
| // These options should only be used when setup.exe is launched with admin
|
| // rights. We do not make any user specific changes with this option.
|
| DCHECK(IsUserAnAdmin());
|
| - std::wstring chrome_exe(cmd_line.GetSwitchValueNative(
|
| + string16 chrome_exe(cmd_line.GetSwitchValueNative(
|
| installer::switches::kRegisterChromeBrowser));
|
| - std::wstring suffix;
|
| + string16 suffix;
|
| if (cmd_line.HasSwitch(
|
| installer::switches::kRegisterChromeBrowserSuffix)) {
|
| suffix = cmd_line.GetSwitchValueNative(
|
| @@ -1019,7 +1022,7 @@ bool HandleNonInstallCmdLineOptions(const InstallationState& original_state,
|
| }
|
| if (cmd_line.HasSwitch(
|
| installer::switches::kRegisterURLProtocol)) {
|
| - std::wstring protocol = cmd_line.GetSwitchValueNative(
|
| + string16 protocol = cmd_line.GetSwitchValueNative(
|
| installer::switches::kRegisterURLProtocol);
|
| // ShellUtil::RegisterChromeForProtocol performs all registration
|
| // done by ShellUtil::RegisterChromeBrowser, as well as registering
|
| @@ -1046,7 +1049,7 @@ bool HandleNonInstallCmdLineOptions(const InstallationState& original_state,
|
| // Here we delete Chrome browser registration. This option should only
|
| // be used when setup.exe is launched with admin rights. We do not
|
| // make any user specific changes in this option.
|
| - std::wstring suffix;
|
| + string16 suffix;
|
| if (cmd_line.HasSwitch(
|
| installer::switches::kRegisterChromeBrowserSuffix)) {
|
| suffix = cmd_line.GetSwitchValueNative(
|
| @@ -1181,8 +1184,8 @@ class AutoCom {
|
| // Returns the Custom information for the client identified by the exe path
|
| // passed in. This information is used for crash reporting.
|
| google_breakpad::CustomClientInfo* GetCustomInfo(const wchar_t* exe_path) {
|
| - std::wstring product;
|
| - std::wstring version;
|
| + string16 product;
|
| + string16 version;
|
| scoped_ptr<FileVersionInfo>
|
| version_info(FileVersionInfo::CreateFileVersionInfo(FilePath(exe_path)));
|
| if (version_info.get()) {
|
| @@ -1227,7 +1230,7 @@ google_breakpad::ExceptionHandler* InitializeCrashReporting(
|
| // Build the pipe name. It can be either:
|
| // System-wide install: "NamedPipe\GoogleCrashServices\S-1-5-18"
|
| // Per-user install: "NamedPipe\GoogleCrashServices\<user SID>"
|
| - std::wstring user_sid = kSystemPrincipalSid;
|
| + string16 user_sid = kSystemPrincipalSid;
|
|
|
| if (!system_install) {
|
| if (!base::win::GetUserSidString(&user_sid)) {
|
| @@ -1235,7 +1238,7 @@ google_breakpad::ExceptionHandler* InitializeCrashReporting(
|
| }
|
| }
|
|
|
| - std::wstring pipe_name = kGoogleUpdatePipeName;
|
| + string16 pipe_name = kGoogleUpdatePipeName;
|
| pipe_name += user_sid;
|
|
|
| google_breakpad::ExceptionHandler* breakpad =
|
|
|