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

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: Extract managed user specific stuff into another changelist. 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 b4b62ed623bdfdff3b368738d5333e5db00982e8..1728fd441d511487c43e83b9f652070c05105178 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();
}
// 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