| Index: chrome/browser/service_process/service_process_control.cc
|
| diff --git a/chrome/browser/service_process/service_process_control.cc b/chrome/browser/service_process/service_process_control.cc
|
| index 15a902e136d6ec05bad574aefabd3dc378391afd..dbac06c4418acc9efebbf980930e7eab04c27b26 100644
|
| --- a/chrome/browser/service_process/service_process_control.cc
|
| +++ b/chrome/browser/service_process/service_process_control.cc
|
| @@ -192,6 +192,7 @@ bool ServiceProcessControl::OnMessageReceived(const IPC::Message& message) {
|
| IPC_MESSAGE_HANDLER(ServiceHostMsg_CloudPrintProxy_Info,
|
| OnCloudPrintProxyInfo)
|
| IPC_MESSAGE_HANDLER(ServiceHostMsg_Histograms, OnHistograms)
|
| + IPC_MESSAGE_HANDLER(ServiceHostMsg_Printers, OnPrinters)
|
| IPC_MESSAGE_UNHANDLED(handled = false)
|
| IPC_END_MESSAGE_MAP()
|
| return handled;
|
| @@ -272,8 +273,20 @@ void ServiceProcessControl::RunHistogramsCallback() {
|
| histograms_timeout_callback_.Cancel();
|
| }
|
|
|
| +void ServiceProcessControl::OnPrinters(
|
| + const std::vector<std::string>& printers) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + UMA_HISTOGRAM_ENUMERATION(
|
| + "CloudPrint.ServiceEvents", SERVICE_PRINTERS_REPLY, SERVICE_EVENT_MAX);
|
| + UMA_HISTOGRAM_COUNTS_10000("CloudPrint.AvailablePrinters", printers.size());
|
| + if (!printers_callback_.is_null()) {
|
| + printers_callback_.Run(printers);
|
| + printers_callback_.Reset();
|
| + }
|
| +}
|
| +
|
| bool ServiceProcessControl::GetCloudPrintProxyInfo(
|
| - const CloudPrintProxyInfoHandler& cloud_print_info_callback) {
|
| + const CloudPrintProxyInfoCallback& cloud_print_info_callback) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| DCHECK(!cloud_print_info_callback.is_null());
|
| cloud_print_info_callback_.Reset();
|
| @@ -316,6 +329,19 @@ bool ServiceProcessControl::GetHistograms(
|
| return true;
|
| }
|
|
|
| +bool ServiceProcessControl::GetPrinters(
|
| + const PrintersCallback& printers_callback) {
|
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| + DCHECK(!printers_callback.is_null());
|
| + printers_callback_.Reset();
|
| + UMA_HISTOGRAM_ENUMERATION(
|
| + "CloudPrint.ServiceEvents", SERVICE_PRINTERS_REQUEST, SERVICE_EVENT_MAX);
|
| + if (!Send(new ServiceMsg_GetPrinters()))
|
| + return false;
|
| + printers_callback_ = printers_callback;
|
| + return true;
|
| +}
|
| +
|
| bool ServiceProcessControl::Shutdown() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| bool ret = Send(new ServiceMsg_Shutdown());
|
|
|