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

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

Issue 8564044: Revert 110056 - Print Preview: Make print preview tab modal. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 1 month 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "base/bind.h" 7 #include "base/bind.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "chrome/browser/browser_process.h" 10 #include "chrome/browser/browser_process.h"
(...skipping 15 matching lines...) Expand all
26 #include "printing/metafile.h" 26 #include "printing/metafile.h"
27 #include "printing/metafile_impl.h" 27 #include "printing/metafile_impl.h"
28 #include "printing/printed_document.h" 28 #include "printing/printed_document.h"
29 #include "ui/base/l10n/l10n_util.h" 29 #include "ui/base/l10n/l10n_util.h"
30 30
31 using base::TimeDelta; 31 using base::TimeDelta;
32 using content::BrowserThread; 32 using content::BrowserThread;
33 33
34 namespace { 34 namespace {
35 35
36 string16 GenerateRenderSourceName(TabContents* tab_contents) {
37 string16 name(tab_contents->GetTitle());
38 if (name.empty())
39 name = l10n_util::GetStringUTF16(IDS_DEFAULT_PRINT_DOCUMENT_TITLE);
40 return name;
41 }
42
36 // Release the PrinterQuery identified by |cookie|. 43 // Release the PrinterQuery identified by |cookie|.
37 void ReleasePrinterQuery(int cookie) { 44 void ReleasePrinterQuery(int cookie) {
38 printing::PrintJobManager* print_job_manager = 45 printing::PrintJobManager* print_job_manager =
39 g_browser_process->print_job_manager(); 46 g_browser_process->print_job_manager();
40 // May be NULL in tests. 47 // May be NULL in tests.
41 if (!print_job_manager) 48 if (!print_job_manager)
42 return; 49 return;
43 50
44 scoped_refptr<printing::PrinterQuery> printer_query; 51 scoped_refptr<printing::PrinterQuery> printer_query;
45 print_job_manager->PopPrinterQuery(cookie, &printer_query); 52 print_job_manager->PopPrinterQuery(cookie, &printer_query);
46 if (printer_query.get()) { 53 if (printer_query.get()) {
47 BrowserThread::PostTask( 54 BrowserThread::PostTask(
48 BrowserThread::IO, FROM_HERE, 55 BrowserThread::IO, FROM_HERE,
49 base::Bind(&printing::PrinterQuery::StopWorker, printer_query.get())); 56 base::Bind(&printing::PrinterQuery::StopWorker, printer_query.get()));
50 } 57 }
51 } 58 }
52 59
53 } // namespace 60 } // namespace
54 61
55 namespace printing { 62 namespace printing {
56 63
57 PrintViewManager::PrintViewManager(TabContentsWrapper* tab) 64 PrintViewManager::PrintViewManager(TabContentsWrapper* tab)
58 : TabContentsObserver(tab->tab_contents()), 65 : TabContentsObserver(tab->tab_contents()),
59 tab_(tab), 66 tab_(tab),
60 number_pages_(0), 67 number_pages_(0),
61 printing_succeeded_(false), 68 printing_succeeded_(false),
62 inside_inner_message_loop_(false), 69 inside_inner_message_loop_(false),
70 is_title_overridden_(false),
63 observer_(NULL), 71 observer_(NULL),
64 cookie_(0) { 72 cookie_(0) {
65 #if defined(OS_POSIX) && !defined(OS_MACOSX) 73 #if defined(OS_POSIX) && !defined(OS_MACOSX)
66 expecting_first_page_ = true; 74 expecting_first_page_ = true;
67 #endif 75 #endif
68 } 76 }
69 77
70 PrintViewManager::~PrintViewManager() { 78 PrintViewManager::~PrintViewManager() {
71 ReleasePrinterQuery(cookie_); 79 ReleasePrinterQuery(cookie_);
72 DisconnectFromCurrentPrintJob(); 80 DisconnectFromCurrentPrintJob();
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 return; 119 return;
112 RenderViewHost* rvh = tab_contents()->render_view_host(); 120 RenderViewHost* rvh = tab_contents()->render_view_host();
113 rvh->Send(new PrintMsg_PreviewPrintingRequestCancelled(rvh->routing_id())); 121 rvh->Send(new PrintMsg_PreviewPrintingRequestCancelled(rvh->routing_id()));
114 } 122 }
115 123
116 void PrintViewManager::set_observer(PrintViewManagerObserver* observer) { 124 void PrintViewManager::set_observer(PrintViewManagerObserver* observer) {
117 DCHECK(!observer || !observer_); 125 DCHECK(!observer || !observer_);
118 observer_ = observer; 126 observer_ = observer;
119 } 127 }
120 128
129 void PrintViewManager::ResetTitleOverride() {
130 is_title_overridden_ = false;
131 }
132
121 void PrintViewManager::StopNavigation() { 133 void PrintViewManager::StopNavigation() {
122 // Cancel the current job, wait for the worker to finish. 134 // Cancel the current job, wait for the worker to finish.
123 TerminatePrintJob(true); 135 TerminatePrintJob(true);
124 } 136 }
125 137
126 void PrintViewManager::RenderViewGone() { 138 void PrintViewManager::RenderViewGone() {
127 if (!print_job_.get()) 139 if (!print_job_.get())
128 return; 140 return;
129 141
130 scoped_refptr<PrintedDocument> document(print_job_->document()); 142 scoped_refptr<PrintedDocument> document(print_job_->document());
131 if (document) { 143 if (document) {
132 // If IsComplete() returns false, the document isn't completely rendered. 144 // If IsComplete() returns false, the document isn't completely rendered.
133 // Since our renderer is gone, there's nothing to do, cancel it. Otherwise, 145 // Since our renderer is gone, there's nothing to do, cancel it. Otherwise,
134 // the print job may finish without problem. 146 // the print job may finish without problem.
135 TerminatePrintJob(!document->IsComplete()); 147 TerminatePrintJob(!document->IsComplete());
136 } 148 }
137 } 149 }
138 150
151 void PrintViewManager::OverrideTitle(TabContents* tab_contents) {
152 is_title_overridden_ = true;
153 overridden_title_ = GenerateRenderSourceName(tab_contents);
154 }
155
139 string16 PrintViewManager::RenderSourceName() { 156 string16 PrintViewManager::RenderSourceName() {
140 string16 name(tab_contents()->GetTitle()); 157 if (is_title_overridden_)
141 if (name.empty()) 158 return overridden_title_;
142 name = l10n_util::GetStringUTF16(IDS_DEFAULT_PRINT_DOCUMENT_TITLE); 159 return GenerateRenderSourceName(tab_contents());
143 return name;
144 } 160 }
145 161
146 void PrintViewManager::OnDidGetPrintedPagesCount(int cookie, int number_pages) { 162 void PrintViewManager::OnDidGetPrintedPagesCount(int cookie, int number_pages) {
147 DCHECK_GT(cookie, 0); 163 DCHECK_GT(cookie, 0);
148 DCHECK_GT(number_pages, 0); 164 DCHECK_GT(number_pages, 0);
149 number_pages_ = number_pages; 165 number_pages_ = number_pages;
150 OpportunisticallyCreatePrintJob(cookie); 166 OpportunisticallyCreatePrintJob(cookie);
151 } 167 }
152 168
153 void PrintViewManager::OnDidGetDocumentCookie(int cookie) { 169 void PrintViewManager::OnDidGetDocumentCookie(int cookie) {
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 } 527 }
512 528
513 bool PrintViewManager::PrintNowInternal(IPC::Message* message) { 529 bool PrintViewManager::PrintNowInternal(IPC::Message* message) {
514 // Don't print / print preview interstitials. 530 // Don't print / print preview interstitials.
515 if (tab_contents()->showing_interstitial_page()) 531 if (tab_contents()->showing_interstitial_page())
516 return false; 532 return false;
517 return Send(message); 533 return Send(message);
518 } 534 }
519 535
520 } // namespace printing 536 } // namespace printing
OLDNEW
« no previous file with comments | « chrome/browser/printing/print_view_manager.h ('k') | chrome/browser/resources/print_preview/print_header.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698