| Index: chrome/service/cloud_print/printer_job_handler.cc
|
| ===================================================================
|
| --- chrome/service/cloud_print/printer_job_handler.cc (revision 48976)
|
| +++ chrome/service/cloud_print/printer_job_handler.cc (working copy)
|
| @@ -22,8 +22,10 @@
|
| const std::string& caps_hash,
|
| const std::string& auth_token,
|
| const GURL& cloud_print_server_url,
|
| + cloud_print::PrintSystem* print_system,
|
| Delegate* delegate)
|
| - : printer_info_(printer_info),
|
| + : print_system_(print_system),
|
| + printer_info_(printer_info),
|
| printer_id_(printer_id),
|
| auth_token_(auth_token),
|
| last_caps_hash_(caps_hash),
|
| @@ -41,8 +43,10 @@
|
| }
|
|
|
| bool PrinterJobHandler::Initialize() {
|
| - if (cloud_print::IsValidPrinter(printer_info_.printer_name)) {
|
| - printer_change_notifier_.StartWatching(printer_info_.printer_name, this);
|
| + if (print_system_->IsValidPrinter(printer_info_.printer_name)) {
|
| + printer_watcher_ = print_system_->CreatePrinterWatcher(
|
| + printer_info_.printer_name);
|
| + printer_watcher_->StartWatching(this);
|
| NotifyJobAvailable();
|
| } else {
|
| // This printer does not exist any more. Delete it from the server.
|
| @@ -52,7 +56,7 @@
|
| }
|
|
|
| PrinterJobHandler::~PrinterJobHandler() {
|
| - printer_change_notifier_.StopWatching();
|
| + printer_watcher_->StopWatching();
|
| }
|
|
|
| void PrinterJobHandler::Reset() {
|
| @@ -118,12 +122,12 @@
|
| // We need to update the parts of the printer info that have changed
|
| // (could be printer name, description, status or capabilities).
|
| cloud_print::PrinterBasicInfo printer_info;
|
| - printer_change_notifier_.GetCurrentPrinterInfo(&printer_info);
|
| + printer_watcher_->GetCurrentPrinterInfo(&printer_info);
|
| cloud_print::PrinterCapsAndDefaults printer_caps;
|
| std::string post_data;
|
| std::string mime_boundary;
|
| - if (cloud_print::GetPrinterCapsAndDefaults(printer_info.printer_name,
|
| - &printer_caps)) {
|
| + if (print_system_->GetPrinterCapsAndDefaults(printer_info.printer_name,
|
| + &printer_caps)) {
|
| std::string caps_hash = MD5String(printer_caps.printer_capabilities);
|
| CloudPrintHelpers::CreateMimeBoundaryForUpload(&mime_boundary);
|
| if (caps_hash != last_caps_hash_) {
|
| @@ -213,12 +217,6 @@
|
| return ret;
|
| }
|
|
|
| - // cloud_print::PrinterChangeNotifier::Delegate implementation
|
| -void PrinterJobHandler::OnPrinterAdded() {
|
| - // Should never get this notification for a printer
|
| - NOTREACHED();
|
| -}
|
| -
|
| void PrinterJobHandler::OnPrinterDeleted() {
|
| printer_delete_pending_ = true;
|
| if (!task_in_progress_) {
|
| @@ -356,7 +354,7 @@
|
| if (!status.is_success() || (response_code != 200)) {
|
| return false;
|
| }
|
| - if (cloud_print::ValidatePrintTicket(printer_info_.printer_name, data)) {
|
| + if (print_system_->ValidatePrintTicket(printer_info_.printer_name, data)) {
|
| job_details_.print_ticket_ = data;
|
| MessageLoop::current()->PostTask(
|
| FROM_HERE,
|
| @@ -416,7 +414,8 @@
|
| print_thread_.message_loop()->PostTask(
|
| FROM_HERE, NewRunnableFunction(&PrinterJobHandler::DoPrint,
|
| job_details_,
|
| - printer_info_.printer_name, this,
|
| + printer_info_.printer_name,
|
| + print_system_, this,
|
| MessageLoop::current()));
|
| }
|
| }
|
| @@ -494,7 +493,7 @@
|
| scoped_refptr<JobStatusUpdater> job_status_updater =
|
| new JobStatusUpdater(printer_info_.printer_name, job_details_.job_id_,
|
| local_job_id_, auth_token_, cloud_print_server_url_,
|
| - this);
|
| + print_system_.get(), this);
|
| job_status_updater_list_.push_back(job_status_updater);
|
| MessageLoop::current()->PostTask(
|
| FROM_HERE, NewRunnableMethod(job_status_updater.get(),
|
| @@ -543,17 +542,18 @@
|
|
|
|
|
| void PrinterJobHandler::DoPrint(const JobDetails& job_details,
|
| - const std::string& printer_name,
|
| - PrinterJobHandler* job_handler,
|
| - MessageLoop* job_message_loop) {
|
| + const std::string& printer_name,
|
| + scoped_refptr<cloud_print::PrintSystem> print_system,
|
| + PrinterJobHandler* job_handler,
|
| + MessageLoop* job_message_loop) {
|
| DCHECK(job_handler);
|
| DCHECK(job_message_loop);
|
| cloud_print::PlatformJobId job_id = -1;
|
| - if (cloud_print::SpoolPrintJob(job_details.print_ticket_,
|
| - job_details.print_data_file_path_,
|
| - job_details.print_data_mime_type_,
|
| - printer_name,
|
| - job_details.job_title_, &job_id)) {
|
| + if (print_system->SpoolPrintJob(job_details.print_ticket_,
|
| + job_details.print_data_file_path_,
|
| + job_details.print_data_mime_type_,
|
| + printer_name,
|
| + job_details.job_title_, &job_id)) {
|
| job_message_loop->PostTask(FROM_HERE,
|
| NewRunnableMethod(job_handler,
|
| &PrinterJobHandler::JobSpooled,
|
|
|