summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util/install_util.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/installer/util/install_util.cc')
-rw-r--r--chrome/installer/util/install_util.cc16
1 files changed, 6 insertions, 10 deletions
diff --git a/chrome/installer/util/install_util.cc b/chrome/installer/util/install_util.cc
index db710d4..d98a30b 100644
--- a/chrome/installer/util/install_util.cc
+++ b/chrome/installer/util/install_util.cc
@@ -23,6 +23,7 @@
#include "base/sys_info.h"
#include "base/values.h"
#include "base/version.h"
+#include "base/win/metro.h"
#include "base/win/registry.h"
#include "base/win/windows_version.h"
#include "chrome/installer/util/browser_distribution.h"
@@ -126,14 +127,7 @@ string16 InstallUtil::GetActiveSetupPath(BrowserDistribution* dist) {
return kInstalledComponentsPath + dist->GetAppGuid();
}
-void InstallUtil::TriggerActiveSetupCommandIfNeeded() {
- FilePath chrome_exe;
- if (!PathService::Get(base::FILE_EXE, &chrome_exe)) {
- NOTREACHED();
- } else if (InstallUtil::IsPerUserInstall(chrome_exe.value().c_str())) {
- return;
- }
-
+void InstallUtil::TriggerActiveSetupCommand() {
string16 active_setup_reg(
GetActiveSetupPath(BrowserDistribution::GetDistribution()));
base::win::RegKey active_setup_key(
@@ -152,8 +146,10 @@ void InstallUtil::TriggerActiveSetupCommandIfNeeded() {
// and the time setup.exe checks for it.
cmd.AppendSwitch(installer::switches::kForceConfigureUserSettings);
- base::LaunchOptions default_options;
- if (!base::LaunchProcess(cmd.GetCommandLineString(), default_options, NULL))
+ base::LaunchOptions launch_options;
+ if (base::win::IsMetroProcess())
+ launch_options.force_breakaway_from_job_ = true;
+ if (!base::LaunchProcess(cmd.GetCommandLineString(), launch_options, NULL))
PLOG(ERROR) << cmd.GetCommandLineString();
}