summaryrefslogtreecommitdiffstats
path: root/chrome/installer/setup/install.cc
diff options
context:
space:
mode:
authorkuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-20 22:26:53 +0000
committerkuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2008-11-20 22:26:53 +0000
commite4cdc665ff69c7ddff0ce5740592e735a108e0b7 (patch)
treec91e1db9eb240665a18d1d6c63289638cd677585 /chrome/installer/setup/install.cc
parent63357da39cd6d80467cdb90bb46c7933ab8609bc (diff)
downloadchromium_src-e4cdc665ff69c7ddff0ce5740592e735a108e0b7.zip
chromium_src-e4cdc665ff69c7ddff0ce5740592e735a108e0b7.tar.gz
chromium_src-e4cdc665ff69c7ddff0ce5740592e735a108e0b7.tar.bz2
- If the exe rename command fails try calling Google Update to do the same job. This works when we are logged into XP/Vista as limited rights user.
- Update Google Update idl file that has the recently added COM object. - Add --system-level to the rename command that gets added to the registry. - Remove all the code to uninstall Gears MSI. Now most of the user have been upgraded to Chrome installer that includes gears.dll. BUG=1463346 Review URL: http://codereview.chromium.org/11255 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@5791 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/setup/install.cc')
-rw-r--r--chrome/installer/setup/install.cc16
1 files changed, 10 insertions, 6 deletions
diff --git a/chrome/installer/setup/install.cc b/chrome/installer/setup/install.cc
index 7543212..1c17b81 100644
--- a/chrome/installer/setup/install.cc
+++ b/chrome/installer/setup/install.cc
@@ -228,7 +228,7 @@ bool installer::InstallNewVersion(const std::wstring& exe_path,
} else {
scoped_ptr<WorkItemList> inuse_list(WorkItem::CreateWorkItemList());
inuse_list->AddSetRegValueWorkItem(reg_root,
- version_key,
+ version_key,
google_update::kRegOldVersionField,
current_version.c_str(),
true);
@@ -236,10 +236,14 @@ bool installer::InstallNewVersion(const std::wstring& exe_path,
install_path, new_version.GetString()));
file_util::AppendToPath(&rename_cmd,
file_util::GetFilenameFromPath(exe_path));
- rename_cmd = L"\"" + rename_cmd + L"\" --" +
- installer_util::switches::kRenameChromeExe;
+ rename_cmd = L"\"" + rename_cmd +
+ L"\" --" + installer_util::switches::kRenameChromeExe;
+ if (reg_root == HKEY_LOCAL_MACHINE) {
+ rename_cmd = rename_cmd + L" --" +
+ installer_util::switches::kSystemLevel;
+ }
inuse_list->AddSetRegValueWorkItem(reg_root,
- version_key,
+ version_key,
google_update::kRegRenameCmdField,
rename_cmd.c_str(),
true);
@@ -251,10 +255,10 @@ bool installer::InstallNewVersion(const std::wstring& exe_path,
}
} else {
scoped_ptr<WorkItemList> inuse_list(WorkItem::CreateWorkItemList());
- inuse_list->AddDeleteRegValueWorkItem(reg_root, version_key,
+ inuse_list->AddDeleteRegValueWorkItem(reg_root, version_key,
google_update::kRegOldVersionField,
true);
- inuse_list->AddDeleteRegValueWorkItem(reg_root, version_key,
+ inuse_list->AddDeleteRegValueWorkItem(reg_root, version_key,
google_update::kRegRenameCmdField,
true);
if (!inuse_list->Do()) {