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

Side by Side Diff: chrome/browser/extensions/api/cloud_print_private/cloud_print_private_api.cc

Issue 12769009: Pass list of printers to chrome using file. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/cloud_print_private/cloud_print_private_ api.h" 5 #include "chrome/browser/extensions/api/cloud_print_private/cloud_print_private_ api.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/threading/sequenced_worker_pool.h" 9 #include "base/threading/sequenced_worker_pool.h"
10 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" 10 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h"
11 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory. h" 11 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory. h"
12 #include "chrome/common/extensions/api/cloud_print_private.h" 12 #include "chrome/common/extensions/api/cloud_print_private.h"
13 #include "google_apis/google_api_keys.h" 13 #include "google_apis/google_api_keys.h"
14 #include "net/base/net_util.h" 14 #include "net/base/net_util.h"
15 #include "printing/backend/print_backend.h"
16
17
18 15
19 namespace extensions { 16 namespace extensions {
20 17
21 CloudPrintTestsDelegate* CloudPrintTestsDelegate::instance_ = NULL; 18 CloudPrintTestsDelegate* CloudPrintTestsDelegate::instance_ = NULL;
22 19
23 CloudPrintTestsDelegate* CloudPrintTestsDelegate::instance() { 20 CloudPrintTestsDelegate* CloudPrintTestsDelegate::instance() {
24 return instance_; 21 return instance_;
25 } 22 }
26 23
27 CloudPrintTestsDelegate::CloudPrintTestsDelegate() { 24 CloudPrintTestsDelegate::CloudPrintTestsDelegate() {
28 instance_ = this; 25 instance_ = this;
29 } 26 }
30 27
31 CloudPrintTestsDelegate::~CloudPrintTestsDelegate() { 28 CloudPrintTestsDelegate::~CloudPrintTestsDelegate() {
32 instance_ = NULL; 29 instance_ = NULL;
33 } 30 }
34 31
35 CloudPrintPrivateSetupConnectorFunction:: 32 CloudPrintPrivateSetupConnectorFunction::
36 CloudPrintPrivateSetupConnectorFunction() { 33 CloudPrintPrivateSetupConnectorFunction() {
37 } 34 }
38 35
39 CloudPrintPrivateSetupConnectorFunction:: 36 CloudPrintPrivateSetupConnectorFunction::
40 ~CloudPrintPrivateSetupConnectorFunction() { 37 ~CloudPrintPrivateSetupConnectorFunction() {
41 } 38 }
42 39
43 40
44 bool CloudPrintPrivateSetupConnectorFunction::RunImpl() { 41 bool CloudPrintPrivateSetupConnectorFunction::RunImpl() {
45 using extensions::api::cloud_print_private::SetupConnector::Params; 42 using api::cloud_print_private::SetupConnector::Params;
46 scoped_ptr<Params> params(Params::Create(*args_)); 43 scoped_ptr<Params> params(Params::Create(*args_));
47 if (CloudPrintTestsDelegate::instance()) { 44 if (CloudPrintTestsDelegate::instance()) {
48 CloudPrintTestsDelegate::instance()->SetupConnector( 45 CloudPrintTestsDelegate::instance()->SetupConnector(
49 params->user_email, 46 params->user_email,
50 params->robot_email, 47 params->robot_email,
51 params->credentials, 48 params->credentials,
52 params->connect_new_printers, 49 params->connect_new_printers,
53 params->printer_blacklist); 50 params->printer_blacklist);
54 } else { 51 } else {
55 CloudPrintProxyServiceFactory::GetForProfile(profile_)-> 52 CloudPrintProxyServiceFactory::GetForProfile(profile_)->
(...skipping 21 matching lines...) Expand all
77 SendResponse(true); 74 SendResponse(true);
78 return true; 75 return true;
79 } 76 }
80 77
81 CloudPrintPrivateGetPrintersFunction::CloudPrintPrivateGetPrintersFunction() { 78 CloudPrintPrivateGetPrintersFunction::CloudPrintPrivateGetPrintersFunction() {
82 } 79 }
83 80
84 CloudPrintPrivateGetPrintersFunction::~CloudPrintPrivateGetPrintersFunction() { 81 CloudPrintPrivateGetPrintersFunction::~CloudPrintPrivateGetPrintersFunction() {
85 } 82 }
86 83
87 void CloudPrintPrivateGetPrintersFunction::ReturnResult(
88 const base::ListValue* printers) {
89 SetResult(printers->DeepCopy());
90 SendResponse(true);
91 }
92
93 void CloudPrintPrivateGetPrintersFunction::CollectPrinters() { 84 void CloudPrintPrivateGetPrintersFunction::CollectPrinters() {
94 scoped_ptr<base::ListValue> result(new base::ListValue()); 85 std::vector<std::string> result;
95 if (CloudPrintTestsDelegate::instance()) { 86 if (CloudPrintTestsDelegate::instance()) {
96 std::vector<std::string> printers = 87 result = CloudPrintTestsDelegate::instance()->GetPrinters();
97 CloudPrintTestsDelegate::instance()->GetPrinters();
98 for (size_t i = 0; i < printers.size(); ++i)
99 result->Append(Value::CreateStringValue(printers[i]));
100 } else { 88 } else {
101 printing::PrinterList printers; 89 CloudPrintProxyService::GetPrintersAvalibleForRegistration(&result);
102 scoped_refptr<printing::PrintBackend> backend(
103 printing::PrintBackend::CreateInstance(NULL));
104 if (backend)
105 backend->EnumeratePrinters(&printers);
106 for (size_t i = 0; i < printers.size(); ++i)
107 result->Append(Value::CreateStringValue(printers[i].printer_name));
108 } 90 }
91 results_ = api::cloud_print_private::GetPrinters::Results::Create(result);
109 content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, 92 content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE,
110 base::Bind(&CloudPrintPrivateGetPrintersFunction::ReturnResult, this, 93 base::Bind(&CloudPrintPrivateGetPrintersFunction::SendResponse,
111 base::Owned(result.release()))); 94 this, true));
112 } 95 }
113 96
114 97
115 bool CloudPrintPrivateGetPrintersFunction::RunImpl() { 98 bool CloudPrintPrivateGetPrintersFunction::RunImpl() {
116 content::BrowserThread::GetBlockingPool()->PostTask(FROM_HERE, 99 content::BrowserThread::GetBlockingPool()->PostTask(FROM_HERE,
117 base::Bind(&CloudPrintPrivateGetPrintersFunction::CollectPrinters, this)); 100 base::Bind(&CloudPrintPrivateGetPrintersFunction::CollectPrinters, this));
118 return true; 101 return true;
119 } 102 }
120 103
121 104
122 CloudPrintPrivateGetClientIdFunction::CloudPrintPrivateGetClientIdFunction() { 105 CloudPrintPrivateGetClientIdFunction::CloudPrintPrivateGetClientIdFunction() {
123 } 106 }
124 107
125 CloudPrintPrivateGetClientIdFunction::~CloudPrintPrivateGetClientIdFunction() { 108 CloudPrintPrivateGetClientIdFunction::~CloudPrintPrivateGetClientIdFunction() {
126 } 109 }
127 110
128 bool CloudPrintPrivateGetClientIdFunction::RunImpl() { 111 bool CloudPrintPrivateGetClientIdFunction::RunImpl() {
129 SetResult(Value::CreateStringValue( 112 SetResult(Value::CreateStringValue(
130 CloudPrintTestsDelegate::instance() ? 113 CloudPrintTestsDelegate::instance() ?
131 CloudPrintTestsDelegate::instance()->GetClientId() : 114 CloudPrintTestsDelegate::instance()->GetClientId() :
132 google_apis::GetOAuth2ClientID(google_apis::CLIENT_CLOUD_PRINT))); 115 google_apis::GetOAuth2ClientID(google_apis::CLIENT_CLOUD_PRINT)));
133 SendResponse(true); 116 SendResponse(true);
134 return true; 117 return true;
135 } 118 }
136 119
137 } // namespace extensions 120 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698