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 605e548001aa18ca115c08c3505fb35604e741b8..3d433768d88c4df661411946eaef32916a6fa49e 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, which holds a reference to |
|
robertshield
2013/05/10 16:51:48
technically it's not the viewer process that holds
gab
2013/05/13 17:46:16
Good point, clarified.
|
| + // g_browser_process, needs to be killed. |
| + g_browser_process->TerminateMetroViewerProcess(); |
| + } |
| +#endif // defined(OS_WIN) && defined(USE_AURA) |
| #endif |
| } |