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 #include "chrome/browser/ui/webui/ntp/ntp_login_handler.h" | 5 #include "chrome/browser/ui/webui/ntp/ntp_login_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 | 84 |
85 NTPLoginHandler::~NTPLoginHandler() { | 85 NTPLoginHandler::~NTPLoginHandler() { |
86 } | 86 } |
87 | 87 |
88 void NTPLoginHandler::RegisterMessages() { | 88 void NTPLoginHandler::RegisterMessages() { |
89 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); | 89 PrefService* pref_service = Profile::FromWebUI(web_ui())->GetPrefs(); |
90 username_pref_.Init(prefs::kGoogleServicesUsername, | 90 username_pref_.Init(prefs::kGoogleServicesUsername, |
91 pref_service, | 91 pref_service, |
92 base::Bind(&NTPLoginHandler::UpdateLogin, | 92 base::Bind(&NTPLoginHandler::UpdateLogin, |
93 base::Unretained(this))); | 93 base::Unretained(this))); |
| 94 signin_allowed_pref_.Init(prefs::kSigninAllowed, |
| 95 pref_service, |
| 96 base::Bind(&NTPLoginHandler::UpdateLogin, |
| 97 base::Unretained(this))); |
94 | 98 |
95 registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED, | 99 registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED, |
96 content::NotificationService::AllSources()); | 100 content::NotificationService::AllSources()); |
97 | 101 |
98 web_ui()->RegisterMessageCallback("initializeSyncLogin", | 102 web_ui()->RegisterMessageCallback("initializeSyncLogin", |
99 base::Bind(&NTPLoginHandler::HandleInitializeSyncLogin, | 103 base::Bind(&NTPLoginHandler::HandleInitializeSyncLogin, |
100 base::Unretained(this))); | 104 base::Unretained(this))); |
101 web_ui()->RegisterMessageCallback("showSyncLoginUI", | 105 web_ui()->RegisterMessageCallback("showSyncLoginUI", |
102 base::Bind(&NTPLoginHandler::HandleShowSyncLoginUI, | 106 base::Bind(&NTPLoginHandler::HandleShowSyncLoginUI, |
103 base::Unretained(this))); | 107 base::Unretained(this))); |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 header_value, sub_header_value, icon_url_value, is_user_signed_in); | 247 header_value, sub_header_value, icon_url_value, is_user_signed_in); |
244 } | 248 } |
245 | 249 |
246 // static | 250 // static |
247 bool NTPLoginHandler::ShouldShow(Profile* profile) { | 251 bool NTPLoginHandler::ShouldShow(Profile* profile) { |
248 #if defined(OS_CHROMEOS) | 252 #if defined(OS_CHROMEOS) |
249 // For now we don't care about showing sync status on Chrome OS. The promo | 253 // For now we don't care about showing sync status on Chrome OS. The promo |
250 // UI and the avatar menu don't exist on that platform. | 254 // UI and the avatar menu don't exist on that platform. |
251 return false; | 255 return false; |
252 #else | 256 #else |
253 return !profile->IsOffTheRecord(); | 257 return !profile->IsOffTheRecord() && profile->IsSigninAllowed(); |
254 #endif | 258 #endif |
255 } | 259 } |
256 | 260 |
257 // static | 261 // static |
258 void NTPLoginHandler::GetLocalizedValues(Profile* profile, | 262 void NTPLoginHandler::GetLocalizedValues(Profile* profile, |
259 DictionaryValue* values) { | 263 DictionaryValue* values) { |
260 PrefService* prefs = profile->GetPrefs(); | 264 PrefService* prefs = profile->GetPrefs(); |
261 std::string error_message = prefs->GetString(prefs::kSyncPromoErrorMessage); | 265 std::string error_message = prefs->GetString(prefs::kSyncPromoErrorMessage); |
262 bool hide_sync = !prefs->GetBoolean(prefs::kSyncPromoShowNTPBubble); | 266 bool hide_sync = !prefs->GetBoolean(prefs::kSyncPromoShowNTPBubble); |
263 | 267 |
264 string16 message = | 268 string16 message = |
265 hide_sync ? string16() : | 269 hide_sync ? string16() : |
266 !error_message.empty() ? UTF8ToUTF16(error_message) : | 270 !error_message.empty() ? UTF8ToUTF16(error_message) : |
267 l10n_util::GetStringFUTF16(IDS_SYNC_PROMO_NTP_BUBBLE_MESSAGE, | 271 l10n_util::GetStringFUTF16(IDS_SYNC_PROMO_NTP_BUBBLE_MESSAGE, |
268 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME)); | 272 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME)); |
269 | 273 |
270 values->SetString("login_status_message", message); | 274 values->SetString("login_status_message", message); |
271 values->SetString("login_status_url", | 275 values->SetString("login_status_url", |
272 hide_sync ? std::string() : chrome::kSyncLearnMoreURL); | 276 hide_sync ? std::string() : chrome::kSyncLearnMoreURL); |
273 values->SetString("login_status_advanced", | 277 values->SetString("login_status_advanced", |
274 hide_sync || !error_message.empty() ? string16() : | 278 hide_sync || !error_message.empty() ? string16() : |
275 l10n_util::GetStringUTF16(IDS_SYNC_PROMO_NTP_BUBBLE_ADVANCED)); | 279 l10n_util::GetStringUTF16(IDS_SYNC_PROMO_NTP_BUBBLE_ADVANCED)); |
276 values->SetString("login_status_dismiss", | 280 values->SetString("login_status_dismiss", |
277 hide_sync ? string16() : | 281 hide_sync ? string16() : |
278 l10n_util::GetStringUTF16(IDS_SYNC_PROMO_NTP_BUBBLE_OK)); | 282 l10n_util::GetStringUTF16(IDS_SYNC_PROMO_NTP_BUBBLE_OK)); |
279 } | 283 } |
OLD | NEW |