Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(69)

Side by Side Diff: chrome/browser/printing/print_view_manager.cc

Issue 9703013: Printing: Catch more error conditions and remove more cruft. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698