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

Unified Diff: chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc

Issue 208653010: Use service process to collect printers. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc
diff --git a/chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc b/chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc
index ab18eaeace0060306f89e2629b640ce9bb4aa33f..4c5f73e87b4c51cc975d205d92d65602efe86da3 100644
--- a/chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc
+++ b/chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc
@@ -49,19 +49,22 @@ bool CloudPrintPrivateSetupConnectorFunction::RunImpl() {
params->credentials,
params->user_settings);
} else {
- if (!CloudPrintProxyServiceFactory::GetForProfile(GetProfile()))
+ CloudPrintProxyService* service =
+ CloudPrintProxyServiceFactory::GetForProfile(GetProfile());
+ if (!service)
return false;
scoped_ptr<base::DictionaryValue> user_setings(
params->user_settings.ToValue());
- CloudPrintProxyServiceFactory::GetForProfile(GetProfile())
- ->EnableForUserWithRobot(params->credentials,
- params->robot_email,
- params->user_email,
- *user_setings);
+ service->EnableForUserWithRobot(params->credentials,
+ params->robot_email,
+ params->user_email,
+ *user_setings);
}
SendResponse(true);
-#endif
return true;
+#else
+ return false;
+#endif
}
CloudPrintPrivateGetHostNameFunction::CloudPrintPrivateGetHostNameFunction() {
@@ -85,26 +88,29 @@ CloudPrintPrivateGetPrintersFunction::CloudPrintPrivateGetPrintersFunction() {
CloudPrintPrivateGetPrintersFunction::~CloudPrintPrivateGetPrintersFunction() {
}
-void CloudPrintPrivateGetPrintersFunction::CollectPrinters() {
+void CloudPrintPrivateGetPrintersFunction::SendResults(
+ const std::vector<std::string>& printers) {
+ results_ = api::cloud_print_private::GetPrinters::Results::Create(printers);
+ SendResponse(true);
+}
+
+bool CloudPrintPrivateGetPrintersFunction::RunImpl() {
#if defined(ENABLE_FULL_PRINTING)
std::vector<std::string> result;
if (CloudPrintTestsDelegate::instance()) {
- result = CloudPrintTestsDelegate::instance()->GetPrinters();
+ SendResults(CloudPrintTestsDelegate::instance()->GetPrinters());
} else {
- CloudPrintProxyService::GetPrintersAvalibleForRegistration(&result);
+ CloudPrintProxyService* service =
+ CloudPrintProxyServiceFactory::GetForProfile(GetProfile());
+ if (!service)
+ return false;
+ service->GetPrinters(
+ base::Bind(&CloudPrintPrivateGetPrintersFunction::SendResults, this));
}
- results_ = api::cloud_print_private::GetPrinters::Results::Create(result);
- content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE,
- base::Bind(&CloudPrintPrivateGetPrintersFunction::SendResponse,
- this, true));
-#endif
-}
-
-
-bool CloudPrintPrivateGetPrintersFunction::RunImpl() {
- content::BrowserThread::GetBlockingPool()->PostTask(FROM_HERE,
- base::Bind(&CloudPrintPrivateGetPrintersFunction::CollectPrinters, this));
return true;
+#else
+ return false;
+#endif
}

Powered by Google App Engine
This is Rietveld 408576698