| 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..275b54dd9ad57fb4014069a0d26a39fe716b62ba 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,10 @@ void AddInstallerCopyTasks(const InstallerState& installer_state,
|
| }
|
| }
|
|
|
| -base::string16 GetRegCommandKey(BrowserDistribution* dist,
|
| - const wchar_t* name) {
|
| - base::string16 cmd_key(dist->GetVersionKey());
|
| +base::string16 GetRegistrationDataCommandKey(
|
| + const AppRegistrationData& reg_data,
|
| + const wchar_t* name) {
|
| + 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])
|
| @@ -195,6 +198,11 @@ base::string16 GetRegCommandKey(BrowserDistribution* dist,
|
| return cmd_key;
|
| }
|
|
|
| +base::string16 GetRegCommandKey(BrowserDistribution* dist,
|
| + const wchar_t* name) {
|
| + return GetRegistrationDataCommandKey(dist->GetAppRegistrationData(), name);
|
| +}
|
| +
|
| // Adds work items to create (or delete if uninstalling) app commands to launch
|
| // the app with a switch. The following criteria should be true:
|
| // 1. The switch takes one parameter.
|
| @@ -236,14 +244,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),
|
| + GetRegistrationDataCommandKey(reg_data, name),
|
| KEY_WOW64_32KEY)->set_ignore_failure(true);
|
| }
|
|
|
| @@ -397,17 +405,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()) {
|
|
|