OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import "chrome/browser/app_controller_mac.h" | 5 #import "chrome/browser/app_controller_mac.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 16 matching lines...) Expand all Loading... |
27 #include "chrome/browser/background/background_mode_manager.h" | 27 #include "chrome/browser/background/background_mode_manager.h" |
28 #include "chrome/browser/browser_process.h" | 28 #include "chrome/browser/browser_process.h" |
29 #include "chrome/browser/browser_shutdown.h" | 29 #include "chrome/browser/browser_shutdown.h" |
30 #include "chrome/browser/chrome_notification_types.h" | 30 #include "chrome/browser/chrome_notification_types.h" |
31 #include "chrome/browser/command_updater.h" | 31 #include "chrome/browser/command_updater.h" |
32 #include "chrome/browser/download/download_service.h" | 32 #include "chrome/browser/download/download_service.h" |
33 #include "chrome/browser/download/download_service_factory.h" | 33 #include "chrome/browser/download/download_service_factory.h" |
34 #include "chrome/browser/extensions/extension_service.h" | 34 #include "chrome/browser/extensions/extension_service.h" |
35 #include "chrome/browser/first_run/first_run.h" | 35 #include "chrome/browser/first_run/first_run.h" |
36 #include "chrome/browser/lifetime/application_lifetime.h" | 36 #include "chrome/browser/lifetime/application_lifetime.h" |
| 37 #include "chrome/browser/lifetime/keep_alive_options.h" |
| 38 #include "chrome/browser/lifetime/scoped_keep_alive.h" |
37 #include "chrome/browser/mac/mac_startup_profiler.h" | 39 #include "chrome/browser/mac/mac_startup_profiler.h" |
38 #include "chrome/browser/prefs/incognito_mode_prefs.h" | 40 #include "chrome/browser/prefs/incognito_mode_prefs.h" |
39 #include "chrome/browser/profiles/profile_info_cache_observer.h" | 41 #include "chrome/browser/profiles/profile_info_cache_observer.h" |
40 #include "chrome/browser/profiles/profile_manager.h" | 42 #include "chrome/browser/profiles/profile_manager.h" |
41 #include "chrome/browser/profiles/profiles_state.h" | 43 #include "chrome/browser/profiles/profiles_state.h" |
42 #include "chrome/browser/sessions/session_restore.h" | 44 #include "chrome/browser/sessions/session_restore.h" |
43 #include "chrome/browser/sessions/session_service.h" | 45 #include "chrome/browser/sessions/session_service.h" |
44 #include "chrome/browser/sessions/session_service_factory.h" | 46 #include "chrome/browser/sessions/session_service_factory.h" |
45 #include "chrome/browser/sessions/tab_restore_service_factory.h" | 47 #include "chrome/browser/sessions/tab_restore_service_factory.h" |
46 #include "chrome/browser/signin/signin_manager_factory.h" | 48 #include "chrome/browser/signin/signin_manager_factory.h" |
(...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
513 runModalLoopForApplication:app]; | 515 runModalLoopForApplication:app]; |
514 } | 516 } |
515 | 517 |
516 // Called when the app is shutting down. Clean-up as appropriate. | 518 // Called when the app is shutting down. Clean-up as appropriate. |
517 - (void)applicationWillTerminate:(NSNotification*)aNotification { | 519 - (void)applicationWillTerminate:(NSNotification*)aNotification { |
518 // There better be no browser windows left at this point. | 520 // There better be no browser windows left at this point. |
519 CHECK_EQ(0u, chrome::GetTotalBrowserCount()); | 521 CHECK_EQ(0u, chrome::GetTotalBrowserCount()); |
520 | 522 |
521 // Tell BrowserList not to keep the browser process alive. Once all the | 523 // Tell BrowserList not to keep the browser process alive. Once all the |
522 // browsers get dealloc'd, it will stop the RunLoop and fall back into main(). | 524 // browsers get dealloc'd, it will stop the RunLoop and fall back into main(). |
523 chrome::DecrementKeepAliveCount(); | 525 keep_alive_.reset(); |
524 | 526 |
525 // Reset all pref watching, as this object outlives the prefs system. | 527 // Reset all pref watching, as this object outlives the prefs system. |
526 profilePrefRegistrar_.reset(); | 528 profilePrefRegistrar_.reset(); |
527 localPrefRegistrar_.RemoveAll(); | 529 localPrefRegistrar_.RemoveAll(); |
528 | 530 |
529 [self unregisterEventHandlers]; | 531 [self unregisterEventHandlers]; |
530 | 532 |
531 appShimMenuController_.reset(); | 533 appShimMenuController_.reset(); |
532 | 534 |
533 STLDeleteContainerPairSecondPointers(profileBookmarkMenuBridgeMap_.begin(), | 535 STLDeleteContainerPairSecondPointers(profileBookmarkMenuBridgeMap_.begin(), |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
721 | 723 |
722 // This is called after profiles have been loaded and preferences registered. | 724 // This is called after profiles have been loaded and preferences registered. |
723 // It is safe to access the default profile here. | 725 // It is safe to access the default profile here. |
724 - (void)applicationDidFinishLaunching:(NSNotification*)notify { | 726 - (void)applicationDidFinishLaunching:(NSNotification*)notify { |
725 MacStartupProfiler::GetInstance()->Profile( | 727 MacStartupProfiler::GetInstance()->Profile( |
726 MacStartupProfiler::DID_FINISH_LAUNCHING); | 728 MacStartupProfiler::DID_FINISH_LAUNCHING); |
727 MacStartupProfiler::GetInstance()->RecordMetrics(); | 729 MacStartupProfiler::GetInstance()->RecordMetrics(); |
728 | 730 |
729 // Notify BrowserList to keep the application running so it doesn't go away | 731 // Notify BrowserList to keep the application running so it doesn't go away |
730 // when all the browser windows get closed. | 732 // when all the browser windows get closed. |
731 chrome::IncrementKeepAliveCount(); | 733 keep_alive_.reset(new ScopedKeepAlive(KeepAliveOrigin::APP_CONTROLLER)); |
732 | 734 |
733 [self setUpdateCheckInterval]; | 735 [self setUpdateCheckInterval]; |
734 | 736 |
735 // Start managing the menu for app windows. This needs to be done here because | 737 // Start managing the menu for app windows. This needs to be done here because |
736 // main menu item titles are not yet initialized in awakeFromNib. | 738 // main menu item titles are not yet initialized in awakeFromNib. |
737 [self initAppShimMenuController]; | 739 [self initAppShimMenuController]; |
738 | 740 |
739 // If enabled, keep Chrome alive when apps are open instead of quitting all | 741 // If enabled, keep Chrome alive when apps are open instead of quitting all |
740 // apps. | 742 // apps. |
741 quitWithAppsController_ = new QuitWithAppsController(); | 743 quitWithAppsController_ = new QuitWithAppsController(); |
(...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1703 | 1705 |
1704 //--------------------------------------------------------------------------- | 1706 //--------------------------------------------------------------------------- |
1705 | 1707 |
1706 namespace app_controller_mac { | 1708 namespace app_controller_mac { |
1707 | 1709 |
1708 bool IsOpeningNewWindow() { | 1710 bool IsOpeningNewWindow() { |
1709 return g_is_opening_new_window; | 1711 return g_is_opening_new_window; |
1710 } | 1712 } |
1711 | 1713 |
1712 } // namespace app_controller_mac | 1714 } // namespace app_controller_mac |
OLD | NEW |