Index: chrome/browser/ui/panels/panel.cc |
diff --git a/chrome/browser/ui/panels/panel.cc b/chrome/browser/ui/panels/panel.cc |
index ca0541f4d724d8bba9df84dcaf8550a3d1b37587..04f818256b6244426bc21566db29ccb2ebb15bd0 100644 |
--- a/chrome/browser/ui/panels/panel.cc |
+++ b/chrome/browser/ui/panels/panel.cc |
@@ -21,6 +21,8 @@ |
#include "chrome/browser/extensions/window_controller.h" |
#include "chrome/browser/extensions/window_controller_list.h" |
#include "chrome/browser/lifetime/application_lifetime.h" |
+#include "chrome/browser/lifetime/keep_alive_types.h" |
+#include "chrome/browser/lifetime/scoped_keep_alive.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/sessions/session_tab_helper.h" |
#include "chrome/browser/task_management/web_contents_tags.h" |
@@ -166,10 +168,6 @@ bool PanelExtensionWindowController::IsVisibleToExtension( |
Panel::~Panel() { |
DCHECK(!collection_); |
-#if !defined(USE_AURA) |
- // Invoked by native panel destructor. Do not access native_panel_ here. |
- chrome::DecrementKeepAliveCount(); // Remove shutdown prevention. |
-#endif |
} |
PanelManager* Panel::manager() const { |
@@ -558,10 +556,13 @@ void Panel::Initialize(const GURL& url, |
content::Source<ThemeService>( |
ThemeServiceFactory::GetForProfile(profile_))); |
+// TODO(dgn): Should keep_alive be always registered regardless of the platform |
+// here? (https://crbug.com/590173) |
#if !defined(USE_AURA) |
// Keep alive for AURA has been moved to panel_view. |
// Prevent the browser process from shutting down while this window is open. |
- chrome::IncrementKeepAliveCount(); |
+ keep_alive_.reset(new ScopedKeepAlive(KeepAliveOrigin::PANEL, |
+ KeepAliveRestartOption::DISABLED)); |
#endif |
UpdateAppIcon(); |