From de119cf2b1e0cc6b6ab2352812adb14726633413 Mon Sep 17 00:00:00 2001 From: "sanjeevr@chromium.org" Date: Wed, 11 May 2011 20:41:35 +0000 Subject: Changed the IPC between the browser and the service process to return more detailed information about the cloud print proxy. This is a first step towards the new login mechanism for Cloud Print. BUG=None TEST=Unit-tests, enabling disabling cloud print proxy Review URL: http://codereview.chromium.org/7001012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@85038 0039d316-1c4b-4281-b951-d872f2087c98 --- .../printing/cloud_print/cloud_print_proxy_service.cc | 17 ++++++++++------- .../printing/cloud_print/cloud_print_proxy_service.h | 10 ++++++++-- 2 files changed, 18 insertions(+), 9 deletions(-) (limited to 'chrome/browser/printing') diff --git a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc index 0190ae2..88b8953 100644 --- a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc +++ b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.cc @@ -18,6 +18,7 @@ #include "chrome/browser/service/service_process_control.h" #include "chrome/browser/service/service_process_control_manager.h" #include "chrome/browser/ui/browser_list.h" +#include "chrome/common/cloud_print/cloud_print_proxy_info.h" #include "chrome/common/pref_names.h" #include "chrome/common/service_messages.h" #include "content/browser/browser_thread.h" @@ -146,10 +147,10 @@ void CloudPrintProxyService::RefreshCloudPrintProxyStatus() { ServiceProcessControl* process_control = ServiceProcessControlManager::GetInstance()->GetProcessControl(profile_); DCHECK(process_control->is_connected()); - Callback2::Type* callback = - NewCallback(this, &CloudPrintProxyService::StatusCallback); - // GetCloudPrintProxyStatus takes ownership of callback. - process_control->GetCloudPrintProxyStatus(callback); + ServiceProcessControl::CloudPrintProxyInfoHandler* callback = + NewCallback(this, &CloudPrintProxyService::ProxyInfoCallback); + // GetCloudPrintProxyInfo takes ownership of callback. + process_control->GetCloudPrintProxyInfo(callback); } void CloudPrintProxyService::EnableCloudPrintProxy(const std::string& lsid, @@ -171,9 +172,11 @@ void CloudPrintProxyService::DisableCloudPrintProxy() { profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, std::string()); } -void CloudPrintProxyService::StatusCallback(bool enabled, std::string email) { - profile_->GetPrefs()->SetString(prefs::kCloudPrintEmail, - enabled ? email : std::string()); +void CloudPrintProxyService::ProxyInfoCallback( + const cloud_print::CloudPrintProxyInfo& proxy_info) { + profile_->GetPrefs()->SetString( + prefs::kCloudPrintEmail, + proxy_info.enabled ? proxy_info.email : std::string()); } bool CloudPrintProxyService::InvokeServiceTask(Task* task) { diff --git a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h index fc2d94c..f6b01a0 100644 --- a/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h +++ b/chrome/browser/printing/cloud_print/cloud_print_proxy_service.h @@ -15,6 +15,10 @@ class Profile; +namespace cloud_print { +struct CloudPrintProxyInfo; +} // namespace cloud_print + // Layer between the browser user interface and the cloud print proxy code // running in the service process. class CloudPrintProxyService @@ -55,8 +59,10 @@ class CloudPrintProxyService void EnableCloudPrintProxy(const std::string& lsid, const std::string& email); void DisableCloudPrintProxy(); - // Callback that gets the cloud print proxy status. - void StatusCallback(bool enabled, std::string email); + // Callback that gets the cloud print proxy info. + void ProxyInfoCallback( + const cloud_print::CloudPrintProxyInfo& proxy_info); + // Invoke a task that gets run after the service process successfully // launches. The task typically involves sending an IPC to the service // process. -- cgit v1.1