| Index: chrome/installer/setup/setup_main.cc
|
| diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc
|
| index 1e8df551a4042804beff3547b2a0194eea557a4f..064412f0bb8504e2a8a30d8341992cd2cc39ad0d 100644
|
| --- a/chrome/installer/setup/setup_main.cc
|
| +++ b/chrome/installer/setup/setup_main.cc
|
| @@ -57,6 +57,7 @@
|
| #include "chrome/installer/setup/setup_singleton.h"
|
| #include "chrome/installer/setup/setup_util.h"
|
| #include "chrome/installer/setup/uninstall.h"
|
| +#include "chrome/installer/setup/user_experiment.h"
|
| #include "chrome/installer/util/browser_distribution.h"
|
| #include "chrome/installer/util/delete_after_reboot_helper.h"
|
| #include "chrome/installer/util/delete_old_versions.h"
|
| @@ -871,13 +872,11 @@ bool HandleNonInstallCmdLineOptions(const base::FilePath& setup_exe,
|
| // NOTE: Should the work done here, on kConfigureUserSettings, change:
|
| // kActiveSetupVersion in install_worker.cc needs to be increased for Active
|
| // Setup to invoke this again for all users of this install.
|
| - const Product& chrome_install = installer_state->product();
|
| installer::InstallStatus status = installer::INVALID_STATE_FOR_OPTION;
|
| if (installer_state->system_install()) {
|
| bool force =
|
| cmd_line.HasSwitch(installer::switches::kForceConfigureUserSettings);
|
| - installer::HandleActiveSetupForBrowser(installer_state->target_path(),
|
| - chrome_install, force);
|
| + installer::HandleActiveSetupForBrowser(*installer_state, force);
|
| status = installer::INSTALL_REPAIRED;
|
| } else {
|
| LOG(DFATAL)
|
| @@ -979,6 +978,11 @@ bool HandleNonInstallCmdLineOptions(const base::FilePath& setup_exe,
|
| << setup_exe.value();
|
| }
|
| *exit_code = InstallUtil::GetInstallReturnCode(status);
|
| + } else if (cmd_line.HasSwitch(installer::switches::kUserExperiment)) {
|
| + installer::RunUserExperiment(cmd_line,
|
| + MasterPreferences::ForCurrentProcess(),
|
| + original_state, installer_state);
|
| + exit_code = 0;
|
| } else if (cmd_line.HasSwitch(installer::switches::kInactiveUserToast)) {
|
| // Launch the inactive user toast experiment.
|
| int flavor = -1;
|
| @@ -1480,6 +1484,15 @@ int WINAPI wWinMain(HINSTANCE instance, HINSTANCE prev_instance,
|
| InstallProducts(original_state, setup_exe, cmd_line, prefs,
|
| &installer_state, &installer_directory);
|
| DoLegacyCleanups(installer_state, install_status);
|
| +
|
| + // It may be time to kick off an experiment if this was a successful update.
|
| + if ((install_status == installer::NEW_VERSION_UPDATED ||
|
| + install_status == installer::IN_USE_UPDATED) &&
|
| + installer::ShouldRunUserExperiment(installer_state)) {
|
| + installer::BeginUserExperiment(
|
| + installer_state, installer_directory.Append(setup_exe.BaseName()),
|
| + !system_install);
|
| + }
|
| }
|
|
|
| UMA_HISTOGRAM_ENUMERATION("Setup.Install.Result", install_status,
|
|
|