OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "chrome/browser/ui/cocoa/apps/quit_with_apps_controller_mac.h" | 5 #include "chrome/browser/ui/cocoa/apps/quit_with_apps_controller_mac.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/i18n/number_formatting.h" | 8 #include "base/i18n/number_formatting.h" |
9 #include "base/prefs/pref_registry_simple.h" | 9 #include "base/prefs/pref_registry_simple.h" |
10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 const int kQuitAllAppsButtonIndex = 0; | 41 const int kQuitAllAppsButtonIndex = 0; |
42 const int kDontShowAgainButtonIndex = 1; | 42 const int kDontShowAgainButtonIndex = 1; |
43 | 43 |
44 const char QuitWithAppsController::kQuitWithAppsNotificationID[] = | 44 const char QuitWithAppsController::kQuitWithAppsNotificationID[] = |
45 "quit-with-apps"; | 45 "quit-with-apps"; |
46 | 46 |
47 QuitWithAppsController::QuitWithAppsController() | 47 QuitWithAppsController::QuitWithAppsController() |
48 : notification_profile_(NULL), suppress_for_session_(false) { | 48 : notification_profile_(NULL), suppress_for_session_(false) { |
49 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 49 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
50 | 50 |
51 hosted_app_quit_notification_ = CommandLine::ForCurrentProcess()->HasSwitch( | 51 hosted_app_quit_notification_ = |
52 switches::kHostedAppQuitNotification); | 52 base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 53 switches::kHostedAppQuitNotification); |
53 | 54 |
54 // There is only ever one notification to replace, so use the same replace_id | 55 // There is only ever one notification to replace, so use the same replace_id |
55 // each time. | 56 // each time. |
56 base::string16 replace_id = base::UTF8ToUTF16(id()); | 57 base::string16 replace_id = base::UTF8ToUTF16(id()); |
57 | 58 |
58 message_center::ButtonInfo quit_apps_button_info( | 59 message_center::ButtonInfo quit_apps_button_info( |
59 l10n_util::GetStringUTF16(IDS_QUIT_WITH_APPS_QUIT_LABEL)); | 60 l10n_util::GetStringUTF16(IDS_QUIT_WITH_APPS_QUIT_LABEL)); |
60 message_center::RichNotificationData rich_notification_data; | 61 message_center::RichNotificationData rich_notification_data; |
61 rich_notification_data.buttons.push_back(quit_apps_button_info); | 62 rich_notification_data.buttons.push_back(quit_apps_button_info); |
62 if (!hosted_app_quit_notification_) { | 63 if (!hosted_app_quit_notification_) { |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 } | 118 } |
118 | 119 |
119 std::string QuitWithAppsController::id() const { | 120 std::string QuitWithAppsController::id() const { |
120 return kQuitWithAppsNotificationID; | 121 return kQuitWithAppsNotificationID; |
121 } | 122 } |
122 | 123 |
123 bool QuitWithAppsController::ShouldQuit() { | 124 bool QuitWithAppsController::ShouldQuit() { |
124 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 125 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
125 | 126 |
126 // Quit immediately if this is a test. | 127 // Quit immediately if this is a test. |
127 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType) && | 128 if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kTestType) && |
128 !CommandLine::ForCurrentProcess()->HasSwitch( | 129 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
129 switches::kAppsKeepChromeAliveInTests)) { | 130 switches::kAppsKeepChromeAliveInTests)) { |
130 return true; | 131 return true; |
131 } | 132 } |
132 | 133 |
133 if (hosted_app_quit_notification_) { | 134 if (hosted_app_quit_notification_) { |
134 bool hosted_apps_open = false; | 135 bool hosted_apps_open = false; |
135 const BrowserList* browser_list = | 136 const BrowserList* browser_list = |
136 BrowserList::GetInstance(chrome::HOST_DESKTOP_TYPE_NATIVE); | 137 BrowserList::GetInstance(chrome::HOST_DESKTOP_TYPE_NATIVE); |
137 for (Browser* browser : *browser_list) { | 138 for (Browser* browser : *browser_list) { |
138 if (!browser->is_app()) | 139 if (!browser->is_app()) |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
194 | 195 |
195 // Always return false, the notification UI can be used to quit all apps which | 196 // Always return false, the notification UI can be used to quit all apps which |
196 // will cause Chrome to quit. | 197 // will cause Chrome to quit. |
197 return false; | 198 return false; |
198 } | 199 } |
199 | 200 |
200 // static | 201 // static |
201 void QuitWithAppsController::RegisterPrefs(PrefRegistrySimple* registry) { | 202 void QuitWithAppsController::RegisterPrefs(PrefRegistrySimple* registry) { |
202 registry->RegisterBooleanPref(prefs::kNotifyWhenAppsKeepChromeAlive, true); | 203 registry->RegisterBooleanPref(prefs::kNotifyWhenAppsKeepChromeAlive, true); |
203 } | 204 } |
OLD | NEW |