Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2909)

Unified Diff: chrome/installer/setup/install_worker.cc

Issue 282363003: Add WOW64 support to the installer registry work items (Closed) Base URL: https://chromium.googlesource.com/chromium/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/installer/setup/install_worker.cc
diff --git a/chrome/installer/setup/install_worker.cc b/chrome/installer/setup/install_worker.cc
index 4831d3d1cb8496dacbe36b86e8f743a72b2af210..02d71c9f9f4e900ee1053820f4615b3517d2571b 100644
--- a/chrome/installer/setup/install_worker.cc
+++ b/chrome/installer/setup/install_worker.cc
@@ -215,8 +215,9 @@ void AddCommandWithParameterWorkItems(const InstallerState& installer_state,
if (installer_state.operation() == InstallerState::UNINSTALL) {
work_item_list->AddDeleteRegKeyWorkItem(
- installer_state.root_key(), full_cmd_key)->set_log_message(
- "removing " + base::UTF16ToASCII(command_key) + " command");
+ installer_state.root_key(), full_cmd_key,
+ WorkItem::WOW64_DEFAULT)->set_log_message(
+ "removing " + base::UTF16ToASCII(command_key) + " command");
} else {
CommandLine cmd_line(installer_state.target_path().Append(app));
cmd_line.AppendSwitchASCII(command_with_parameter, "%1");
@@ -440,7 +441,7 @@ void AddDeleteUninstallShortcutsForMSIWorkItems(
base::string16 uninstall_reg(product.distribution()->GetUninstallRegPath());
WorkItem* delete_reg_key = work_item_list->AddDeleteRegKeyWorkItem(
- reg_root, uninstall_reg);
+ reg_root, uninstall_reg, WorkItem::WOW64_DEFAULT);
delete_reg_key->set_ignore_failure(true);
// Then attempt to delete the old installation's start menu shortcut.
@@ -609,22 +610,29 @@ void AddUninstallDelegateExecuteWorkItems(
WorkItemList* list) {
VLOG(1) << "Adding unregistration items for DelegateExecute verb handler in "
<< root;
- list->AddDeleteRegKeyWorkItem(root, delegate_execute_path);
+#if defined(_WIN64)
+ list->AddDeleteRegKeyWorkItem(root, delegate_execute_path,
+ WorkItem::WOW64_DEFAULT);
+#else
+ list->AddDeleteRegKeyWorkItem(root, delegate_execute_path,
+ WorkItem::WOW64_DEFAULT);
+#endif
Will Harris 2014/05/16 17:29:07 This looks weird because I haven't decided how I'm
// In the past, the ICommandExecuteImpl interface and a TypeLib were both
// registered. Remove these since this operation may be updating a machine
// that had the old registrations.
list->AddDeleteRegKeyWorkItem(root,
L"Software\\Classes\\Interface\\"
- L"{0BA0D4E9-2259-4963-B9AE-A839F7CB7544}");
+ L"{0BA0D4E9-2259-4963-B9AE-A839F7CB7544}",
+ WorkItem::WOW64_DEFAULT);
list->AddDeleteRegKeyWorkItem(root,
L"Software\\Classes\\TypeLib\\"
#if defined(GOOGLE_CHROME_BUILD)
- L"{4E805ED8-EBA0-4601-9681-12815A56EBFD}"
+ L"{4E805ED8-EBA0-4601-9681-12815A56EBFD}",
#else
- L"{7779FB70-B399-454A-AA1A-BAA850032B10}"
+ L"{7779FB70-B399-454A-AA1A-BAA850032B10}",
#endif
- );
+ WorkItem::WOW64_DEFAULT);
}
// Google Chrome Canary, between 20.0.1101.0 (crrev.com/132190) and 20.0.1106.0
@@ -693,12 +701,15 @@ void AddUninstallShortcutWorkItems(const InstallerState& installer_state,
&uninstall_arguments);
base::string16 update_state_key(browser_dist->GetStateKey());
- install_list->AddCreateRegKeyWorkItem(reg_root, update_state_key);
- install_list->AddSetRegValueWorkItem(reg_root, update_state_key,
- installer::kUninstallStringField, installer_path.value(), true);
- install_list->AddSetRegValueWorkItem(reg_root, update_state_key,
- installer::kUninstallArgumentsField,
- uninstall_arguments.GetCommandLineString(), true);
+ install_list->AddCreateRegKeyWorkItem(
+ reg_root, update_state_key, WorkItem::WOW64_32KEY);
+ install_list->AddSetRegValueWorkItem(
+ reg_root, update_state_key, installer::kUninstallStringField,
+ installer_path.value(), true, WorkItem::WOW64_32KEY);
+ install_list->AddSetRegValueWorkItem(
+ reg_root, update_state_key, installer::kUninstallArgumentsField,
+ uninstall_arguments.GetCommandLineString(), true,
+ WorkItem::WOW64_32KEY);
// MSI installations will manage their own uninstall shortcuts.
if (!installer_state.is_msi() && product.ShouldCreateUninstallEntry()) {
@@ -708,56 +719,60 @@ void AddUninstallShortcutWorkItems(const InstallerState& installer_state,
quoted_uninstall_cmd.AppendArguments(uninstall_arguments, false);
base::string16 uninstall_reg = browser_dist->GetUninstallRegPath();
- install_list->AddCreateRegKeyWorkItem(reg_root, uninstall_reg);
- install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg,
- installer::kUninstallDisplayNameField, browser_dist->GetDisplayName(),
- true);
- install_list->AddSetRegValueWorkItem(reg_root,
- uninstall_reg, installer::kUninstallStringField,
- quoted_uninstall_cmd.GetCommandLineString(), true);
- install_list->AddSetRegValueWorkItem(reg_root,
- uninstall_reg,
- L"InstallLocation",
- install_path.value(),
- true);
+ install_list->AddCreateRegKeyWorkItem(
+ reg_root, uninstall_reg, WorkItem::WOW64_DEFAULT);
+ install_list->AddSetRegValueWorkItem(
+ reg_root, uninstall_reg, installer::kUninstallDisplayNameField,
+ browser_dist->GetDisplayName(), true, WorkItem::WOW64_DEFAULT);
+ install_list->AddSetRegValueWorkItem(
+ reg_root, uninstall_reg, installer::kUninstallStringField,
+ quoted_uninstall_cmd.GetCommandLineString(), true,
+ WorkItem::WOW64_DEFAULT);
+ install_list->AddSetRegValueWorkItem(
+ reg_root, uninstall_reg, L"InstallLocation",
+ install_path.value(), true, WorkItem::WOW64_DEFAULT);
BrowserDistribution* dist = product.distribution();
base::string16 chrome_icon = ShellUtil::FormatIconLocation(
install_path.Append(dist->GetIconFilename()).value(),
dist->GetIconIndex(BrowserDistribution::SHORTCUT_CHROME));
install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg,
- L"DisplayIcon", chrome_icon, true);
+ L"DisplayIcon", chrome_icon, true, WorkItem::WOW64_DEFAULT);
install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg,
L"NoModify", static_cast<DWORD>(1),
- true);
+ true, WorkItem::WOW64_DEFAULT);
install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg,
L"NoRepair", static_cast<DWORD>(1),
- true);
+ true, WorkItem::WOW64_DEFAULT);
install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg,
L"Publisher",
browser_dist->GetPublisherName(),
- true);
+ true, WorkItem::WOW64_DEFAULT);
install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg,
L"Version",
ASCIIToWide(new_version.GetString()),
- true);
+ true, WorkItem::WOW64_DEFAULT);
install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg,
L"DisplayVersion",
ASCIIToWide(new_version.GetString()),
- true);
+ true, WorkItem::WOW64_DEFAULT);
install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg,
L"InstallDate",
InstallUtil::GetCurrentDate(),
- false);
+ false, WorkItem::WOW64_DEFAULT);
const std::vector<uint16>& version_components = new_version.components();
if (version_components.size() == 4) {
// Our version should be in major.minor.build.rev.
- install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg,
- L"VersionMajor", static_cast<DWORD>(version_components[2]), true);
- install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg,
- L"VersionMinor", static_cast<DWORD>(version_components[3]), true);
+ install_list->AddSetRegValueWorkItem(
+ reg_root, uninstall_reg, L"VersionMajor",
+ static_cast<DWORD>(version_components[2]),
+ true, WorkItem::WOW64_DEFAULT);
+ install_list->AddSetRegValueWorkItem(
+ reg_root, uninstall_reg, L"VersionMinor",
+ static_cast<DWORD>(version_components[3]),
+ true, WorkItem::WOW64_DEFAULT);
}
}
}
@@ -772,15 +787,14 @@ void AddVersionKeyWorkItems(HKEY root,
// Create Version key for each distribution (if not already present) and set
// the new product version as the last step.
base::string16 version_key(dist->GetVersionKey());
- list->AddCreateRegKeyWorkItem(root, version_key);
+ list->AddCreateRegKeyWorkItem(root, version_key, WorkItem::WOW64_32KEY);
base::string16 product_name(dist->GetDisplayName());
list->AddSetRegValueWorkItem(root, version_key, google_update::kRegNameField,
- product_name, true); // overwrite name also
+ product_name, true, WorkItem::WOW64_32KEY); // overwrite name also
list->AddSetRegValueWorkItem(root, version_key,
- google_update::kRegOopcrashesField,
- static_cast<DWORD>(1),
- false); // set during first install
+ google_update::kRegOopcrashesField, static_cast<DWORD>(1), false,
+ WorkItem::WOW64_32KEY); // set during first install
if (add_language_identifier) {
// Write the language identifier of the current translation. Omaha's set of
// languages is a superset of Chrome's set of translations with this one
@@ -788,14 +802,14 @@ void AddVersionKeyWorkItems(HKEY root,
base::string16 language(GetCurrentTranslation());
if (LowerCaseEqualsASCII(language, "en-us"))
language.resize(2);
- list->AddSetRegValueWorkItem(root, version_key,
- google_update::kRegLangField, language,
- false); // do not overwrite language
+ list->AddSetRegValueWorkItem(
+ root, version_key, google_update::kRegLangField, language, false,
+ WorkItem::WOW64_32KEY); // do not overwrite language
}
list->AddSetRegValueWorkItem(root, version_key,
google_update::kRegVersionField,
- ASCIIToWide(new_version.GetString()),
- true); // overwrite version
+ ASCIIToWide(new_version.GetString()), true,
+ WorkItem::WOW64_32KEY); // overwrite version
}
// Mirror oeminstall the first time anything is installed multi. There is no
@@ -834,15 +848,17 @@ void AddOemInstallWorkItems(const InstallationState& original_state,
VLOG(1) << "Mirroring oeminstall=\"" << oem_install << "\" from "
<< BrowserDistribution::GetSpecificDistribution(source_type)->
GetDisplayName();
- install_list->AddCreateRegKeyWorkItem(root_key, multi_key);
+ install_list->AddCreateRegKeyWorkItem(
+ root_key, multi_key, WorkItem::WOW64_32KEY);
// Always overwrite an old value.
- install_list->AddSetRegValueWorkItem(root_key, multi_key,
- google_update::kRegOemInstallField,
- oem_install, true);
+ install_list->AddSetRegValueWorkItem(
+ root_key, multi_key, google_update::kRegOemInstallField, oem_install,
+ true, WorkItem::WOW64_32KEY);
} else {
// Clear any old value.
install_list->AddDeleteRegValueWorkItem(
- root_key, multi_key, google_update::kRegOemInstallField);
+ root_key, multi_key, google_update::kRegOemInstallField,
+ WorkItem::WOW64_32KEY);
}
}
}
@@ -889,14 +905,16 @@ void AddEulaAcceptedWorkItems(const InstallationState& original_state,
VLOG(1) << "Mirroring eulaaccepted=" << eula_accepted << " from "
<< BrowserDistribution::GetSpecificDistribution(product_type)->
GetDisplayName();
- install_list->AddCreateRegKeyWorkItem(root_key, multi_key);
+ install_list->AddCreateRegKeyWorkItem(
+ root_key, multi_key, WorkItem::WOW64_32KEY);
install_list->AddSetRegValueWorkItem(
root_key, multi_key, google_update::kRegEULAAceptedField,
- eula_accepted, true);
+ eula_accepted, true, WorkItem::WOW64_32KEY);
} else {
// Clear any old value.
install_list->AddDeleteRegValueWorkItem(
- root_key, multi_key, google_update::kRegEULAAceptedField);
+ root_key, multi_key, google_update::kRegEULAAceptedField,
+ WorkItem::WOW64_32KEY);
}
}
}
@@ -923,7 +941,7 @@ void AddGoogleUpdateWorkItems(const InstallationState& original_state,
install_list->AddCreateRegKeyWorkItem(
root_key,
installer_state.multi_package_binaries_distribution()->
- GetStateMediumKey().c_str());
+ GetStateMediumKey().c_str(), WorkItem::WOW64_32KEY);
}
// Creating the ClientState key for binaries, if we're migrating to multi then
@@ -935,14 +953,16 @@ void AddGoogleUpdateWorkItems(const InstallationState& original_state,
const base::string16& brand(chrome_product_state->brand());
if (!brand.empty()) {
- install_list->AddCreateRegKeyWorkItem(root_key, multi_key);
+ install_list->AddCreateRegKeyWorkItem(root_key, multi_key,
+ WorkItem::WOW64_32KEY);
// Write Chrome's brand code to the multi key. Never overwrite the value
// if one is already present (although this shouldn't happen).
install_list->AddSetRegValueWorkItem(root_key,
multi_key,
google_update::kRegBrandField,
brand,
- false);
+ false,
+ WorkItem::WOW64_32KEY);
}
}
@@ -982,12 +1002,14 @@ void AddUsageStatsWorkItems(const InstallationState& original_state,
if (value_found) {
base::string16 state_key(
installer_state.multi_package_binaries_distribution()->GetStateKey());
- install_list->AddCreateRegKeyWorkItem(root_key, state_key);
+ install_list->AddCreateRegKeyWorkItem(
+ root_key, state_key, WorkItem::WOW64_32KEY);
// Overwrite any existing value so that overinstalls (where Omaha writes a
// new value into a product's state key) pick up the correct value.
install_list->AddSetRegValueWorkItem(root_key, state_key,
google_update::kRegUsageStatsField,
- usagestats, true);
+ usagestats, true,
+ WorkItem::WOW64_32KEY);
for (Products::const_iterator scan = products.begin(), end = products.end();
scan != end; ++scan) {
@@ -997,15 +1019,18 @@ void AddUsageStatsWorkItems(const InstallationState& original_state,
if (installer_state.system_install()) {
install_list->AddDeleteRegValueWorkItem(
root_key, dist->GetStateMediumKey(),
- google_update::kRegUsageStatsField);
+ google_update::kRegUsageStatsField,
+ WorkItem::WOW64_32KEY);
// Previous versions of Chrome also wrote a value in HKCU even for
// system-level installs, so clean that up.
install_list->AddDeleteRegValueWorkItem(
HKEY_CURRENT_USER, dist->GetStateKey(),
- google_update::kRegUsageStatsField);
+ google_update::kRegUsageStatsField,
+ WorkItem::WOW64_32KEY);
}
install_list->AddDeleteRegValueWorkItem(
- root_key, dist->GetStateKey(), google_update::kRegUsageStatsField);
+ root_key, dist->GetStateKey(), google_update::kRegUsageStatsField,
+ WorkItem::WOW64_32KEY);
}
}
}
@@ -1057,15 +1082,17 @@ bool AppendPostInstallTasks(const InstallerState& installer_state,
if (current_version) {
in_use_update_work_items->AddSetRegValueWorkItem(root, version_key,
google_update::kRegOldVersionField,
- ASCIIToWide(current_version->GetString()), true);
+ ASCIIToWide(current_version->GetString()), true,
+ WorkItem::WOW64_32KEY);
}
if (critical_version.IsValid()) {
in_use_update_work_items->AddSetRegValueWorkItem(root, version_key,
google_update::kRegCriticalVersionField,
- ASCIIToWide(critical_version.GetString()), true);
+ ASCIIToWide(critical_version.GetString()), true,
+ WorkItem::WOW64_32KEY);
} else {
in_use_update_work_items->AddDeleteRegValueWorkItem(root, version_key,
- google_update::kRegCriticalVersionField);
+ google_update::kRegCriticalVersionField, WorkItem::WOW64_32KEY);
}
// Adding this registry entry for all products (but the binaries) is
@@ -1078,7 +1105,8 @@ bool AppendPostInstallTasks(const InstallerState& installer_state,
products[i]->AppendRenameFlags(&product_rename_cmd);
in_use_update_work_items->AddSetRegValueWorkItem(
root, version_key, google_update::kRegRenameCmdField,
- product_rename_cmd.GetCommandLineString(), true);
+ product_rename_cmd.GetCommandLineString(), true,
+ WorkItem::WOW64_32KEY);
}
}
@@ -1097,11 +1125,11 @@ bool AppendPostInstallTasks(const InstallerState& installer_state,
BrowserDistribution* dist = products[i]->distribution();
base::string16 version_key(dist->GetVersionKey());
regular_update_work_items->AddDeleteRegValueWorkItem(root, version_key,
- google_update::kRegOldVersionField);
+ google_update::kRegOldVersionField, WorkItem::WOW64_32KEY);
regular_update_work_items->AddDeleteRegValueWorkItem(root, version_key,
- google_update::kRegCriticalVersionField);
+ google_update::kRegCriticalVersionField, WorkItem::WOW64_32KEY);
regular_update_work_items->AddDeleteRegValueWorkItem(root, version_key,
- google_update::kRegRenameCmdField);
+ google_update::kRegRenameCmdField, WorkItem::WOW64_32KEY);
}
post_install_task_list->AddWorkItem(regular_update_work_items.release());
@@ -1264,7 +1292,7 @@ void AddSetMsiMarkerWorkItem(const InstallerState& installer_state,
DWORD msi_value = set ? 1 : 0;
WorkItem* set_msi_work_item = work_item_list->AddSetRegValueWorkItem(
installer_state.root_key(), dist->GetStateKey(),
- google_update::kRegMSIField, msi_value, true);
+ google_update::kRegMSIField, msi_value, true, WorkItem::WOW64_32KEY);
DCHECK(set_msi_work_item);
set_msi_work_item->set_ignore_failure(true);
set_msi_work_item->set_log_message("Could not write MSI marker!");
@@ -1317,18 +1345,20 @@ void AddDelegateExecuteWorkItems(const InstallerState& installer_state,
command.append(delegate_execute.value()).append(1, L'"');
// Register the CommandExecuteImpl class in Software\Classes\CLSID\...
- list->AddCreateRegKeyWorkItem(root, delegate_execute_path);
+ list->AddCreateRegKeyWorkItem(root, delegate_execute_path,
+ WorkItem::WOW64_32KEY);
list->AddSetRegValueWorkItem(root, delegate_execute_path, L"",
- L"CommandExecuteImpl Class", true);
+ L"CommandExecuteImpl Class", true, WorkItem::WOW64_32KEY);
base::string16 subkey(delegate_execute_path);
subkey.append(L"\\LocalServer32");
- list->AddCreateRegKeyWorkItem(root, subkey);
- list->AddSetRegValueWorkItem(root, subkey, L"", command, true);
+ list->AddCreateRegKeyWorkItem(root, subkey, WorkItem::WOW64_32KEY);
+ list->AddSetRegValueWorkItem(
+ root, subkey, L"", command, true, WorkItem::WOW64_32KEY);
list->AddSetRegValueWorkItem(root, subkey, L"ServerExecutable",
- delegate_execute.value(), true);
+ delegate_execute.value(), true, WorkItem::WOW64_32KEY);
subkey.assign(delegate_execute_path).append(L"\\Programmable");
- list->AddCreateRegKeyWorkItem(root, subkey);
+ list->AddCreateRegKeyWorkItem(root, subkey, WorkItem::WOW64_32KEY);
}
}
@@ -1353,9 +1383,10 @@ void AddActiveSetupWorkItems(const InstallerState& installer_state,
const base::string16 active_setup_path(InstallUtil::GetActiveSetupPath(dist));
VLOG(1) << "Adding registration items for Active Setup.";
- list->AddCreateRegKeyWorkItem(root, active_setup_path);
+ list->AddCreateRegKeyWorkItem(root, active_setup_path,
+ WorkItem::WOW64_DEFAULT);
list->AddSetRegValueWorkItem(root, active_setup_path, L"",
- dist->GetDisplayName(), true);
+ dist->GetDisplayName(), true, WorkItem::WOW64_DEFAULT);
base::FilePath active_setup_exe(installer_state.GetInstallerDirectory(
new_version).Append(kActiveSetupExe));
@@ -1365,18 +1396,18 @@ void AddActiveSetupWorkItems(const InstallerState& installer_state,
cmd.AppendSwitch(installer::switches::kSystemLevel);
product.AppendProductFlags(&cmd);
list->AddSetRegValueWorkItem(root, active_setup_path, L"StubPath",
- cmd.GetCommandLineString(), true);
+ cmd.GetCommandLineString(), true, WorkItem::WOW64_DEFAULT);
// TODO(grt): http://crbug.com/75152 Write a reference to a localized
// resource.
list->AddSetRegValueWorkItem(root, active_setup_path, L"Localized Name",
- dist->GetDisplayName(), true);
+ dist->GetDisplayName(), true, WorkItem::WOW64_DEFAULT);
list->AddSetRegValueWorkItem(root, active_setup_path, L"IsInstalled",
- static_cast<DWORD>(1U), true);
+ static_cast<DWORD>(1U), true, WorkItem::WOW64_DEFAULT);
list->AddSetRegValueWorkItem(root, active_setup_path, L"Version",
- kActiveSetupVersion, true);
+ kActiveSetupVersion, true, WorkItem::WOW64_DEFAULT);
}
void AddDeleteOldIELowRightsPolicyWorkItems(
@@ -1386,7 +1417,8 @@ void AddDeleteOldIELowRightsPolicyWorkItems(
base::string16 key_path;
GetOldIELowRightsElevationPolicyKeyPath(&key_path);
- install_list->AddDeleteRegKeyWorkItem(installer_state.root_key(), key_path);
+ install_list->AddDeleteRegKeyWorkItem(
+ installer_state.root_key(), key_path, WorkItem::WOW64_DEFAULT);
}
void AppendUninstallCommandLineFlags(const InstallerState& installer_state,
@@ -1438,8 +1470,9 @@ void AddOsUpgradeWorkItems(const InstallerState& installer_state,
GetRegCommandKey(product.distribution(), kCmdOnOsUpgrade));
if (installer_state.operation() == InstallerState::UNINSTALL) {
- install_list->AddDeleteRegKeyWorkItem(root_key, cmd_key)->
- set_log_message("Removing OS upgrade command");
+ install_list->AddDeleteRegKeyWorkItem(root_key, cmd_key,
+ WorkItem::WOW64_DEFAULT)->
+ set_log_message("Removing OS upgrade command");
} else {
// Register with Google Update to have setup.exe --on-os-upgrade called on
// OS upgrade.
@@ -1470,8 +1503,9 @@ void AddQueryEULAAcceptanceWorkItems(const InstallerState& installer_state,
base::string16 cmd_key(
GetRegCommandKey(product.distribution(), kCmdQueryEULAAcceptance));
if (installer_state.operation() == InstallerState::UNINSTALL) {
- work_item_list->AddDeleteRegKeyWorkItem(root_key, cmd_key)->
- set_log_message("Removing query EULA acceptance command");
+ work_item_list->AddDeleteRegKeyWorkItem(root_key, cmd_key,
+ WorkItem::WOW64_32KEY)->
+ set_log_message("Removing query EULA acceptance command");
} else {
CommandLine cmd_line(installer_state
.GetInstallerDirectory(new_version)
@@ -1501,8 +1535,9 @@ void AddQuickEnableChromeFrameWorkItems(const InstallerState& installer_state,
// Do this even if multi-install Chrome isn't installed to ensure that it is
// not left behind in any case.
work_item_list->AddDeleteRegKeyWorkItem(
- installer_state.root_key(), cmd_key)->set_log_message(
- "removing " + base::UTF16ToASCII(kCmdQuickEnableCf) + " command");
+ installer_state.root_key(), cmd_key, WorkItem::WOW64_32KEY)
+ ->set_log_message(
+ "removing " + base::UTF16ToASCII(kCmdQuickEnableCf) + " command");
}

Powered by Google App Engine
This is Rietveld 408576698