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/browser/printing/print_view_manager.h" | 5 #include "chrome/browser/printing/print_view_manager.h" |
6 | 6 |
7 #include <map> | 7 #include <map> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/lazy_instance.h" | 10 #include "base/lazy_instance.h" |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 it->second.Run(); | 128 it->second.Run(); |
129 map.erase(scripted_print_preview_rph_); | 129 map.erase(scripted_print_preview_rph_); |
130 scripted_print_preview_rph_ = NULL; | 130 scripted_print_preview_rph_ = NULL; |
131 } | 131 } |
132 print_preview_state_ = NOT_PREVIEWING; | 132 print_preview_state_ = NOT_PREVIEWING; |
133 } | 133 } |
134 | 134 |
135 void PrintViewManager::PreviewPrintingRequestCancelled() { | 135 void PrintViewManager::PreviewPrintingRequestCancelled() { |
136 if (!web_contents()) | 136 if (!web_contents()) |
137 return; | 137 return; |
138 RenderViewHost* rvh = web_contents()->GetRenderViewHost(); | 138 Send(new PrintMsg_PreviewPrintingRequestCancelled(routing_id())); |
139 rvh->Send(new PrintMsg_PreviewPrintingRequestCancelled(rvh->GetRoutingID())); | |
140 } | 139 } |
141 | 140 |
142 void PrintViewManager::set_observer(PrintViewManagerObserver* observer) { | 141 void PrintViewManager::set_observer(PrintViewManagerObserver* observer) { |
143 DCHECK(!observer || !observer_); | 142 DCHECK(!observer || !observer_); |
144 observer_ = observer; | 143 observer_ = observer; |
145 } | 144 } |
146 | 145 |
147 void PrintViewManager::StopNavigation() { | 146 void PrintViewManager::StopNavigation() { |
148 // Cancel the current job, wait for the worker to finish. | 147 // Cancel the current job, wait for the worker to finish. |
149 TerminatePrintJob(true); | 148 TerminatePrintJob(true); |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
479 } else { | 478 } else { |
480 // DO NOT wait for the job to finish. | 479 // DO NOT wait for the job to finish. |
481 ReleasePrintJob(); | 480 ReleasePrintJob(); |
482 } | 481 } |
483 #if defined(OS_POSIX) && !defined(OS_MACOSX) | 482 #if defined(OS_POSIX) && !defined(OS_MACOSX) |
484 expecting_first_page_ = true; | 483 expecting_first_page_ = true; |
485 #endif | 484 #endif |
486 } | 485 } |
487 | 486 |
488 void PrintViewManager::PrintingDone(bool success) { | 487 void PrintViewManager::PrintingDone(bool success) { |
489 if (!print_job_.get() || !web_contents()) | 488 if (!print_job_.get()) |
490 return; | 489 return; |
491 RenderViewHost* rvh = web_contents()->GetRenderViewHost(); | 490 Send(new PrintMsg_PrintingDone(routing_id(), success)); |
492 rvh->Send(new PrintMsg_PrintingDone(rvh->GetRoutingID(), success)); | |
493 } | 491 } |
494 | 492 |
495 void PrintViewManager::TerminatePrintJob(bool cancel) { | 493 void PrintViewManager::TerminatePrintJob(bool cancel) { |
496 if (!print_job_.get()) | 494 if (!print_job_.get()) |
497 return; | 495 return; |
498 | 496 |
499 if (cancel) { | 497 if (cancel) { |
500 // We don't need the metafile data anymore because the printing is canceled. | 498 // We don't need the metafile data anymore because the printing is canceled. |
501 print_job_->Cancel(); | 499 print_job_->Cancel(); |
502 inside_inner_message_loop_ = false; | 500 inside_inner_message_loop_ = false; |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
586 } | 584 } |
587 | 585 |
588 // Settings are already loaded. Go ahead. This will set | 586 // Settings are already loaded. Go ahead. This will set |
589 // print_job_->is_job_pending() to true. | 587 // print_job_->is_job_pending() to true. |
590 print_job_->StartPrinting(); | 588 print_job_->StartPrinting(); |
591 return true; | 589 return true; |
592 } | 590 } |
593 | 591 |
594 bool PrintViewManager::PrintNowInternal(IPC::Message* message) { | 592 bool PrintViewManager::PrintNowInternal(IPC::Message* message) { |
595 // Don't print / print preview interstitials. | 593 // Don't print / print preview interstitials. |
596 if (web_contents()->ShowingInterstitialPage()) | 594 if (web_contents()->ShowingInterstitialPage()) { |
| 595 delete message; |
597 return false; | 596 return false; |
| 597 } |
598 return Send(message); | 598 return Send(message); |
599 } | 599 } |
600 | 600 |
601 void PrintViewManager::ReleasePrinterQuery() { | 601 void PrintViewManager::ReleasePrinterQuery() { |
602 if (!cookie_) | 602 if (!cookie_) |
603 return; | 603 return; |
604 | 604 |
605 int cookie = cookie_; | 605 int cookie = cookie_; |
606 cookie_ = 0; | 606 cookie_ = 0; |
607 | 607 |
608 printing::PrintJobManager* print_job_manager = | 608 printing::PrintJobManager* print_job_manager = |
609 g_browser_process->print_job_manager(); | 609 g_browser_process->print_job_manager(); |
610 // May be NULL in tests. | 610 // May be NULL in tests. |
611 if (!print_job_manager) | 611 if (!print_job_manager) |
612 return; | 612 return; |
613 | 613 |
614 scoped_refptr<printing::PrinterQuery> printer_query; | 614 scoped_refptr<printing::PrinterQuery> printer_query; |
615 print_job_manager->PopPrinterQuery(cookie, &printer_query); | 615 print_job_manager->PopPrinterQuery(cookie, &printer_query); |
616 if (!printer_query.get()) | 616 if (!printer_query.get()) |
617 return; | 617 return; |
618 BrowserThread::PostTask( | 618 BrowserThread::PostTask( |
619 BrowserThread::IO, FROM_HERE, | 619 BrowserThread::IO, FROM_HERE, |
620 base::Bind(&PrinterQuery::StopWorker, printer_query.get())); | 620 base::Bind(&PrinterQuery::StopWorker, printer_query.get())); |
621 } | 621 } |
622 | 622 |
623 } // namespace printing | 623 } // namespace printing |
OLD | NEW |