Index: chrome/installer/setup/install_worker.cc |
diff --git a/chrome/installer/setup/install_worker.cc b/chrome/installer/setup/install_worker.cc |
index 7d774e2352dd0750509d1a3928d4192eb7e0b49c..6fa9674a79dbe0f2ff17a1f0d5fc2cf9fcd06d1d 100644 |
--- a/chrome/installer/setup/install_worker.cc |
+++ b/chrome/installer/setup/install_worker.cc |
@@ -212,7 +212,6 @@ void AddInstallerCopyTasks(const InstallerState& installer_state, |
void AddInstallAppCommandWorkItems(const InstallerState& installer_state, |
const InstallationState& machine_state, |
- const FilePath& setup_path, |
const Version& new_version, |
const Product& product, |
WorkItemList* work_item_list) { |
@@ -253,12 +252,16 @@ void AddProductSpecificWorkItems(const InstallationState& original_state, |
} |
if (p.is_chrome_app_host()) { |
AddInstallAppCommandWorkItems(installer_state, original_state, |
- setup_path, new_version, p, list); |
+ new_version, p, list); |
} |
if (p.is_chrome()) { |
AddOsUpgradeWorkItems(installer_state, setup_path, new_version, p, |
list); |
} |
+ if (p.is_chrome_binaries()) { |
+ AddQueryEULAAcceptanceWorkItems(installer_state, setup_path, new_version, |
+ p, list); |
+ } |
} |
} |
@@ -1637,4 +1640,33 @@ void AddOsUpgradeWorkItems(const InstallerState& installer_state, |
} |
} |
+void AddQueryEULAAcceptanceWorkItems(const InstallerState& installer_state, |
+ const FilePath& setup_path, |
+ const Version& new_version, |
+ const Product& product, |
+ WorkItemList* work_item_list) { |
+ const HKEY root_key = installer_state.root_key(); |
+ string16 cmd_key(product.distribution()->GetVersionKey()); |
+ cmd_key.append(1, FilePath::kSeparators[0]) |
+ .append(google_update::kRegCommandsKey) |
+ .append(1, FilePath::kSeparators[0]) |
+ .append(kCmdQueryEULAAcceptance); |
+ if (installer_state.operation() == InstallerState::UNINSTALL) { |
+ work_item_list->AddDeleteRegKeyWorkItem(root_key, cmd_key)-> |
+ set_log_message("Removing query EULA acceptance command"); |
+ } else { |
+ CommandLine cmd_line(installer_state |
+ .GetInstallerDirectory(new_version) |
+ .Append(setup_path.BaseName())); |
+ cmd_line.AppendSwitch(switches::kQueryEULAAcceptance); |
+ if (installer_state.system_install()) |
+ cmd_line.AppendSwitch(installer::switches::kSystemLevel); |
+ if (installer_state.verbose_logging()) |
+ cmd_line.AppendSwitch(installer::switches::kVerboseLogging); |
+ AppCommand cmd(cmd_line.GetCommandLineString()); |
+ cmd.set_is_web_accessible(true); |
+ cmd.AddWorkItems(installer_state.root_key(), cmd_key, work_item_list); |
+ } |
+} |
+ |
} // namespace installer |