Index: chrome/browser/app_controller_mac.mm |
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm |
index 87b473e9aa7093775cbbf4e8c8c36c57840173e3..f6098389e67b1e879247d12f3db621bc6e9bacea 100644 |
--- a/chrome/browser/app_controller_mac.mm |
+++ b/chrome/browser/app_controller_mac.mm |
@@ -53,6 +53,7 @@ |
#include "chrome/browser/ui/browser_window.h" |
#include "chrome/browser/ui/chrome_pages.h" |
#import "chrome/browser/ui/cocoa/apps/app_shim_menu_controller_mac.h" |
+#include "chrome/browser/ui/cocoa/apps/quit_with_apps_controller_mac.h" |
#import "chrome/browser/ui/cocoa/bookmarks/bookmark_menu_bridge.h" |
#import "chrome/browser/ui/cocoa/browser_window_cocoa.h" |
#import "chrome/browser/ui/cocoa/browser_window_controller.h" |
@@ -370,6 +371,12 @@ class AppControllerProfileObserver : public ProfileInfoCacheObserver { |
![self shouldQuitWithInProgressDownloads]) |
return NO; |
+ // Check for active apps, and prompt the user if they really want to quit |
+ // (and also quit the apps). |
+ if (!browser_shutdown::IsTryingToQuit() && |
+ quitWithAppsController_.get() && !quitWithAppsController_->ShouldQuit()) |
+ return NO; |
+ |
// TODO(viettrungluu): Remove Apple Event handlers here? (It's safe to leave |
// them in, but I'm not sure about UX; we'd also want to disable other things |
// though.) http://crbug.com/40861 |
@@ -694,6 +701,10 @@ class AppControllerProfileObserver : public ProfileInfoCacheObserver { |
// main menu item titles are not yet initialized in awakeFromNib. |
[self initAppShimMenuController]; |
+ // If enabled, keep Chrome alive when apps are open instead of quitting all |
+ // apps. |
+ quitWithAppsController_ = new QuitWithAppsController(); |
+ |
// Build up the encoding menu, the order of the items differs based on the |
// current locale (see http://crbug.com/7647 for details). |
// We need a valid g_browser_process to get the profile which is why we can't |