Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / cloud_print_private / cloud_print_private_api.cc
index ab18eae..e094f7a 100644 (file)
@@ -37,8 +37,7 @@ CloudPrintPrivateSetupConnectorFunction::
     ~CloudPrintPrivateSetupConnectorFunction() {
 }
 
-
-bool CloudPrintPrivateSetupConnectorFunction::RunImpl() {
+bool CloudPrintPrivateSetupConnectorFunction::RunAsync() {
 #if defined(ENABLE_FULL_PRINTING)
   using api::cloud_print_private::SetupConnector::Params;
   scoped_ptr<Params> params(Params::Create(*args_));
@@ -49,19 +48,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() {
@@ -70,7 +72,7 @@ CloudPrintPrivateGetHostNameFunction::CloudPrintPrivateGetHostNameFunction() {
 CloudPrintPrivateGetHostNameFunction::~CloudPrintPrivateGetHostNameFunction() {
 }
 
-bool CloudPrintPrivateGetHostNameFunction::RunImpl() {
+bool CloudPrintPrivateGetHostNameFunction::RunAsync() {
   SetResult(new base::StringValue(
       CloudPrintTestsDelegate::instance() ?
       CloudPrintTestsDelegate::instance()->GetHostName() :
@@ -85,26 +87,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::RunAsync() {
 #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
 }
 
 
@@ -114,7 +119,7 @@ CloudPrintPrivateGetClientIdFunction::CloudPrintPrivateGetClientIdFunction() {
 CloudPrintPrivateGetClientIdFunction::~CloudPrintPrivateGetClientIdFunction() {
 }
 
-bool CloudPrintPrivateGetClientIdFunction::RunImpl() {
+bool CloudPrintPrivateGetClientIdFunction::RunAsync() {
   SetResult(new base::StringValue(
       CloudPrintTestsDelegate::instance() ?
       CloudPrintTestsDelegate::instance()->GetClientId() :