Chromium Code Reviews| 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..b9cc173c00ab9f8abaf4fb21ce87f45431c5246b 100644 |
| --- a/chrome/installer/setup/install_worker.cc |
| +++ b/chrome/installer/setup/install_worker.cc |
| @@ -214,9 +214,11 @@ void AddCommandWithParameterWorkItems(const InstallerState& installer_state, |
| GetRegCommandKey(product.distribution(), command_key)); |
| 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"); |
| + work_item_list->AddDeleteRegKeyWorkItem(installer_state.root_key(), |
| + full_cmd_key, |
| + WorkItem::kWow64Default) |
| + ->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 +442,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::kWow64Default); |
| delete_reg_key->set_ignore_failure(true); |
| // Then attempt to delete the old installation's start menu shortcut. |
| @@ -609,22 +611,25 @@ void AddUninstallDelegateExecuteWorkItems( |
| WorkItemList* list) { |
| VLOG(1) << "Adding unregistration items for DelegateExecute verb handler in " |
| << root; |
| - list->AddDeleteRegKeyWorkItem(root, delegate_execute_path); |
| + list->AddDeleteRegKeyWorkItem(root, |
| + delegate_execute_path, |
| + WorkItem::kWow64Default); |
| // 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::kWow64Default); |
| 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::kWow64Default); |
| } |
| // Google Chrome Canary, between 20.0.1101.0 (crrev.com/132190) and 20.0.1106.0 |
| @@ -693,12 +698,21 @@ 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, |
| + install_list->AddCreateRegKeyWorkItem( |
| + reg_root, update_state_key, WorkItem::kWow64Default); |
| + install_list->AddSetRegValueWorkItem(reg_root, |
| + update_state_key, |
| + installer::kUninstallStringField, |
| + installer_path.value(), |
| + true, |
| + WorkItem::kWow64Default); |
| + install_list->AddSetRegValueWorkItem( |
| + reg_root, |
| + update_state_key, |
| installer::kUninstallArgumentsField, |
| - uninstall_arguments.GetCommandLineString(), true); |
| + uninstall_arguments.GetCommandLineString(), |
| + true, |
| + WorkItem::kWow64Default); |
| // MSI installations will manage their own uninstall shortcuts. |
| if (!installer_state.is_msi() && product.ShouldCreateUninstallEntry()) { |
| @@ -708,56 +722,93 @@ 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->AddCreateRegKeyWorkItem( |
| + reg_root, uninstall_reg, WorkItem::kWow64Default); |
| install_list->AddSetRegValueWorkItem(reg_root, |
| - uninstall_reg, installer::kUninstallStringField, |
| - quoted_uninstall_cmd.GetCommandLineString(), true); |
| + uninstall_reg, |
| + installer::kUninstallDisplayNameField, |
| + browser_dist->GetDisplayName(), |
| + true, |
| + WorkItem::kWow64Default); |
| + install_list->AddSetRegValueWorkItem( |
| + reg_root, |
| + uninstall_reg, |
| + installer::kUninstallStringField, |
| + quoted_uninstall_cmd.GetCommandLineString(), |
| + true, |
| + WorkItem::kWow64Default); |
| install_list->AddSetRegValueWorkItem(reg_root, |
| uninstall_reg, |
| L"InstallLocation", |
| install_path.value(), |
| - true); |
| + true, |
| + WorkItem::kWow64Default); |
| 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); |
| - install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg, |
| - L"NoModify", static_cast<DWORD>(1), |
| - true); |
| - install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg, |
| - L"NoRepair", static_cast<DWORD>(1), |
| - true); |
| - |
| - install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg, |
| + install_list->AddSetRegValueWorkItem(reg_root, |
| + uninstall_reg, |
| + L"DisplayIcon", |
| + chrome_icon, |
| + true, |
| + WorkItem::kWow64Default); |
| + install_list->AddSetRegValueWorkItem(reg_root, |
| + uninstall_reg, |
| + L"NoModify", |
| + static_cast<DWORD>(1), |
| + true, |
| + WorkItem::kWow64Default); |
| + install_list->AddSetRegValueWorkItem(reg_root, |
| + uninstall_reg, |
| + L"NoRepair", |
| + static_cast<DWORD>(1), |
| + true, |
| + WorkItem::kWow64Default); |
| + |
| + install_list->AddSetRegValueWorkItem(reg_root, |
| + uninstall_reg, |
| L"Publisher", |
| browser_dist->GetPublisherName(), |
| - true); |
| - install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg, |
| + true, |
| + WorkItem::kWow64Default); |
| + install_list->AddSetRegValueWorkItem(reg_root, |
| + uninstall_reg, |
| L"Version", |
| ASCIIToWide(new_version.GetString()), |
| - true); |
| - install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg, |
| + true, |
| + WorkItem::kWow64Default); |
| + install_list->AddSetRegValueWorkItem(reg_root, |
| + uninstall_reg, |
| L"DisplayVersion", |
| ASCIIToWide(new_version.GetString()), |
| - true); |
| - install_list->AddSetRegValueWorkItem(reg_root, uninstall_reg, |
| + true, |
| + WorkItem::kWow64Default); |
| + install_list->AddSetRegValueWorkItem(reg_root, |
| + uninstall_reg, |
| L"InstallDate", |
| InstallUtil::GetCurrentDate(), |
| - false); |
| + false, |
| + WorkItem::kWow64Default); |
| 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::kWow64Default); |
| + install_list->AddSetRegValueWorkItem( |
| + reg_root, |
| + uninstall_reg, |
| + L"VersionMinor", |
| + static_cast<DWORD>(version_components[3]), |
| + true, |
| + WorkItem::kWow64Default); |
| } |
| } |
| } |
| @@ -772,15 +823,21 @@ 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::kWow64Default); |
| base::string16 product_name(dist->GetDisplayName()); |
| - list->AddSetRegValueWorkItem(root, version_key, google_update::kRegNameField, |
| - product_name, true); // overwrite name also |
| - list->AddSetRegValueWorkItem(root, version_key, |
| + list->AddSetRegValueWorkItem(root, |
| + version_key, |
| + google_update::kRegNameField, |
| + product_name, |
| + true, // overwrite name also |
| + WorkItem::kWow64Default); |
| + list->AddSetRegValueWorkItem(root, |
| + version_key, |
| google_update::kRegOopcrashesField, |
| static_cast<DWORD>(1), |
| - false); // set during first install |
| + false, // set during first install |
| + WorkItem::kWow64Default); |
| 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 +845,19 @@ 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, // do not overwrite language |
| + WorkItem::kWow64Default); |
| } |
| - list->AddSetRegValueWorkItem(root, version_key, |
| + list->AddSetRegValueWorkItem(root, |
| + version_key, |
| google_update::kRegVersionField, |
| ASCIIToWide(new_version.GetString()), |
| - true); // overwrite version |
| + true, // overwrite version |
| + WorkItem::kWow64Default); |
| } |
| // Mirror oeminstall the first time anything is installed multi. There is no |
| @@ -834,15 +896,22 @@ 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::kWow64Default); |
| // Always overwrite an old value. |
| - install_list->AddSetRegValueWorkItem(root_key, multi_key, |
| + install_list->AddSetRegValueWorkItem(root_key, |
| + multi_key, |
| google_update::kRegOemInstallField, |
| - oem_install, true); |
| + oem_install, |
| + true, |
| + WorkItem::kWow64Default); |
| } else { |
| // Clear any old value. |
| install_list->AddDeleteRegValueWorkItem( |
| - root_key, multi_key, google_update::kRegOemInstallField); |
| + root_key, |
| + multi_key, |
| + google_update::kRegOemInstallField, |
| + WorkItem::kWow64Default); |
| } |
| } |
| } |
| @@ -889,14 +958,21 @@ 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->AddSetRegValueWorkItem( |
| - root_key, multi_key, google_update::kRegEULAAceptedField, |
| - eula_accepted, true); |
| + install_list->AddCreateRegKeyWorkItem( |
| + root_key, multi_key, WorkItem::kWow64Default); |
| + install_list->AddSetRegValueWorkItem(root_key, |
| + multi_key, |
| + google_update::kRegEULAAceptedField, |
| + eula_accepted, |
| + true, |
| + WorkItem::kWow64Default); |
| } else { |
| // Clear any old value. |
| install_list->AddDeleteRegValueWorkItem( |
| - root_key, multi_key, google_update::kRegEULAAceptedField); |
| + root_key, |
| + multi_key, |
| + google_update::kRegEULAAceptedField, |
| + WorkItem::kWow64Default); |
| } |
| } |
| } |
| @@ -922,8 +998,10 @@ void AddGoogleUpdateWorkItems(const InstallationState& original_state, |
| if (system_install) { |
| install_list->AddCreateRegKeyWorkItem( |
| root_key, |
| - installer_state.multi_package_binaries_distribution()-> |
| - GetStateMediumKey().c_str()); |
| + installer_state.multi_package_binaries_distribution() |
| + ->GetStateMediumKey() |
| + .c_str(), |
|
grt (UTC plus 2)
2014/05/21 16:41:05
please move this up to the previous line. i think
Will Harris
2014/05/21 23:23:16
Done.
|
| + WorkItem::kWow64Default); |
| } |
| // Creating the ClientState key for binaries, if we're migrating to multi then |
| @@ -935,14 +1013,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::kWow64Default); |
| // 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::kWow64Default); |
| } |
| } |
| @@ -982,12 +1062,16 @@ 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::kWow64Default); |
| // 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, |
| + install_list->AddSetRegValueWorkItem(root_key, |
| + state_key, |
| google_update::kRegUsageStatsField, |
| - usagestats, true); |
| + usagestats, |
| + true, |
| + WorkItem::kWow64Default); |
| for (Products::const_iterator scan = products.begin(), end = products.end(); |
| scan != end; ++scan) { |
| @@ -996,16 +1080,23 @@ void AddUsageStatsWorkItems(const InstallationState& original_state, |
| BrowserDistribution* dist = (*scan)->distribution(); |
| if (installer_state.system_install()) { |
| install_list->AddDeleteRegValueWorkItem( |
| - root_key, dist->GetStateMediumKey(), |
| - google_update::kRegUsageStatsField); |
| + root_key, |
| + dist->GetStateMediumKey(), |
| + google_update::kRegUsageStatsField, |
| + WorkItem::kWow64Default); |
| // 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); |
| + HKEY_CURRENT_USER, |
| + dist->GetStateKey(), |
| + google_update::kRegUsageStatsField, |
| + WorkItem::kWow64Default); |
| } |
| install_list->AddDeleteRegValueWorkItem( |
| - root_key, dist->GetStateKey(), google_update::kRegUsageStatsField); |
| + root_key, |
| + dist->GetStateKey(), |
| + google_update::kRegUsageStatsField, |
| + WorkItem::kWow64Default); |
| } |
| } |
| } |
| @@ -1055,17 +1146,28 @@ bool AppendPostInstallTasks(const InstallerState& installer_state, |
| version_key = dist->GetVersionKey(); |
| if (current_version) { |
| - in_use_update_work_items->AddSetRegValueWorkItem(root, version_key, |
| + in_use_update_work_items->AddSetRegValueWorkItem( |
| + root, |
| + version_key, |
| google_update::kRegOldVersionField, |
| - ASCIIToWide(current_version->GetString()), true); |
| + ASCIIToWide(current_version->GetString()), |
| + true, |
| + WorkItem::kWow64Default); |
| } |
| if (critical_version.IsValid()) { |
| - in_use_update_work_items->AddSetRegValueWorkItem(root, version_key, |
| + in_use_update_work_items->AddSetRegValueWorkItem( |
| + root, |
| + version_key, |
| google_update::kRegCriticalVersionField, |
| - ASCIIToWide(critical_version.GetString()), true); |
| + ASCIIToWide(critical_version.GetString()), |
| + true, |
| + WorkItem::kWow64Default); |
| } else { |
| - in_use_update_work_items->AddDeleteRegValueWorkItem(root, version_key, |
| - google_update::kRegCriticalVersionField); |
| + in_use_update_work_items->AddDeleteRegValueWorkItem( |
| + root, |
| + version_key, |
| + google_update::kRegCriticalVersionField, |
| + WorkItem::kWow64Default); |
| } |
| // Adding this registry entry for all products (but the binaries) is |
| @@ -1077,8 +1179,12 @@ bool AppendPostInstallTasks(const InstallerState& installer_state, |
| CommandLine product_rename_cmd(rename); |
| products[i]->AppendRenameFlags(&product_rename_cmd); |
| in_use_update_work_items->AddSetRegValueWorkItem( |
| - root, version_key, google_update::kRegRenameCmdField, |
| - product_rename_cmd.GetCommandLineString(), true); |
| + root, |
| + version_key, |
| + google_update::kRegRenameCmdField, |
| + product_rename_cmd.GetCommandLineString(), |
| + true, |
| + WorkItem::kWow64Default); |
| } |
| } |
| @@ -1096,12 +1202,21 @@ bool AppendPostInstallTasks(const InstallerState& installer_state, |
| for (size_t i = 0; i < products.size(); ++i) { |
| BrowserDistribution* dist = products[i]->distribution(); |
| base::string16 version_key(dist->GetVersionKey()); |
| - regular_update_work_items->AddDeleteRegValueWorkItem(root, version_key, |
| - google_update::kRegOldVersionField); |
| - regular_update_work_items->AddDeleteRegValueWorkItem(root, version_key, |
| - google_update::kRegCriticalVersionField); |
| - regular_update_work_items->AddDeleteRegValueWorkItem(root, version_key, |
| - google_update::kRegRenameCmdField); |
| + regular_update_work_items->AddDeleteRegValueWorkItem( |
| + root, |
| + version_key, |
| + google_update::kRegOldVersionField, |
| + WorkItem::kWow64Default); |
| + regular_update_work_items->AddDeleteRegValueWorkItem( |
| + root, |
| + version_key, |
| + google_update::kRegCriticalVersionField, |
| + WorkItem::kWow64Default); |
| + regular_update_work_items->AddDeleteRegValueWorkItem( |
| + root, |
| + version_key, |
| + google_update::kRegRenameCmdField, |
| + WorkItem::kWow64Default); |
| } |
| post_install_task_list->AddWorkItem(regular_update_work_items.release()); |
| @@ -1262,9 +1377,13 @@ void AddSetMsiMarkerWorkItem(const InstallerState& installer_state, |
| WorkItemList* work_item_list) { |
| DCHECK(work_item_list); |
| 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); |
| + WorkItem* set_msi_work_item = |
| + work_item_list->AddSetRegValueWorkItem(installer_state.root_key(), |
| + dist->GetStateKey(), |
| + google_update::kRegMSIField, |
| + msi_value, |
| + true, |
| + WorkItem::kWow64Default); |
| 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 +1436,28 @@ 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->AddSetRegValueWorkItem(root, delegate_execute_path, L"", |
| - L"CommandExecuteImpl Class", true); |
| + list->AddCreateRegKeyWorkItem( |
| + root, delegate_execute_path, WorkItem::kWow64Default); |
| + list->AddSetRegValueWorkItem(root, |
| + delegate_execute_path, |
| + L"", |
| + L"CommandExecuteImpl Class", |
| + true, |
| + WorkItem::kWow64Default); |
| base::string16 subkey(delegate_execute_path); |
| subkey.append(L"\\LocalServer32"); |
| - list->AddCreateRegKeyWorkItem(root, subkey); |
| - list->AddSetRegValueWorkItem(root, subkey, L"", command, true); |
| - list->AddSetRegValueWorkItem(root, subkey, L"ServerExecutable", |
| - delegate_execute.value(), true); |
| + list->AddCreateRegKeyWorkItem(root, subkey, WorkItem::kWow64Default); |
| + list->AddSetRegValueWorkItem( |
| + root, subkey, L"", command, true, WorkItem::kWow64Default); |
| + list->AddSetRegValueWorkItem(root, |
| + subkey, |
| + L"ServerExecutable", |
| + delegate_execute.value(), |
| + true, |
| + WorkItem::kWow64Default); |
| subkey.assign(delegate_execute_path).append(L"\\Programmable"); |
| - list->AddCreateRegKeyWorkItem(root, subkey); |
| + list->AddCreateRegKeyWorkItem(root, subkey, WorkItem::kWow64Default); |
| } |
| } |
| @@ -1353,9 +1482,14 @@ 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->AddSetRegValueWorkItem(root, active_setup_path, L"", |
| - dist->GetDisplayName(), true); |
| + list->AddCreateRegKeyWorkItem( |
| + root, active_setup_path, WorkItem::kWow64Default); |
| + list->AddSetRegValueWorkItem(root, |
| + active_setup_path, |
| + L"", |
| + dist->GetDisplayName(), |
| + true, |
| + WorkItem::kWow64Default); |
| base::FilePath active_setup_exe(installer_state.GetInstallerDirectory( |
| new_version).Append(kActiveSetupExe)); |
| @@ -1364,19 +1498,35 @@ void AddActiveSetupWorkItems(const InstallerState& installer_state, |
| cmd.AppendSwitch(installer::switches::kVerboseLogging); |
| cmd.AppendSwitch(installer::switches::kSystemLevel); |
| product.AppendProductFlags(&cmd); |
| - list->AddSetRegValueWorkItem(root, active_setup_path, L"StubPath", |
| - cmd.GetCommandLineString(), true); |
| + list->AddSetRegValueWorkItem(root, |
| + active_setup_path, |
| + L"StubPath", |
| + cmd.GetCommandLineString(), |
| + true, |
| + WorkItem::kWow64Default); |
| // 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); |
| - |
| - list->AddSetRegValueWorkItem(root, active_setup_path, L"IsInstalled", |
| - static_cast<DWORD>(1U), true); |
| - |
| - list->AddSetRegValueWorkItem(root, active_setup_path, L"Version", |
| - kActiveSetupVersion, true); |
| + list->AddSetRegValueWorkItem(root, |
| + active_setup_path, |
| + L"Localized Name", |
| + dist->GetDisplayName(), |
| + true, |
| + WorkItem::kWow64Default); |
| + |
| + list->AddSetRegValueWorkItem(root, |
| + active_setup_path, |
| + L"IsInstalled", |
| + static_cast<DWORD>(1U), |
| + true, |
| + WorkItem::kWow64Default); |
| + |
| + list->AddSetRegValueWorkItem(root, |
| + active_setup_path, |
| + L"Version", |
| + kActiveSetupVersion, |
| + true, |
| + WorkItem::kWow64Default); |
| } |
| void AddDeleteOldIELowRightsPolicyWorkItems( |
| @@ -1386,7 +1536,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::kWow64Default); |
| } |
| void AppendUninstallCommandLineFlags(const InstallerState& installer_state, |
| @@ -1438,8 +1589,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::kWow64Default) |
| + ->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 +1622,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::kWow64Default) |
| + ->set_log_message("Removing query EULA acceptance command"); |
| } else { |
| CommandLine cmd_line(installer_state |
| .GetInstallerDirectory(new_version) |
| @@ -1501,9 +1654,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::kWow64Default) |
| + ->set_log_message("removing " + |
| + base::UTF16ToASCII(kCmdQuickEnableCf) + " command"); |
| } |
| } // namespace installer |