Index: chrome/installer/setup/install_worker.cc |
diff --git a/chrome/installer/setup/install_worker.cc b/chrome/installer/setup/install_worker.cc |
index ec65627a793ce63b2d11acbd526dd16d92d99815..bbc3f62ce37c14d76ec8a3070f566d9db2284aa7 100644 |
--- a/chrome/installer/setup/install_worker.cc |
+++ b/chrome/installer/setup/install_worker.cc |
@@ -31,6 +31,7 @@ |
#include "chrome/installer/setup/install.h" |
#include "chrome/installer/setup/setup_constants.h" |
#include "chrome/installer/setup/setup_util.h" |
+#include "chrome/installer/util/app_registration_data.h" |
#include "chrome/installer/util/browser_distribution.h" |
#include "chrome/installer/util/callback_work_item.h" |
#include "chrome/installer/util/conditional_work_item_list.h" |
@@ -45,6 +46,7 @@ |
#include "chrome/installer/util/product.h" |
#include "chrome/installer/util/set_reg_value_work_item.h" |
#include "chrome/installer/util/shell_util.h" |
+#include "chrome/installer/util/updating_app_registration_data.h" |
#include "chrome/installer/util/util_constants.h" |
#include "chrome/installer/util/work_item_list.h" |
@@ -185,9 +187,9 @@ void AddInstallerCopyTasks(const InstallerState& installer_state, |
} |
} |
-base::string16 GetRegCommandKey(BrowserDistribution* dist, |
+base::string16 GetRegCommandKey(const AppRegistrationData& reg_data, |
grt (UTC plus 2)
2014/10/01 20:14:26
this makes all callers' lives a bit more difficult
huangs
2014/10/01 22:39:20
Done.
|
const wchar_t* name) { |
- base::string16 cmd_key(dist->GetVersionKey()); |
+ base::string16 cmd_key(reg_data.GetVersionKey()); |
cmd_key.append(1, base::FilePath::kSeparators[0]) |
.append(google_update::kRegCommandsKey) |
.append(1, base::FilePath::kSeparators[0]) |
@@ -215,7 +217,8 @@ void AddCommandWithParameterWorkItems(const InstallerState& installer_state, |
DCHECK(work_item_list); |
base::string16 full_cmd_key( |
- GetRegCommandKey(product.distribution(), command_key)); |
+ GetRegCommandKey(product.distribution()->GetAppRegistrationData(), |
+ command_key)); |
if (installer_state.operation() == InstallerState::UNINSTALL) { |
work_item_list->AddDeleteRegKeyWorkItem(installer_state.root_key(), |
@@ -236,14 +239,14 @@ void AddCommandWithParameterWorkItems(const InstallerState& installer_state, |
} |
void AddLegacyAppCommandRemovalItem(const InstallerState& installer_state, |
- BrowserDistribution* distribution, |
+ const AppRegistrationData& reg_data, |
const wchar_t* name, |
WorkItemList* work_item_list) { |
// These failures are ignored because this is a clean-up operation that |
// shouldn't block an install or update on failing. |
work_item_list->AddDeleteRegKeyWorkItem( |
installer_state.root_key(), |
- GetRegCommandKey(distribution, name), |
+ GetRegCommandKey(reg_data, name), |
KEY_WOW64_32KEY)->set_ignore_failure(true); |
} |
@@ -362,9 +365,11 @@ void AddQuickEnableApplicationLauncherWorkItems( |
// always at user-level). So we do not try to remove the command, i.e., it |
// will always be installed if the Chrome Binaries are installed. |
if (will_have_chrome_binaries) { |
+ BrowserDistribution* binaries_dist = |
+ BrowserDistribution::GetSpecificDistribution( |
+ BrowserDistribution::CHROME_BINARIES); |
base::string16 cmd_key( |
- GetRegCommandKey(BrowserDistribution::GetSpecificDistribution( |
- BrowserDistribution::CHROME_BINARIES), |
+ GetRegCommandKey(binaries_dist->GetAppRegistrationData(), |
kCmdQuickEnableApplicationHost)); |
CommandLine cmd_line(GetGenericQuickEnableCommand(installer_state, |
machine_state, |
@@ -397,17 +402,18 @@ void AddProductSpecificWorkItems(const InstallationState& original_state, |
AddFirewallRulesWorkItems( |
installer_state, p.distribution(), is_new_install, list); |
AddLegacyAppCommandRemovalItem( |
- installer_state, p.distribution(), kLegacyCmdInstallExtension, list); |
+ installer_state, |
+ p.distribution()->GetAppRegistrationData(), |
+ kLegacyCmdInstallExtension, |
+ list); |
if (p.distribution()->AppHostIsSupported()) { |
// Unconditionally remove the "install-application" command from the app |
// hosts's key. |
- AddLegacyAppCommandRemovalItem( |
- installer_state, |
- BrowserDistribution::GetSpecificDistribution( |
- BrowserDistribution::CHROME_APP_HOST), |
- kLegacyCmdInstallApp, |
- list); |
+ UpdatingAppRegistrationData app_launcher_reg_data( |
+ installer::kAppLauncherGuid); |
+ AddLegacyAppCommandRemovalItem(installer_state, app_launcher_reg_data, |
+ kLegacyCmdInstallApp, list); |
} |
} |
if (p.is_chrome_binaries()) { |
@@ -1590,7 +1596,8 @@ void AddOsUpgradeWorkItems(const InstallerState& installer_state, |
WorkItemList* install_list) { |
const HKEY root_key = installer_state.root_key(); |
base::string16 cmd_key( |
- GetRegCommandKey(product.distribution(), kCmdOnOsUpgrade)); |
+ GetRegCommandKey(product.distribution()->GetAppRegistrationData(), |
+ kCmdOnOsUpgrade)); |
if (installer_state.operation() == InstallerState::UNINSTALL) { |
install_list->AddDeleteRegKeyWorkItem(root_key, cmd_key, KEY_WOW64_32KEY) |
@@ -1623,7 +1630,8 @@ void AddQueryEULAAcceptanceWorkItems(const InstallerState& installer_state, |
WorkItemList* work_item_list) { |
const HKEY root_key = installer_state.root_key(); |
base::string16 cmd_key( |
- GetRegCommandKey(product.distribution(), kCmdQueryEULAAcceptance)); |
+ GetRegCommandKey(product.distribution()->GetAppRegistrationData(), |
+ kCmdQueryEULAAcceptance)); |
if (installer_state.operation() == InstallerState::UNINSTALL) { |
work_item_list->AddDeleteRegKeyWorkItem(root_key, cmd_key, KEY_WOW64_32KEY) |
->set_log_message("Removing query EULA acceptance command"); |
@@ -1646,10 +1654,11 @@ void AddQueryEULAAcceptanceWorkItems(const InstallerState& installer_state, |
void AddQuickEnableChromeFrameWorkItems(const InstallerState& installer_state, |
WorkItemList* work_item_list) { |
DCHECK(work_item_list); |
- |
+ BrowserDistribution* binaries_dist = |
+ BrowserDistribution::GetSpecificDistribution( |
+ BrowserDistribution::CHROME_BINARIES); |
base::string16 cmd_key( |
- GetRegCommandKey(BrowserDistribution::GetSpecificDistribution( |
- BrowserDistribution::CHROME_BINARIES), |
+ GetRegCommandKey(binaries_dist->GetAppRegistrationData(), |
kCmdQuickEnableCf)); |
// Unconditionally remove the legacy Quick Enable command from the binaries. |