Index: chrome/browser/metro_viewer/chrome_metro_viewer_process_host_aurawin.cc |
diff --git a/chrome/browser/metro_viewer/chrome_metro_viewer_process_host_aurawin.cc b/chrome/browser/metro_viewer/chrome_metro_viewer_process_host_aurawin.cc |
index 4b3f4a65773213c4a6b77d2ff5c5a540455e52b5..2aa2e9475cd8acb9ecb196d09e07068fa3a92077 100644 |
--- a/chrome/browser/metro_viewer/chrome_metro_viewer_process_host_aurawin.cc |
+++ b/chrome/browser/metro_viewer/chrome_metro_viewer_process_host_aurawin.cc |
@@ -17,6 +17,7 @@ |
#include "chrome/browser/browser_shutdown.h" |
#include "chrome/browser/chrome_notification_types.h" |
#include "chrome/browser/lifetime/application_lifetime.h" |
+#include "chrome/browser/lifetime/browser_keep_alive.h" |
#include "chrome/browser/profiles/profile_manager.h" |
#include "chrome/browser/search_engines/template_url_service_factory.h" |
#include "chrome/browser/ui/ash/ash_init.h" |
@@ -73,10 +74,11 @@ ChromeMetroViewerProcessHost::ChromeMetroViewerProcessHost() |
: MetroViewerProcessHost( |
content::BrowserThread::GetMessageLoopProxyForThread( |
content::BrowserThread::IO)) { |
- chrome::IncrementKeepAliveCount(); |
+ keep_alive_.reset(new browser_lifetime::ScopedKeepAlive); |
} |
ChromeMetroViewerProcessHost::~ChromeMetroViewerProcessHost() { |
+ DCHECK(!keep_alive_); |
} |
void ChromeMetroViewerProcessHost::OnChannelError() { |
@@ -93,7 +95,7 @@ void ChromeMetroViewerProcessHost::OnChannelError() { |
if (aura::RemoteWindowTreeHostWin::Instance()) { |
aura::RemoteWindowTreeHostWin::Instance()->Disconnected(); |
- chrome::DecrementKeepAliveCount(); |
+ keep_alive_.reset(); |
// If browser is trying to quit, we shouldn't reenter the process. |
// TODO(shrikant): In general there seem to be issues with how AttemptExit |
@@ -110,7 +112,7 @@ void ChromeMetroViewerProcessHost::OnChannelError() { |
return; |
} |
- chrome::DecrementKeepAliveCount(); |
+ keep_alive_.reset(); |
// This will delete the MetroViewerProcessHost object. Don't access member |
// variables/functions after this call. |