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

Side by Side Diff: chrome/browser/ui/webui/local_discovery/local_discovery_ui_handler.cc

Issue 1553333002: Move cloud print specific files out of local_discovery (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@moveprn
Patch Set: Created 4 years, 11 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/ui/webui/local_discovery/local_discovery_ui_handler.h" 5 #include "chrome/browser/ui/webui/local_discovery/local_discovery_ui_handler.h"
6 6
7 #include <set> 7 #include <set>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
11 #include "base/command_line.h" 11 #include "base/command_line.h"
12 #include "base/message_loop/message_loop.h" 12 #include "base/message_loop/message_loop.h"
13 #include "base/prefs/pref_service.h" 13 #include "base/prefs/pref_service.h"
14 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "build/build_config.h" 16 #include "build/build_config.h"
17 #include "chrome/browser/local_discovery/privet_confirm_api_flow.h"
18 #include "chrome/browser/local_discovery/privet_constants.h"
19 #include "chrome/browser/local_discovery/privet_device_lister_impl.h"
20 #include "chrome/browser/local_discovery/privet_http_asynchronous_factory.h"
21 #include "chrome/browser/local_discovery/service_discovery_shared_client.h" 17 #include "chrome/browser/local_discovery/service_discovery_shared_client.h"
22 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h" 18 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service.h"
23 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory. h" 19 #include "chrome/browser/printing/cloud_print/cloud_print_proxy_service_factory. h"
20 #include "chrome/browser/printing/cloud_print/privet_confirm_api_flow.h"
21 #include "chrome/browser/printing/cloud_print/privet_constants.h"
22 #include "chrome/browser/printing/cloud_print/privet_device_lister_impl.h"
23 #include "chrome/browser/printing/cloud_print/privet_http_asynchronous_factory.h "
24 #include "chrome/browser/profiles/profile.h" 24 #include "chrome/browser/profiles/profile.h"
25 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" 25 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
26 #include "chrome/browser/signin/signin_manager_factory.h" 26 #include "chrome/browser/signin/signin_manager_factory.h"
27 #include "chrome/browser/ui/browser_finder.h" 27 #include "chrome/browser/ui/browser_finder.h"
28 #include "chrome/browser/ui/browser_tabstrip.h" 28 #include "chrome/browser/ui/browser_tabstrip.h"
29 #include "chrome/browser/ui/chrome_pages.h" 29 #include "chrome/browser/ui/chrome_pages.h"
30 #include "chrome/common/chrome_switches.h" 30 #include "chrome/common/chrome_switches.h"
31 #include "chrome/common/pref_names.h" 31 #include "chrome/common/pref_names.h"
32 #include "chrome/grit/generated_resources.h" 32 #include "chrome/grit/generated_resources.h"
33 #include "components/cloud_devices/common/cloud_devices_urls.h" 33 #include "components/cloud_devices/common/cloud_devices_urls.h"
34 #include "components/signin/core/browser/profile_oauth2_token_service.h" 34 #include "components/signin/core/browser/profile_oauth2_token_service.h"
35 #include "content/public/browser/user_metrics.h" 35 #include "content/public/browser/user_metrics.h"
36 #include "content/public/browser/web_ui.h" 36 #include "content/public/browser/web_ui.h"
37 #include "ui/base/l10n/l10n_util.h" 37 #include "ui/base/l10n/l10n_util.h"
38 38
39 #if defined(ENABLE_PRINT_PREVIEW) && !defined(OS_CHROMEOS) 39 #if defined(ENABLE_PRINT_PREVIEW) && !defined(OS_CHROMEOS)
40 #define CLOUD_PRINT_CONNECTOR_UI_AVAILABLE 40 #define CLOUD_PRINT_CONNECTOR_UI_AVAILABLE
41 #endif 41 #endif
42 42
43 using cloud_print::CloudPrintPrinterList;
44 using cloud_print::DeviceDescription;
45 using cloud_print::GCDApiFlow;
46 using cloud_print::PrivetRegisterOperation;
47
43 namespace local_discovery { 48 namespace local_discovery {
44 49
45 namespace { 50 namespace {
46 51
47 const char kDictionaryKeyServiceName[] = "service_name"; 52 const char kDictionaryKeyServiceName[] = "service_name";
48 const char kDictionaryKeyDisplayName[] = "display_name"; 53 const char kDictionaryKeyDisplayName[] = "display_name";
49 const char kDictionaryKeyDescription[] = "description"; 54 const char kDictionaryKeyDescription[] = "description";
50 const char kDictionaryKeyType[] = "type"; 55 const char kDictionaryKeyType[] = "type";
51 const char kDictionaryKeyIsWifi[] = "is_wifi"; 56 const char kDictionaryKeyIsWifi[] = "is_wifi";
52 const char kDictionaryKeyID[] = "id"; 57 const char kDictionaryKeyID[] = "id";
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 } 167 }
163 168
164 void LocalDiscoveryUIHandler::HandleStart(const base::ListValue* args) { 169 void LocalDiscoveryUIHandler::HandleStart(const base::ListValue* args) {
165 Profile* profile = Profile::FromWebUI(web_ui()); 170 Profile* profile = Profile::FromWebUI(web_ui());
166 171
167 // If privet_lister_ is already set, it is a mock used for tests or the result 172 // If privet_lister_ is already set, it is a mock used for tests or the result
168 // of a reload. 173 // of a reload.
169 if (!privet_lister_) { 174 if (!privet_lister_) {
170 service_discovery_client_ = ServiceDiscoverySharedClient::GetInstance(); 175 service_discovery_client_ = ServiceDiscoverySharedClient::GetInstance();
171 privet_lister_.reset( 176 privet_lister_.reset(
172 new PrivetDeviceListerImpl(service_discovery_client_.get(), this)); 177 new cloud_print::PrivetDeviceListerImpl(service_discovery_client_.get(),
173 privet_http_factory_ = PrivetHTTPAsynchronousFactory::CreateInstance( 178 this));
174 profile->GetRequestContext()); 179 privet_http_factory_ =
180 cloud_print::PrivetHTTPAsynchronousFactory::CreateInstance(
181 profile->GetRequestContext());
175 182
176 SigninManagerBase* signin_manager = 183 SigninManagerBase* signin_manager =
177 SigninManagerFactory::GetInstance()->GetForProfile(profile); 184 SigninManagerFactory::GetInstance()->GetForProfile(profile);
178 if (signin_manager) 185 if (signin_manager)
179 signin_manager->AddObserver(this); 186 signin_manager->AddObserver(this);
180 } 187 }
181 188
182 privet_lister_->Start(); 189 privet_lister_->Start();
183 privet_lister_->DiscoverNewDevices(false); 190 privet_lister_->DiscoverNewDevices(false);
184 191
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 void LocalDiscoveryUIHandler::HandleShowSyncUI( 266 void LocalDiscoveryUIHandler::HandleShowSyncUI(
260 const base::ListValue* args) { 267 const base::ListValue* args) {
261 Browser* browser = chrome::FindBrowserWithWebContents( 268 Browser* browser = chrome::FindBrowserWithWebContents(
262 web_ui()->GetWebContents()); 269 web_ui()->GetWebContents());
263 DCHECK(browser); 270 DCHECK(browser);
264 chrome::ShowBrowserSignin( 271 chrome::ShowBrowserSignin(
265 browser, signin_metrics::AccessPoint::ACCESS_POINT_DEVICES_PAGE); 272 browser, signin_metrics::AccessPoint::ACCESS_POINT_DEVICES_PAGE);
266 } 273 }
267 274
268 void LocalDiscoveryUIHandler::StartRegisterHTTP( 275 void LocalDiscoveryUIHandler::StartRegisterHTTP(
269 scoped_ptr<PrivetHTTPClient> http_client) { 276 scoped_ptr<cloud_print::PrivetHTTPClient> http_client) {
270 current_http_client_ = 277 current_http_client_ =
271 PrivetV1HTTPClient::CreateDefault(std::move(http_client)); 278 cloud_print::PrivetV1HTTPClient::CreateDefault(std::move(http_client));
272 279
273 std::string user = GetSyncAccount(); 280 std::string user = GetSyncAccount();
274 281
275 if (!current_http_client_) { 282 if (!current_http_client_) {
276 SendRegisterError(); 283 SendRegisterError();
277 return; 284 return;
278 } 285 }
279 286
280 current_register_operation_ = 287 current_register_operation_ =
281 current_http_client_->CreateRegisterOperation(user, this); 288 current_http_client_->CreateRegisterOperation(user, this);
282 current_register_operation_->Start(); 289 current_register_operation_->Start();
283 } 290 }
284 291
285 void LocalDiscoveryUIHandler::OnPrivetRegisterClaimToken( 292 void LocalDiscoveryUIHandler::OnPrivetRegisterClaimToken(
286 PrivetRegisterOperation* operation, 293 cloud_print::PrivetRegisterOperation* operation,
287 const std::string& token, 294 const std::string& token,
288 const GURL& url) { 295 const GURL& url) {
289 web_ui()->CallJavascriptFunction( 296 web_ui()->CallJavascriptFunction(
290 "local_discovery.onRegistrationConfirmedOnPrinter"); 297 "local_discovery.onRegistrationConfirmedOnPrinter");
291 if (device_descriptions_.count(current_http_client_->GetName()) == 0) { 298 if (device_descriptions_.count(current_http_client_->GetName()) == 0) {
292 SendRegisterError(); 299 SendRegisterError();
293 return; 300 return;
294 } 301 }
295 302
296 confirm_api_call_flow_ = CreateApiFlow(); 303 confirm_api_call_flow_ = CreateApiFlow();
297 if (!confirm_api_call_flow_) { 304 if (!confirm_api_call_flow_) {
298 SendRegisterError(); 305 SendRegisterError();
299 return; 306 return;
300 } 307 }
301 confirm_api_call_flow_->Start( 308 confirm_api_call_flow_->Start(
302 make_scoped_ptr<GCDApiFlow::Request>(new PrivetConfirmApiCallFlow( 309 make_scoped_ptr<GCDApiFlow::Request>(
303 token, 310 new cloud_print::PrivetConfirmApiCallFlow(
304 base::Bind(&LocalDiscoveryUIHandler::OnConfirmDone, 311 token,
305 base::Unretained(this))))); 312 base::Bind(&LocalDiscoveryUIHandler::OnConfirmDone,
313 base::Unretained(this)))));
306 } 314 }
307 315
308 void LocalDiscoveryUIHandler::OnPrivetRegisterError( 316 void LocalDiscoveryUIHandler::OnPrivetRegisterError(
309 PrivetRegisterOperation* operation, 317 PrivetRegisterOperation* operation,
310 const std::string& action, 318 const std::string& action,
311 PrivetRegisterOperation::FailureReason reason, 319 PrivetRegisterOperation::FailureReason reason,
312 int printer_http_code, 320 int printer_http_code,
313 const base::DictionaryValue* json) { 321 const base::DictionaryValue* json) {
314 std::string error; 322 std::string error;
315 323
316 if (reason == PrivetRegisterOperation::FAILURE_JSON_ERROR && 324 if (reason == PrivetRegisterOperation::FAILURE_JSON_ERROR &&
317 json->GetString(kPrivetKeyError, &error)) { 325 json->GetString(cloud_print::kPrivetKeyError, &error)) {
318 if (error == kPrivetErrorTimeout) { 326 if (error == cloud_print::kPrivetErrorTimeout) {
319 web_ui()->CallJavascriptFunction( 327 web_ui()->CallJavascriptFunction(
320 "local_discovery.onRegistrationTimeout"); 328 "local_discovery.onRegistrationTimeout");
321 return; 329 return;
322 } else if (error == kPrivetErrorCancel) { 330 } else if (error == cloud_print::kPrivetErrorCancel) {
323 web_ui()->CallJavascriptFunction( 331 web_ui()->CallJavascriptFunction(
324 "local_discovery.onRegistrationCanceledPrinter"); 332 "local_discovery.onRegistrationCanceledPrinter");
325 return; 333 return;
326 } 334 }
327 } 335 }
328 336
329 SendRegisterError(); 337 SendRegisterError();
330 } 338 }
331 339
332 void LocalDiscoveryUIHandler::OnPrivetRegisterDone( 340 void LocalDiscoveryUIHandler::OnPrivetRegisterDone(
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 650
643 void LocalDiscoveryUIHandler::RefreshCloudPrintStatusFromService() { 651 void LocalDiscoveryUIHandler::RefreshCloudPrintStatusFromService() {
644 if (cloud_print_connector_ui_enabled_) 652 if (cloud_print_connector_ui_enabled_)
645 CloudPrintProxyServiceFactory::GetForProfile(Profile::FromWebUI(web_ui()))-> 653 CloudPrintProxyServiceFactory::GetForProfile(Profile::FromWebUI(web_ui()))->
646 RefreshStatusFromService(); 654 RefreshStatusFromService();
647 } 655 }
648 656
649 #endif // cloud print connector option stuff 657 #endif // cloud print connector option stuff
650 658
651 } // namespace local_discovery 659 } // namespace local_discovery
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698