Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Unified Diff: chrome/browser/ui/webui/ntp/new_tab_page_sync_handler.cc

Issue 12088040: Add a SigninAllowed policy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address nits and rebase to ToT. Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/ntp/new_tab_page_sync_handler.cc
diff --git a/chrome/browser/ui/webui/ntp/new_tab_page_sync_handler.cc b/chrome/browser/ui/webui/ntp/new_tab_page_sync_handler.cc
index 6c6bf366a4c7450a2ad91016347c9da34e0ca196..85522bdc4f6c41221dabc7dd42421b8403518f95 100644
--- a/chrome/browser/ui/webui/ntp/new_tab_page_sync_handler.cc
+++ b/chrome/browser/ui/webui/ntp/new_tab_page_sync_handler.cc
@@ -69,6 +69,11 @@ void NewTabPageSyncHandler::RegisterMessages() {
Profile::FromWebUI(web_ui()));
if (sync_service_)
sync_service_->AddObserver(this);
+ profile_pref_registrar_.Init(Profile::FromWebUI(web_ui())->GetPrefs());
+ profile_pref_registrar_.Add(
+ prefs::kSigninAllowed,
+ base::Bind(&NewTabPageSyncHandler::OnSigninAllowedPrefChange,
+ base::Unretained(this)));
web_ui()->RegisterMessageCallback("GetSyncMessage",
base::Bind(&NewTabPageSyncHandler::HandleGetSyncMessage,
@@ -89,9 +94,14 @@ void NewTabPageSyncHandler::HideSyncStatusSection() {
void NewTabPageSyncHandler::BuildAndSendSyncStatus() {
DCHECK(!waiting_for_initial_page_load_);
+ SigninManager* signin = SigninManagerFactory::GetForProfile(
+ Profile::FromWebUI(web_ui()));
// Hide the sync status section if sync is managed or disabled entirely.
- if (!sync_service_ || sync_service_->IsManaged()) {
+ if (!sync_service_ ||
+ sync_service_->IsManaged() ||
+ !signin ||
+ !signin->IsSigninAllowed()) {
HideSyncStatusSection();
return;
}
@@ -109,8 +119,6 @@ void NewTabPageSyncHandler::BuildAndSendSyncStatus() {
// message).
string16 status_msg;
string16 link_text;
- SigninManager* signin = SigninManagerFactory::GetForProfile(
- Profile::FromWebUI(web_ui()));
sync_ui_util::MessageType type =
sync_ui_util::GetStatusLabelsForNewTabPage(sync_service_,
@@ -151,6 +159,13 @@ void NewTabPageSyncHandler::OnStateChanged() {
BuildAndSendSyncStatus();
}
+void NewTabPageSyncHandler::OnSigninAllowedPrefChange() {
+ // Don't do anything if the page has not yet loaded.
+ if (waiting_for_initial_page_load_)
+ return;
+ BuildAndSendSyncStatus();
+}
+
void NewTabPageSyncHandler::SendSyncMessageToPage(
MessageType type, std::string msg,
std::string linktext) {

Powered by Google App Engine
This is Rietveld 408576698