Chromium Code Reviews| Index: chrome/browser/lifetime/application_lifetime.cc |
| diff --git a/chrome/browser/lifetime/application_lifetime.cc b/chrome/browser/lifetime/application_lifetime.cc |
| index fdb60e77e04bd8041cb170c8c178fe002abd9b32..172c342a19a7d7b7c3699b2e220f0925809ad2d0 100644 |
| --- a/chrome/browser/lifetime/application_lifetime.cc |
| +++ b/chrome/browser/lifetime/application_lifetime.cc |
| @@ -48,6 +48,11 @@ |
| #include "chromeos/dbus/update_engine_client.h" |
| #endif |
| +#if defined(OS_WIN) && defined(USE_AURA) |
| +#include "base/win/windows_version.h" |
| +#include "chrome/browser/browser_process_platform_part_winaura.h" |
| +#endif |
| + |
| namespace chrome { |
| namespace { |
| @@ -103,6 +108,14 @@ void AttemptExitInternal() { |
| #else |
| // On most platforms, closing all windows causes the application to exit. |
| CloseAllBrowsers(); |
| +#if defined(OS_WIN) && defined(USE_AURA) |
| + if (base::win::GetVersion() >= base::win::VERSION_WIN8) { |
| + // On Windows 8, Ash might be active in Metro and won't go away even if all |
| + // browsers are closed. The viewer process, whose host holds a reference to |
| + // g_browser_process, needs to be killed. |
| + g_browser_process->platform_part()->TerminateMetroViewerProcess(); |
|
sky
2013/05/15 21:13:18
How about naming this AttemptExit so that you can
gab
2013/05/17 23:19:18
Done on top of https://codereview.chromium.org/149
|
| + } |
| +#endif // defined(OS_WIN) && defined(USE_AURA) |
| #endif |
| } |