Chromium Code Reviews| Index: chrome/browser/ui/apps/chrome_app_delegate.cc |
| diff --git a/chrome/browser/ui/apps/chrome_app_delegate.cc b/chrome/browser/ui/apps/chrome_app_delegate.cc |
| index f0c963601a0c46b518d5e26891ccc2eb06d4e093..964ba7d7ade213e5e121c76ad25579c4ad66aa5d 100644 |
| --- a/chrome/browser/ui/apps/chrome_app_delegate.cc |
| +++ b/chrome/browser/ui/apps/chrome_app_delegate.cc |
| @@ -7,10 +7,12 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include "base/strings/stringprintf.h" |
| #include "chrome/browser/app_mode/app_mode_utils.h" |
| +#include "chrome/browser/apps/scoped_keep_alive.h" |
| #include "chrome/browser/chrome_notification_types.h" |
| #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" |
| #include "chrome/browser/favicon/favicon_tab_helper.h" |
| #include "chrome/browser/file_select_helper.h" |
| +#include "chrome/browser/lifetime/application_lifetime.h" |
|
tapted
2014/09/24 07:12:41
nit: this include no longer needed
hashimoto
2014/09/24 09:03:46
Done.
|
| #include "chrome/browser/media/media_capture_devices_dispatcher.h" |
| #include "chrome/browser/platform_util.h" |
| #include "chrome/browser/profiles/profile.h" |
| @@ -148,14 +150,17 @@ ChromeAppDelegate::NewWindowContentsDelegate::OpenURLFromTab( |
| return NULL; |
| } |
| -ChromeAppDelegate::ChromeAppDelegate() |
| - : new_window_contents_delegate_(new NewWindowContentsDelegate()) { |
| +ChromeAppDelegate::ChromeAppDelegate(scoped_ptr<ScopedKeepAlive> keep_alive) |
| + : keep_alive_(keep_alive.Pass()), |
| + new_window_contents_delegate_(new NewWindowContentsDelegate()) { |
| registrar_.Add(this, |
| chrome::NOTIFICATION_APP_TERMINATING, |
| content::NotificationService::AllSources()); |
| } |
| ChromeAppDelegate::~ChromeAppDelegate() { |
| + // Unregister now to prevent getting notified if |keep_alive_| is the last. |
| + terminating_callback_.Reset(); |
| } |
| void ChromeAppDelegate::DisableExternalOpenForTesting() { |