Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Unified Diff: chrome/browser/chrome_browser_main_win.cc

Issue 11415187: Merge 169130 - Remove self-destruct message box (causing hang in Metro). (Closed) Base URL: svn://svn.chromium.org/chrome/branches/1271/src/
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/installer/setup/uninstall.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chrome_browser_main_win.cc
===================================================================
--- chrome/browser/chrome_browser_main_win.cc (revision 170046)
+++ chrome/browser/chrome_browser_main_win.cc (working copy)
@@ -329,18 +329,28 @@
std::wstring exe = exe_path.value();
FilePath user_exe_path(installer::GetChromeInstallPath(false, dist));
if (FilePath::CompareEqualIgnoreCase(exe, user_exe_path.value())) {
- const string16 text =
- l10n_util::GetStringUTF16(IDS_MACHINE_LEVEL_INSTALL_CONFLICT);
- const string16 caption = l10n_util::GetStringUTF16(IDS_PRODUCT_NAME);
- const UINT flags = MB_OK | MB_ICONERROR | MB_TOPMOST;
- ui::MessageBox(NULL, text, caption, flags);
+ bool is_metro = base::win::IsMetroProcess();
+ if (!is_metro) {
+ // The dialog cannot be shown in Win8 Metro as doing so hangs Chrome on
+ // an invisible dialog.
+ // TODO (gab): Get rid of this dialog altogether and auto-launch
+ // system-level Chrome instead.
+ const string16 text =
+ l10n_util::GetStringUTF16(IDS_MACHINE_LEVEL_INSTALL_CONFLICT);
+ const string16 caption = l10n_util::GetStringUTF16(IDS_PRODUCT_NAME);
+ const UINT flags = MB_OK | MB_ICONERROR | MB_TOPMOST;
+ ui::MessageBox(NULL, text, caption, flags);
+ }
CommandLine uninstall_cmd(
InstallUtil::GetChromeUninstallCmd(false, dist->GetType()));
if (!uninstall_cmd.GetProgram().empty()) {
uninstall_cmd.AppendSwitch(installer::switches::kForceUninstall);
uninstall_cmd.AppendSwitch(
installer::switches::kDoNotRemoveSharedItems);
- base::LaunchProcess(uninstall_cmd, base::LaunchOptions(), NULL);
+ base::LaunchOptions launch_options;
+ if (is_metro)
+ launch_options.force_breakaway_from_job_ = true;
+ base::LaunchProcess(uninstall_cmd, launch_options, NULL);
}
return true;
}
« no previous file with comments | « no previous file | chrome/installer/setup/uninstall.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698