OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/service/cloud_print/cloud_print_proxy_backend.h" | 5 #include "chrome/service/cloud_print/cloud_print_proxy_backend.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 DCHECK(MessageLoop::current() == backend_->core_thread_.message_loop()); | 319 DCHECK(MessageLoop::current() == backend_->core_thread_.message_loop()); |
320 VLOG(1) << "CP_PROXY: Starting proxy, id: " << proxy_id; | 320 VLOG(1) << "CP_PROXY: Starting proxy, id: " << proxy_id; |
321 | 321 |
322 print_system_ = | 322 print_system_ = |
323 cloud_print::PrintSystem::CreateInstance(print_system_settings_.get()); | 323 cloud_print::PrintSystem::CreateInstance(print_system_settings_.get()); |
324 if (!print_system_.get()) { | 324 if (!print_system_.get()) { |
325 NOTREACHED(); | 325 NOTREACHED(); |
326 return; // No print system available, fail initalization. | 326 return; // No print system available, fail initalization. |
327 } | 327 } |
328 | 328 |
| 329 print_system_->Init(); |
| 330 |
329 // TODO(sanjeevr): Validate the tokens. | 331 // TODO(sanjeevr): Validate the tokens. |
330 auth_token_ = cloud_print_token; | 332 auth_token_ = cloud_print_token; |
331 | 333 |
332 const notifier::NotifierOptions kNotifierOptions; | 334 const notifier::NotifierOptions kNotifierOptions; |
333 const bool kInvalidateXmppAuthToken = false; | 335 const bool kInvalidateXmppAuthToken = false; |
334 const bool kAllowInsecureXmppConnection = false; | 336 const bool kAllowInsecureXmppConnection = false; |
335 talk_mediator_.reset(new notifier::TalkMediatorImpl( | 337 talk_mediator_.reset(new notifier::TalkMediatorImpl( |
336 new notifier::PushNotificationsThread(kNotifierOptions, | 338 new notifier::PushNotificationsThread(kNotifierOptions, |
337 kCloudPrintPushNotificationsSource), | 339 kCloudPrintPushNotificationsSource), |
338 kInvalidateXmppAuthToken, | 340 kInvalidateXmppAuthToken, |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
377 kMaxRetries, | 379 kMaxRetries, |
378 kInitialTimeout, | 380 kInitialTimeout, |
379 kMultiplier, | 381 kMultiplier, |
380 kConstantFactor, | 382 kConstantFactor, |
381 kMaximumTimeout); | 383 kMaximumTimeout); |
382 } | 384 } |
383 | 385 |
384 void CloudPrintProxyBackend::Core::StartRegistration() { | 386 void CloudPrintProxyBackend::Core::StartRegistration() { |
385 DCHECK(MessageLoop::current() == backend_->core_thread_.message_loop()); | 387 DCHECK(MessageLoop::current() == backend_->core_thread_.message_loop()); |
386 printer_list_.clear(); | 388 printer_list_.clear(); |
387 print_system_->GetPrintBackend()->EnumeratePrinters(&printer_list_); | 389 print_system_->EnumeratePrinters(&printer_list_); |
388 // Now we need to ask the server about printers that were registered on the | 390 // Now we need to ask the server about printers that were registered on the |
389 // server so that we can trim this list. | 391 // server so that we can trim this list. |
390 GetRegisteredPrinters(); | 392 GetRegisteredPrinters(); |
391 } | 393 } |
392 | 394 |
393 void CloudPrintProxyBackend::Core::EndRegistration() { | 395 void CloudPrintProxyBackend::Core::EndRegistration() { |
394 DCHECK(MessageLoop::current() == backend_->core_thread_.message_loop()); | 396 DCHECK(MessageLoop::current() == backend_->core_thread_.message_loop()); |
395 request_ = NULL; | 397 request_ = NULL; |
396 if (new_printers_available_) { | 398 if (new_printers_available_) { |
397 new_printers_available_ = false; | 399 new_printers_available_ = false; |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
446 // For the next printer to be uploaded, create a multi-part post request to | 448 // For the next printer to be uploaded, create a multi-part post request to |
447 // upload the printer capabilities and the printer defaults. | 449 // upload the printer capabilities and the printer defaults. |
448 if (next_upload_index_ < printer_list_.size()) { | 450 if (next_upload_index_ < printer_list_.size()) { |
449 const printing::PrinterBasicInfo& info = | 451 const printing::PrinterBasicInfo& info = |
450 printer_list_.at(next_upload_index_); | 452 printer_list_.at(next_upload_index_); |
451 bool have_printer_info = true; | 453 bool have_printer_info = true; |
452 // If we are retrying a previous upload, we don't need to fetch the caps | 454 // If we are retrying a previous upload, we don't need to fetch the caps |
453 // and defaults again. | 455 // and defaults again. |
454 if (info.printer_name != last_uploaded_printer_name_) { | 456 if (info.printer_name != last_uploaded_printer_name_) { |
455 have_printer_info = | 457 have_printer_info = |
456 print_system_->GetPrintBackend()->GetPrinterCapsAndDefaults( | 458 print_system_->GetPrinterCapsAndDefaults( |
457 info.printer_name.c_str(), &last_uploaded_printer_info_); | 459 info.printer_name.c_str(), &last_uploaded_printer_info_); |
458 } | 460 } |
459 if (have_printer_info) { | 461 if (have_printer_info) { |
460 last_uploaded_printer_name_ = info.printer_name; | 462 last_uploaded_printer_name_ = info.printer_name; |
461 std::string mime_boundary; | 463 std::string mime_boundary; |
462 CloudPrintHelpers::CreateMimeBoundaryForUpload(&mime_boundary); | 464 CloudPrintHelpers::CreateMimeBoundaryForUpload(&mime_boundary); |
463 std::string post_data; | 465 std::string post_data; |
464 CloudPrintHelpers::AddMultipartValueForUpload(kProxyIdValue, proxy_id_, | 466 CloudPrintHelpers::AddMultipartValueForUpload(kProxyIdValue, proxy_id_, |
465 mime_boundary, | 467 mime_boundary, |
466 std::string(), &post_data); | 468 std::string(), &post_data); |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
760 VLOG(1) << "CP_PROXY: Printer job handle shutdown, id " << printer_id; | 762 VLOG(1) << "CP_PROXY: Printer job handle shutdown, id " << printer_id; |
761 job_handler_map_.erase(printer_id); | 763 job_handler_map_.erase(printer_id); |
762 } | 764 } |
763 | 765 |
764 void CloudPrintProxyBackend::Core::OnAuthError() { | 766 void CloudPrintProxyBackend::Core::OnAuthError() { |
765 DCHECK(MessageLoop::current() == backend_->core_thread_.message_loop()); | 767 DCHECK(MessageLoop::current() == backend_->core_thread_.message_loop()); |
766 VLOG(1) << "CP_PROXY: Auth Error"; | 768 VLOG(1) << "CP_PROXY: Auth Error"; |
767 backend_->frontend_loop_->PostTask(FROM_HERE, NewRunnableMethod(this, | 769 backend_->frontend_loop_->PostTask(FROM_HERE, NewRunnableMethod(this, |
768 &Core::NotifyAuthenticationFailed)); | 770 &Core::NotifyAuthenticationFailed)); |
769 } | 771 } |
OLD | NEW |