Index: chrome/browser/service/service_process_control.cc |
diff --git a/chrome/browser/service/service_process_control.cc b/chrome/browser/service/service_process_control.cc |
index 05dc446256f4827c94ff5f1811e06d0d6c85d7de..c3c16d85440f2588879ee4c73c70ef06bcdeafd4 100644 |
--- a/chrome/browser/service/service_process_control.cc |
+++ b/chrome/browser/service/service_process_control.cc |
@@ -171,11 +171,11 @@ void ServiceProcessControl::OnProcessLaunched(Task* task) { |
} |
void ServiceProcessControl::OnMessageReceived(const IPC::Message& message) { |
- if (!message_handler_) |
- return; |
- |
- if (message.type() == ServiceHostMsg_GoodDay::ID) |
- message_handler_->OnGoodDay(); |
+ IPC_BEGIN_MESSAGE_MAP(ServiceProcessControl, message) |
+ IPC_MESSAGE_HANDLER(ServiceHostMsg_GoodDay, OnGoodDay) |
+ IPC_MESSAGE_HANDLER(ServiceHostMsg_CloudPrintProxy_IsEnabled, |
+ OnCloudPrintProxyIsEnabled) |
+ IPC_END_MESSAGE_MAP() |
} |
void ServiceProcessControl::OnChannelConnected(int32 peer_pid) { |
@@ -202,6 +202,22 @@ bool ServiceProcessControl::Send(IPC::Message* message) { |
return channel_->Send(message); |
} |
+void ServiceProcessControl::OnGoodDay() { |
+ if (!message_handler_) |
+ return; |
+ |
+ message_handler_->OnGoodDay(); |
+} |
+ |
+void ServiceProcessControl::OnCloudPrintProxyIsEnabled(bool enabled, |
+ std::string email) { |
+ DCHECK(ChromeThread::CurrentlyOn(ChromeThread::UI)); |
+ if (cloud_print_status_callback_ != NULL) { |
+ cloud_print_status_callback_->Run(enabled, email); |
+ cloud_print_status_callback_.reset(); |
+ } |
+} |
+ |
bool ServiceProcessControl::SendHello() { |
return Send(new ServiceMsg_Hello()); |
} |
@@ -221,4 +237,11 @@ bool ServiceProcessControl::EnableRemotingWithTokens( |
talk_token)); |
} |
+bool ServiceProcessControl::GetCloudPrintProxyStatus( |
+ Callback2<bool, std::string>::Type* cloud_print_status_callback) { |
+ DCHECK(cloud_print_status_callback); |
+ cloud_print_status_callback_.reset(cloud_print_status_callback); |
+ return Send(new ServiceMsg_IsCloudPrintProxyEnabled); |
+} |
+ |
DISABLE_RUNNABLE_METHOD_REFCOUNT(ServiceProcessControl); |