| Index: chrome/browser/lifetime/application_lifetime.cc
|
| diff --git a/chrome/browser/lifetime/application_lifetime.cc b/chrome/browser/lifetime/application_lifetime.cc
|
| index 605e548001aa18ca115c08c3505fb35604e741b8..7c1d53278bbb273e7bf35851661cd4a966271635 100644
|
| --- a/chrome/browser/lifetime/application_lifetime.cc
|
| +++ b/chrome/browser/lifetime/application_lifetime.cc
|
| @@ -47,6 +47,10 @@
|
| #include "chromeos/dbus/update_engine_client.h"
|
| #endif
|
|
|
| +#if defined(OS_WIN) && defined(USE_AURA)
|
| +#include "base/win/windows_version.h"
|
| +#endif
|
| +
|
| namespace chrome {
|
| namespace {
|
|
|
| @@ -102,6 +106,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->TerminateMetroViewerProcess();
|
| + }
|
| +#endif // defined(OS_WIN) && defined(USE_AURA)
|
| #endif
|
| }
|
|
|
|
|