| 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 |