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

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 review comments 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..c795f98e75163ffdc148dced2137d059c8ea6e07 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
@@ -46,6 +46,7 @@ NewTabPageSyncHandler::NewTabPageSyncHandler() : sync_service_(NULL),
NewTabPageSyncHandler::~NewTabPageSyncHandler() {
if (sync_service_)
sync_service_->RemoveObserver(this);
+ profile_pref_registrar_.RemoveAll();
Dan Beam 2013/02/25 17:35:08 probably isn't necessary. https://code.google.com/
}
// static
@@ -69,6 +70,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 +95,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 +120,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 +160,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