summaryrefslogtreecommitdiffstats
path: root/chrome/installer/setup
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/installer/setup')
-rw-r--r--chrome/installer/setup/setup_main.cc13
1 files changed, 12 insertions, 1 deletions
diff --git a/chrome/installer/setup/setup_main.cc b/chrome/installer/setup/setup_main.cc
index 59589b6..8b3e009 100644
--- a/chrome/installer/setup/setup_main.cc
+++ b/chrome/installer/setup/setup_main.cc
@@ -321,7 +321,10 @@ installer_util::InstallStatus InstallChrome(const CommandLine& cmd_line,
// There might be an experiment (for upgrade usually) that needs to happen.
// An experiment's outcome can include chrome's uninstallation. If that is
// the case we would not do that directly at this point but in another
- // instance of setup.exe
+ // instance of setup.exe
+ //
+ // There is another way to reach this same function if this is a system
+ // level install. See HandleNonInstallCmdLineOptions().
dist->LaunchUserExperiment(install_status, *installer_version,
system_level);
}
@@ -488,6 +491,14 @@ bool HandleNonInstallCmdLineOptions(const CommandLine& cmd_line,
cmd_line.GetSwitchValue(installer_util::switches::kInactiveUserToast);
dist->InactiveUserToastExperiment(StringToInt(flavor));
return true;
+ } else if (cmd_line.HasSwitch(installer_util::switches::kSystemLevelToast)) {
+ // We started as system-level and have been re-launched as user level
+ // to continue with the toast experiment.
+ scoped_ptr<installer::Version>
+ installed_version(InstallUtil::GetChromeVersion(system_install));
+ dist->LaunchUserExperiment(installer_util::REENTRY_SYS_UPDATE,
+ *installed_version, false);
+ return true;
}
return false;
}