| OLD | NEW |
| 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/service/cloud_print/printer_job_handler.h" | 5 #include "chrome/service/cloud_print/printer_job_handler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/bind_helpers.h" | 8 #include "base/bind_helpers.h" |
| 9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
| 10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 309 if (!jobs.empty()) { | 309 if (!jobs.empty()) { |
| 310 if (jobs[0].time_remaining_ == base::TimeDelta()) { | 310 if (jobs[0].time_remaining_ == base::TimeDelta()) { |
| 311 job_available = true; | 311 job_available = true; |
| 312 job_details_ = jobs[0]; | 312 job_details_ = jobs[0]; |
| 313 job_start_time_ = base::Time::Now(); | 313 job_start_time_ = base::Time::Now(); |
| 314 base::subtle::NoBarrier_AtomicIncrement(&g_total_jobs_started, 1); | 314 base::subtle::NoBarrier_AtomicIncrement(&g_total_jobs_started, 1); |
| 315 UMA_HISTOGRAM_ENUMERATION("CloudPrint.JobHandlerEvent", | 315 UMA_HISTOGRAM_ENUMERATION("CloudPrint.JobHandlerEvent", |
| 316 JOB_HANDLER_JOB_STARTED, JOB_HANDLER_MAX); | 316 JOB_HANDLER_JOB_STARTED, JOB_HANDLER_MAX); |
| 317 SetNextDataHandler(&PrinterJobHandler::HandlePrintTicketResponse); | 317 SetNextDataHandler(&PrinterJobHandler::HandlePrintTicketResponse); |
| 318 request_ = CloudPrintURLFetcher::Create(); | 318 request_ = CloudPrintURLFetcher::Create(); |
| 319 request_->StartGetRequest(CloudPrintURLFetcher::REQUEST_TICKET, | 319 if (print_system_->UseCddAndCjt()) { |
| 320 GURL(job_details_.print_ticket_url_), this, kJobDataMaxRetryCount, | 320 request_->StartGetRequest( |
| 321 std::string()); | 321 CloudPrintURLFetcher::REQUEST_TICKET, |
| 322 GetUrlForJobCjt(cloud_print_server_url_, job_details_.job_id_, |
| 323 job_fetch_reason_), |
| 324 this, kJobDataMaxRetryCount, std::string()); |
| 325 } else { |
| 326 request_->StartGetRequest( |
| 327 CloudPrintURLFetcher::REQUEST_TICKET, |
| 328 GURL(job_details_.print_ticket_url_), this, kJobDataMaxRetryCount, |
| 329 std::string()); |
| 330 } |
| 322 } else { | 331 } else { |
| 323 job_available = false; | 332 job_available = false; |
| 324 base::MessageLoop::current()->PostDelayedTask( | 333 base::MessageLoop::current()->PostDelayedTask( |
| 325 FROM_HERE, | 334 FROM_HERE, |
| 326 base::Bind(&PrinterJobHandler::RunScheduledJobCheck, this), | 335 base::Bind(&PrinterJobHandler::RunScheduledJobCheck, this), |
| 327 jobs[0].time_remaining_); | 336 jobs[0].time_remaining_); |
| 328 } | 337 } |
| 329 } | 338 } |
| 330 } | 339 } |
| 331 | 340 |
| (...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 std::string mime_boundary; | 685 std::string mime_boundary; |
| 677 CreateMimeBoundaryForUpload(&mime_boundary); | 686 CreateMimeBoundaryForUpload(&mime_boundary); |
| 678 | 687 |
| 679 if (succeeded) { | 688 if (succeeded) { |
| 680 std::string caps_hash = | 689 std::string caps_hash = |
| 681 base::MD5String(caps_and_defaults.printer_capabilities); | 690 base::MD5String(caps_and_defaults.printer_capabilities); |
| 682 if (caps_hash != printer_info_cloud_.caps_hash) { | 691 if (caps_hash != printer_info_cloud_.caps_hash) { |
| 683 // Hashes don't match, we need to upload new capabilities (the defaults | 692 // Hashes don't match, we need to upload new capabilities (the defaults |
| 684 // go for free along with the capabilities) | 693 // go for free along with the capabilities) |
| 685 printer_info_cloud_.caps_hash = caps_hash; | 694 printer_info_cloud_.caps_hash = caps_hash; |
| 686 if (caps_and_defaults.caps_mime_type == kContentTypeCDD) { | 695 if (caps_and_defaults.caps_mime_type == kContentTypeJSON) { |
| 696 DCHECK(print_system_->UseCddAndCjt()); |
| 687 net::AddMultipartValueForUpload(kUseCDD, "true", mime_boundary, | 697 net::AddMultipartValueForUpload(kUseCDD, "true", mime_boundary, |
| 688 std::string(), &post_data); | 698 std::string(), &post_data); |
| 689 } | 699 } |
| 690 net::AddMultipartValueForUpload(kPrinterCapsValue, | 700 net::AddMultipartValueForUpload(kPrinterCapsValue, |
| 691 caps_and_defaults.printer_capabilities, mime_boundary, | 701 caps_and_defaults.printer_capabilities, mime_boundary, |
| 692 caps_and_defaults.caps_mime_type, &post_data); | 702 caps_and_defaults.caps_mime_type, &post_data); |
| 693 net::AddMultipartValueForUpload(kPrinterDefaultsValue, | 703 net::AddMultipartValueForUpload(kPrinterDefaultsValue, |
| 694 caps_and_defaults.printer_defaults, mime_boundary, | 704 caps_and_defaults.printer_defaults, mime_boundary, |
| 695 caps_and_defaults.defaults_mime_type, &post_data); | 705 caps_and_defaults.defaults_mime_type, &post_data); |
| 696 net::AddMultipartValueForUpload(kPrinterCapsHashValue, | 706 net::AddMultipartValueForUpload(kPrinterCapsHashValue, |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 796 job_details.print_data_mime_type_, | 806 job_details.print_data_mime_type_, |
| 797 printer_name, | 807 printer_name, |
| 798 base::UTF16ToUTF8(document_name), | 808 base::UTF16ToUTF8(document_name), |
| 799 job_details.tags_, | 809 job_details.tags_, |
| 800 this)) { | 810 this)) { |
| 801 OnJobSpoolFailed(); | 811 OnJobSpoolFailed(); |
| 802 } | 812 } |
| 803 } | 813 } |
| 804 | 814 |
| 805 } // namespace cloud_print | 815 } // namespace cloud_print |
| OLD | NEW |