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

Side by Side Diff: chrome/browser/dom_ui/new_tab_page_sync_handler.cc

Issue 2905003: Implement support for disabling sync through configuration management. (Closed)
Patch Set: Fix PrefsControllerTest on MAC. Created 10 years, 5 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 unified diff | Download patch
« no previous file with comments | « chrome/browser/configuration_policy_store.h ('k') | chrome/browser/dom_ui/new_tab_ui.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/dom_ui/new_tab_page_sync_handler.h" 5 #include "chrome/browser/dom_ui/new_tab_page_sync_handler.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/string_util.h" 9 #include "base/string_util.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "base/values.h" 11 #include "base/values.h"
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 case sync_ui_util::PRE_SYNCED: 91 case sync_ui_util::PRE_SYNCED:
92 case sync_ui_util::SYNCED: 92 case sync_ui_util::SYNCED:
93 default: 93 default:
94 return HIDE; 94 return HIDE;
95 } 95 }
96 } 96 }
97 97
98 DOMMessageHandler* NewTabPageSyncHandler::Attach(DOMUI* dom_ui) { 98 DOMMessageHandler* NewTabPageSyncHandler::Attach(DOMUI* dom_ui) {
99 sync_service_ = dom_ui->GetProfile()->GetProfileSyncService(); 99 sync_service_ = dom_ui->GetProfile()->GetProfileSyncService();
100 DCHECK(sync_service_); // This shouldn't get called by an incognito NTP. 100 DCHECK(sync_service_); // This shouldn't get called by an incognito NTP.
101 DCHECK(!sync_service_->IsManaged()); // And neither if sync is managed.
101 sync_service_->AddObserver(this); 102 sync_service_->AddObserver(this);
102 return DOMMessageHandler::Attach(dom_ui); 103 return DOMMessageHandler::Attach(dom_ui);
103 } 104 }
104 105
105 void NewTabPageSyncHandler::RegisterMessages() { 106 void NewTabPageSyncHandler::RegisterMessages() {
106 dom_ui_->RegisterMessageCallback("GetSyncMessage", 107 dom_ui_->RegisterMessageCallback("GetSyncMessage",
107 NewCallback(this, &NewTabPageSyncHandler::HandleGetSyncMessage)); 108 NewCallback(this, &NewTabPageSyncHandler::HandleGetSyncMessage));
108 dom_ui_->RegisterMessageCallback("SyncLinkClicked", 109 dom_ui_->RegisterMessageCallback("SyncLinkClicked",
109 NewCallback(this, &NewTabPageSyncHandler::HandleSyncLinkClicked)); 110 NewCallback(this, &NewTabPageSyncHandler::HandleSyncLinkClicked));
110 } 111 }
111 112
112 void NewTabPageSyncHandler::HandleGetSyncMessage(const Value* value) { 113 void NewTabPageSyncHandler::HandleGetSyncMessage(const Value* value) {
113 waiting_for_initial_page_load_ = false; 114 waiting_for_initial_page_load_ = false;
114 BuildAndSendSyncStatus(); 115 BuildAndSendSyncStatus();
115 } 116 }
116 117
117 void NewTabPageSyncHandler::HideSyncStatusSection() { 118 void NewTabPageSyncHandler::HideSyncStatusSection() {
118 SendSyncMessageToPage(HIDE, std::string(), std::string()); 119 SendSyncMessageToPage(HIDE, std::string(), std::string());
119 } 120 }
120 121
121 void NewTabPageSyncHandler::BuildAndSendSyncStatus() { 122 void NewTabPageSyncHandler::BuildAndSendSyncStatus() {
122 DCHECK(!waiting_for_initial_page_load_); 123 DCHECK(!waiting_for_initial_page_load_);
123 124
124 // Hide the sync status section if sync is disabled entirely. 125 // Hide the sync status section if sync is managed or disabled entirely.
125 if (!sync_service_) { 126 if (!sync_service_ || sync_service_->IsManaged()) {
126 HideSyncStatusSection(); 127 HideSyncStatusSection();
127 return; 128 return;
128 } 129 }
129 130
130 // Don't show sync status if setup is not complete. 131 // Don't show sync status if setup is not complete.
131 if (!sync_service_->HasSyncSetupCompleted()) { 132 if (!sync_service_->HasSyncSetupCompleted()) {
132 return; 133 return;
133 } 134 }
134 135
135 // Once sync has been enabled, the supported "sync statuses" for the NNTP 136 // Once sync has been enabled, the supported "sync statuses" for the NNTP
136 // from the user's perspective are: 137 // from the user's perspective are:
137 // 138 //
138 // "Sync error", when we can't authenticate or establish a connection with 139 // "Sync error", when we can't authenticate or establish a connection with
139 // the sync server (appropriate information appended to 140 // the sync server (appropriate information appended to
140 // message). 141 // message).
141 string16 status_msg; 142 string16 status_msg;
142 string16 link_text; 143 string16 link_text;
143 sync_ui_util::MessageType type = 144 sync_ui_util::MessageType type =
144 sync_ui_util::GetStatusLabels(sync_service_, &status_msg, &link_text); 145 sync_ui_util::GetStatusLabels(sync_service_, &status_msg, &link_text);
145 SendSyncMessageToPage(FromSyncStatusMessageType(type), 146 SendSyncMessageToPage(FromSyncStatusMessageType(type),
146 UTF16ToUTF8(status_msg), UTF16ToUTF8(link_text)); 147 UTF16ToUTF8(status_msg), UTF16ToUTF8(link_text));
147 } 148 }
148 149
149 void NewTabPageSyncHandler::HandleSyncLinkClicked(const Value* value) { 150 void NewTabPageSyncHandler::HandleSyncLinkClicked(const Value* value) {
150 DCHECK(!waiting_for_initial_page_load_); 151 DCHECK(!waiting_for_initial_page_load_);
151 DCHECK(sync_service_); 152 DCHECK(sync_service_);
153 if (!sync_service_->IsSyncEnabled())
154 return;
152 if (sync_service_->HasSyncSetupCompleted()) { 155 if (sync_service_->HasSyncSetupCompleted()) {
153 if (sync_service_->GetAuthError().state() == 156 if (sync_service_->GetAuthError().state() ==
154 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS || 157 GoogleServiceAuthError::INVALID_GAIA_CREDENTIALS ||
155 sync_service_->GetAuthError().state() == 158 sync_service_->GetAuthError().state() ==
156 GoogleServiceAuthError::CAPTCHA_REQUIRED) { 159 GoogleServiceAuthError::CAPTCHA_REQUIRED) {
157 sync_service_->ShowLoginDialog(); 160 sync_service_->ShowLoginDialog();
158 return; 161 return;
159 } 162 }
160 DictionaryValue value; 163 DictionaryValue value;
161 value.SetString(L"syncEnabledMessage", 164 value.SetString(L"syncEnabledMessage",
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 if (linkurl.empty()) { 211 if (linkurl.empty()) {
209 value.SetBoolean(L"linkurlisset", false); 212 value.SetBoolean(L"linkurlisset", false);
210 } else { 213 } else {
211 value.SetBoolean(L"linkurlisset", true); 214 value.SetBoolean(L"linkurlisset", true);
212 value.SetString(L"linkurl", linkurl); 215 value.SetString(L"linkurl", linkurl);
213 } 216 }
214 } 217 }
215 } 218 }
216 dom_ui_->CallJavascriptFunction(L"syncMessageChanged", value); 219 dom_ui_->CallJavascriptFunction(L"syncMessageChanged", value);
217 } 220 }
OLDNEW
« no previous file with comments | « chrome/browser/configuration_policy_store.h ('k') | chrome/browser/dom_ui/new_tab_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698