summaryrefslogtreecommitdiffstats
path: root/win8
diff options
context:
space:
mode:
authorananta <ananta@chromium.org>2014-09-12 18:22:12 -0700
committerCommit bot <commit-bot@chromium.org>2014-09-13 01:25:28 +0000
commit069fc881828aa504dc01891d2db80fc377d02643 (patch)
tree7891efd20faa190d57a85e213077937fe47d6d62 /win8
parent0d1c4968ac6d14ee8d250df9641b6434eb9aaaf0 (diff)
downloadchromium_src-069fc881828aa504dc01891d2db80fc377d02643.zip
chromium_src-069fc881828aa504dc01891d2db80fc377d02643.tar.gz
chromium_src-069fc881828aa504dc01891d2db80fc377d02643.tar.bz2
Ensure that on Windows 7, relaunching the browser via chrome://restart or changing about:flags relaunches into Chrome OS mode.
There were two problems here. 1. The viewer process on Windows 7 would not die : Fixed by destroying the window when we get a signal from the browser process that the viewer needs to die. 2. Relaunching on Windows 7 would relaunch the existing browser process with the same command line. On Windows 8 relaunch launches back into Windows 8 mode as delegate execute has code to launch back into the previous mode. On Windows 7 we don't have that luxury. The current approach is to detect that we are in Windows 7 in a browser launched to service the viewer process and return that we need to launch into Chrome OS mode. Additionally we set the corresponding pref to ensure that this is honored. BUG=413101 Review URL: https://codereview.chromium.org/568623002 Cr-Commit-Position: refs/heads/master@{#294721}
Diffstat (limited to 'win8')
-rw-r--r--win8/metro_driver/chrome_app_view_ash.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/win8/metro_driver/chrome_app_view_ash.cc b/win8/metro_driver/chrome_app_view_ash.cc
index 2f615d3..0d1ea8b 100644
--- a/win8/metro_driver/chrome_app_view_ash.cc
+++ b/win8/metro_driver/chrome_app_view_ash.cc
@@ -971,6 +971,9 @@ void ChromeAppViewAsh::OnMetroExit(MetroTerminateMethod method) {
if (ui_channel_)
ui_channel_->Close();
+ HWND core_window = core_window_hwnd();
+ ::PostMessage(core_window, WM_CLOSE, 0, 0);
+
globals.app_exit->Exit();
}
}