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

Side by Side Diff: chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc

Issue 8620001: Cleanup pass from Cloud Print Proxy policy implementation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/printing/cloud_print/cloud_print_proxy_service_unittest.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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/printing/cloud_print/cloud_print_proxy_service.h" 5 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h"
6 6
7 #include <stack> 7 #include <stack>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 g_browser_process->notification_ui_manager()->CancelById( 158 g_browser_process->notification_ui_manager()->CancelById(
159 token_expired_delegate_->id()); 159 token_expired_delegate_->id());
160 token_expired_delegate_ = NULL; 160 token_expired_delegate_ = NULL;
161 if (!keep_alive) 161 if (!keep_alive)
162 BrowserList::EndKeepAlive(); 162 BrowserList::EndKeepAlive();
163 } 163 }
164 } 164 }
165 165
166 void CloudPrintProxyService::ApplyCloudPrintConnectorPolicy() { 166 void CloudPrintProxyService::ApplyCloudPrintConnectorPolicy() {
167 if (!profile_->GetPrefs()->GetBoolean(prefs::kCloudPrintProxyEnabled)) { 167 if (!profile_->GetPrefs()->GetBoolean(prefs::kCloudPrintProxyEnabled)) {
168 std::string email; 168 std::string email =
169 email = profile_->GetPrefs()->GetString(prefs::kCloudPrintEmail); 169 profile_->GetPrefs()->GetString(prefs::kCloudPrintEmail);
170 if (!email.empty()) { 170 if (!email.empty()) {
171 DisableForUser(); 171 DisableForUser();
172 profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, std::string()); 172 profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, std::string());
173 } 173 }
174 } 174 }
175 } 175 }
176 176
177 void CloudPrintProxyService::OnCloudPrintSetupClosed() { 177 void CloudPrintProxyService::OnCloudPrintSetupClosed() {
178 MessageLoop::current()->PostTask( 178 MessageLoop::current()->PostTask(
179 FROM_HERE, base::Bind(&BrowserList::EndKeepAlive)); 179 FROM_HERE, base::Bind(&BrowserList::EndKeepAlive));
180 } 180 }
181 181
182 void CloudPrintProxyService::Observe( 182 void CloudPrintProxyService::Observe(
183 int type, 183 int type,
184 const content::NotificationSource& source, 184 const content::NotificationSource& source,
185 const content::NotificationDetails& details) { 185 const content::NotificationDetails& details) {
186 if (type == chrome::NOTIFICATION_PREF_CHANGED) { 186 DCHECK_EQ(chrome::NOTIFICATION_PREF_CHANGED, type);
187 ApplyCloudPrintConnectorPolicy(); 187 ApplyCloudPrintConnectorPolicy();
188 } else {
189 NOTREACHED();
190 }
191 } 188 }
192 189
193 void CloudPrintProxyService::RefreshCloudPrintProxyStatus() { 190 void CloudPrintProxyService::RefreshCloudPrintProxyStatus() {
194 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 191 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
195 ServiceProcessControl* process_control = GetServiceProcessControl(); 192 ServiceProcessControl* process_control = GetServiceProcessControl();
196 DCHECK(process_control->is_connected()); 193 DCHECK(process_control->IsConnected());
197 ServiceProcessControl::CloudPrintProxyInfoHandler callback = 194 ServiceProcessControl::CloudPrintProxyInfoHandler callback =
198 base::Bind(&CloudPrintProxyService::ProxyInfoCallback, 195 base::Bind(&CloudPrintProxyService::ProxyInfoCallback,
199 base::Unretained(this)); 196 base::Unretained(this));
200 // GetCloudPrintProxyInfo takes ownership of callback. 197 // GetCloudPrintProxyInfo takes ownership of callback.
201 process_control->GetCloudPrintProxyInfo(callback); 198 process_control->GetCloudPrintProxyInfo(callback);
202 } 199 }
203 200
204 void CloudPrintProxyService::EnableCloudPrintProxy(const std::string& lsid, 201 void CloudPrintProxyService::EnableCloudPrintProxy(const std::string& lsid,
205 const std::string& email) { 202 const std::string& email) {
206 ServiceProcessControl* process_control = GetServiceProcessControl(); 203 ServiceProcessControl* process_control = GetServiceProcessControl();
207 DCHECK(process_control->is_connected()); 204 DCHECK(process_control->IsConnected());
208 process_control->Send(new ServiceMsg_EnableCloudPrintProxy(lsid)); 205 process_control->Send(new ServiceMsg_EnableCloudPrintProxy(lsid));
209 // Assume the IPC worked. 206 // Assume the IPC worked.
210 profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, email); 207 profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, email);
211 } 208 }
212 209
213 void CloudPrintProxyService::EnableCloudPrintProxyWithRobot( 210 void CloudPrintProxyService::EnableCloudPrintProxyWithRobot(
214 const std::string& robot_auth_code, 211 const std::string& robot_auth_code,
215 const std::string& robot_email, 212 const std::string& robot_email,
216 const std::string& user_email) { 213 const std::string& user_email) {
217 ServiceProcessControl* process_control = GetServiceProcessControl(); 214 ServiceProcessControl* process_control = GetServiceProcessControl();
218 DCHECK(process_control->is_connected()); 215 DCHECK(process_control->IsConnected());
219 process_control->Send(new ServiceMsg_EnableCloudPrintProxyWithRobot( 216 process_control->Send(new ServiceMsg_EnableCloudPrintProxyWithRobot(
220 robot_auth_code, 217 robot_auth_code,
221 robot_email, 218 robot_email,
222 user_email)); 219 user_email));
223 // Assume the IPC worked. 220 // Assume the IPC worked.
224 profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, user_email); 221 profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, user_email);
225 } 222 }
226 223
227 void CloudPrintProxyService::DisableCloudPrintProxy() { 224 void CloudPrintProxyService::DisableCloudPrintProxy() {
228 ServiceProcessControl* process_control = GetServiceProcessControl(); 225 ServiceProcessControl* process_control = GetServiceProcessControl();
229 DCHECK(process_control->is_connected()); 226 DCHECK(process_control->IsConnected());
230 process_control->Send(new ServiceMsg_DisableCloudPrintProxy); 227 process_control->Send(new ServiceMsg_DisableCloudPrintProxy);
231 // Assume the IPC worked. 228 // Assume the IPC worked.
232 profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, std::string()); 229 profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, std::string());
233 } 230 }
234 231
235 void CloudPrintProxyService::ProxyInfoCallback( 232 void CloudPrintProxyService::ProxyInfoCallback(
236 const cloud_print::CloudPrintProxyInfo& proxy_info) { 233 const cloud_print::CloudPrintProxyInfo& proxy_info) {
237 proxy_id_ = proxy_info.proxy_id; 234 proxy_id_ = proxy_info.proxy_id;
238 profile_->GetPrefs()->SetString( 235 profile_->GetPrefs()->SetString(
239 prefs::kCloudPrintEmail, 236 prefs::kCloudPrintEmail,
240 proxy_info.enabled ? proxy_info.email : std::string()); 237 proxy_info.enabled ? proxy_info.email : std::string());
241 ApplyCloudPrintConnectorPolicy(); 238 ApplyCloudPrintConnectorPolicy();
242 } 239 }
243 240
244 bool CloudPrintProxyService::InvokeServiceTask(const base::Closure& task) { 241 bool CloudPrintProxyService::InvokeServiceTask(const base::Closure& task) {
245 GetServiceProcessControl()->Launch(task, base::Closure()); 242 GetServiceProcessControl()->Launch(task, base::Closure());
246 return true; 243 return true;
247 } 244 }
248 245
249 ServiceProcessControl* CloudPrintProxyService::GetServiceProcessControl() { 246 ServiceProcessControl* CloudPrintProxyService::GetServiceProcessControl() {
250 return ServiceProcessControl::GetInstance(); 247 return ServiceProcessControl::GetInstance();
251 } 248 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/printing/cloud_print/cloud_print_proxy_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698