| OLD | NEW |
| 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 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 const base::ListValue* args) { | 232 const base::ListValue* args) { |
| 233 ResetCurrentRegistration(); | 233 ResetCurrentRegistration(); |
| 234 } | 234 } |
| 235 | 235 |
| 236 void LocalDiscoveryUIHandler::HandleRequestDeviceList( | 236 void LocalDiscoveryUIHandler::HandleRequestDeviceList( |
| 237 const base::ListValue* args) { | 237 const base::ListValue* args) { |
| 238 failed_list_count_ = 0; | 238 failed_list_count_ = 0; |
| 239 succeded_list_count_ = 0; | 239 succeded_list_count_ = 0; |
| 240 cloud_devices_.clear(); | 240 cloud_devices_.clear(); |
| 241 | 241 |
| 242 cloud_print_printer_list_ = CreateApiFlow( | 242 cloud_print_printer_list_ = CreateApiFlow(); |
| 243 scoped_ptr<GCDApiFlow::Request>(new CloudPrintPrinterList(this))); | |
| 244 if (CommandLine::ForCurrentProcess()->HasSwitch( | 243 if (CommandLine::ForCurrentProcess()->HasSwitch( |
| 245 switches::kEnableCloudDevices)) { | 244 switches::kEnableCloudDevices)) { |
| 246 cloud_device_list_ = CreateApiFlow( | 245 cloud_device_list_ = CreateApiFlow(); |
| 247 scoped_ptr<GCDApiFlow::Request>(new CloudDeviceList(this))); | |
| 248 } | 246 } |
| 249 | 247 |
| 250 if (cloud_print_printer_list_) | 248 if (cloud_print_printer_list_) { |
| 251 cloud_print_printer_list_->Start(); | 249 cloud_print_printer_list_->Start( |
| 252 if (cloud_device_list_) | 250 make_scoped_ptr<GCDApiFlowInterface::Request>( |
| 253 cloud_device_list_->Start(); | 251 new CloudPrintPrinterList(this))); |
| 252 } |
| 253 if (cloud_device_list_) { |
| 254 cloud_device_list_->Start(make_scoped_ptr<GCDApiFlowInterface::Request>( |
| 255 new CloudDeviceList(this))); |
| 256 } |
| 254 CheckListingDone(); | 257 CheckListingDone(); |
| 255 } | 258 } |
| 256 | 259 |
| 257 void LocalDiscoveryUIHandler::HandleOpenCloudPrintURL( | 260 void LocalDiscoveryUIHandler::HandleOpenCloudPrintURL( |
| 258 const base::ListValue* args) { | 261 const base::ListValue* args) { |
| 259 std::string id; | 262 std::string id; |
| 260 bool rv = args->GetString(0, &id); | 263 bool rv = args->GetString(0, &id); |
| 261 DCHECK(rv); | 264 DCHECK(rv); |
| 262 | 265 |
| 263 Browser* browser = chrome::FindBrowserWithWebContents( | 266 Browser* browser = chrome::FindBrowserWithWebContents( |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 PrivetRegisterOperation* operation, | 306 PrivetRegisterOperation* operation, |
| 304 const std::string& token, | 307 const std::string& token, |
| 305 const GURL& url) { | 308 const GURL& url) { |
| 306 web_ui()->CallJavascriptFunction( | 309 web_ui()->CallJavascriptFunction( |
| 307 "local_discovery.onRegistrationConfirmedOnPrinter"); | 310 "local_discovery.onRegistrationConfirmedOnPrinter"); |
| 308 if (device_descriptions_.count(current_http_client_->GetName()) == 0) { | 311 if (device_descriptions_.count(current_http_client_->GetName()) == 0) { |
| 309 SendRegisterError(); | 312 SendRegisterError(); |
| 310 return; | 313 return; |
| 311 } | 314 } |
| 312 | 315 |
| 313 confirm_api_call_flow_ = CreateApiFlow( | 316 confirm_api_call_flow_ = CreateApiFlow(); |
| 314 scoped_ptr<GCDApiFlow::Request>(new PrivetConfirmApiCallFlow( | |
| 315 token, | |
| 316 base::Bind(&LocalDiscoveryUIHandler::OnConfirmDone, | |
| 317 base::Unretained(this))))); | |
| 318 if (!confirm_api_call_flow_) { | 317 if (!confirm_api_call_flow_) { |
| 319 SendRegisterError(); | 318 SendRegisterError(); |
| 320 return; | 319 return; |
| 321 } | 320 } |
| 322 confirm_api_call_flow_->Start(); | 321 confirm_api_call_flow_->Start(make_scoped_ptr<GCDApiFlowInterface::Request>( |
| 322 new PrivetConfirmApiCallFlow( |
| 323 token, |
| 324 base::Bind(&LocalDiscoveryUIHandler::OnConfirmDone, |
| 325 base::Unretained(this))))); |
| 323 } | 326 } |
| 324 | 327 |
| 325 void LocalDiscoveryUIHandler::OnPrivetRegisterError( | 328 void LocalDiscoveryUIHandler::OnPrivetRegisterError( |
| 326 PrivetRegisterOperation* operation, | 329 PrivetRegisterOperation* operation, |
| 327 const std::string& action, | 330 const std::string& action, |
| 328 PrivetRegisterOperation::FailureReason reason, | 331 PrivetRegisterOperation::FailureReason reason, |
| 329 int printer_http_code, | 332 int printer_http_code, |
| 330 const base::DictionaryValue* json) { | 333 const base::DictionaryValue* json) { |
| 331 std::string error; | 334 std::string error; |
| 332 | 335 |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 473 | 476 |
| 474 if (!signin_manager) { | 477 if (!signin_manager) { |
| 475 return ""; | 478 return ""; |
| 476 } | 479 } |
| 477 | 480 |
| 478 return signin_manager->GetAuthenticatedUsername(); | 481 return signin_manager->GetAuthenticatedUsername(); |
| 479 } | 482 } |
| 480 | 483 |
| 481 // TODO(noamsml): Create master object for registration flow. | 484 // TODO(noamsml): Create master object for registration flow. |
| 482 void LocalDiscoveryUIHandler::ResetCurrentRegistration() { | 485 void LocalDiscoveryUIHandler::ResetCurrentRegistration() { |
| 483 if (current_register_operation_.get()) { | 486 if (current_register_operation_) { |
| 484 current_register_operation_->Cancel(); | 487 current_register_operation_->Cancel(); |
| 485 current_register_operation_.reset(); | 488 current_register_operation_.reset(); |
| 486 } | 489 } |
| 487 | 490 |
| 488 confirm_api_call_flow_.reset(); | 491 confirm_api_call_flow_.reset(); |
| 489 privet_resolution_.reset(); | 492 privet_resolution_.reset(); |
| 490 current_http_client_.reset(); | 493 current_http_client_.reset(); |
| 491 } | 494 } |
| 492 | 495 |
| 493 void LocalDiscoveryUIHandler::CheckUserLoggedIn() { | 496 void LocalDiscoveryUIHandler::CheckUserLoggedIn() { |
| (...skipping 27 matching lines...) Expand all Loading... |
| 521 } | 524 } |
| 522 | 525 |
| 523 ReadDevicesList(cloud_devices_, local_ids, &devices_list); | 526 ReadDevicesList(cloud_devices_, local_ids, &devices_list); |
| 524 | 527 |
| 525 web_ui()->CallJavascriptFunction( | 528 web_ui()->CallJavascriptFunction( |
| 526 "local_discovery.onCloudDeviceListAvailable", devices_list); | 529 "local_discovery.onCloudDeviceListAvailable", devices_list); |
| 527 cloud_print_printer_list_.reset(); | 530 cloud_print_printer_list_.reset(); |
| 528 cloud_device_list_.reset(); | 531 cloud_device_list_.reset(); |
| 529 } | 532 } |
| 530 | 533 |
| 531 scoped_ptr<GCDApiFlow> LocalDiscoveryUIHandler::CreateApiFlow( | 534 scoped_ptr<GCDApiFlowInterface> LocalDiscoveryUIHandler::CreateApiFlow() { |
| 532 scoped_ptr<GCDApiFlow::Request> request) { | |
| 533 Profile* profile = Profile::FromWebUI(web_ui()); | 535 Profile* profile = Profile::FromWebUI(web_ui()); |
| 534 if (!profile) | 536 if (!profile) |
| 535 return scoped_ptr<GCDApiFlow>(); | 537 return scoped_ptr<GCDApiFlowInterface>(); |
| 536 ProfileOAuth2TokenService* token_service = | 538 ProfileOAuth2TokenService* token_service = |
| 537 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); | 539 ProfileOAuth2TokenServiceFactory::GetForProfile(profile); |
| 538 if (!token_service) | 540 if (!token_service) |
| 539 return scoped_ptr<GCDApiFlow>(); | 541 return scoped_ptr<GCDApiFlowInterface>(); |
| 540 SigninManagerBase* signin_manager = | 542 SigninManagerBase* signin_manager = |
| 541 SigninManagerFactory::GetInstance()->GetForProfile(profile); | 543 SigninManagerFactory::GetInstance()->GetForProfile(profile); |
| 542 if (!signin_manager) | 544 if (!signin_manager) |
| 543 return scoped_ptr<GCDApiFlow>(); | 545 return scoped_ptr<GCDApiFlowInterface>(); |
| 544 return make_scoped_ptr( | 546 return make_scoped_ptr<GCDApiFlowInterface>( |
| 545 new GCDApiFlow(profile->GetRequestContext(), | 547 new GCDApiFlow(profile->GetRequestContext(), |
| 546 token_service, | 548 token_service, |
| 547 signin_manager->GetAuthenticatedAccountId(), | 549 signin_manager->GetAuthenticatedAccountId())); |
| 548 request.Pass())); | |
| 549 } | 550 } |
| 550 | 551 |
| 551 #if defined(CLOUD_PRINT_CONNECTOR_UI_AVAILABLE) | 552 #if defined(CLOUD_PRINT_CONNECTOR_UI_AVAILABLE) |
| 552 void LocalDiscoveryUIHandler::StartCloudPrintConnector() { | 553 void LocalDiscoveryUIHandler::StartCloudPrintConnector() { |
| 553 Profile* profile = Profile::FromWebUI(web_ui()); | 554 Profile* profile = Profile::FromWebUI(web_ui()); |
| 554 | 555 |
| 555 base::Closure cloud_print_callback = base::Bind( | 556 base::Closure cloud_print_callback = base::Bind( |
| 556 &LocalDiscoveryUIHandler::OnCloudPrintPrefsChanged, | 557 &LocalDiscoveryUIHandler::OnCloudPrintPrefsChanged, |
| 557 base::Unretained(this)); | 558 base::Unretained(this)); |
| 558 | 559 |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 695 scoped_ptr<base::Value> null_value(base::Value::CreateNullValue()); | 696 scoped_ptr<base::Value> null_value(base::Value::CreateNullValue()); |
| 696 | 697 |
| 697 web_ui()->CallJavascriptFunction( | 698 web_ui()->CallJavascriptFunction( |
| 698 "local_discovery.onUnregisteredDeviceUpdate", service_key, *null_value); | 699 "local_discovery.onUnregisteredDeviceUpdate", service_key, *null_value); |
| 699 } | 700 } |
| 700 } | 701 } |
| 701 | 702 |
| 702 #endif // ENABLE_WIFI_BOOTSTRAPPING | 703 #endif // ENABLE_WIFI_BOOTSTRAPPING |
| 703 | 704 |
| 704 } // namespace local_discovery | 705 } // namespace local_discovery |
| OLD | NEW |