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

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

Issue 6930034: Print Preview: Print in the background. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: fix build after r84303 Created 9 years, 7 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) 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/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "base/utf_string_conversions.h" 8 #include "base/utf_string_conversions.h"
9 #include "chrome/browser/browser_process.h" 9 #include "chrome/browser/browser_process.h"
10 #include "chrome/browser/printing/print_job.h" 10 #include "chrome/browser/printing/print_job.h"
11 #include "chrome/browser/printing/print_job_manager.h" 11 #include "chrome/browser/printing/print_job_manager.h"
12 #include "chrome/browser/printing/print_preview_tab_controller.h" 12 #include "chrome/browser/printing/print_preview_tab_controller.h"
13 #include "chrome/browser/printing/printer_query.h" 13 #include "chrome/browser/printing/printer_query.h"
14 #include "chrome/browser/ui/webui/print_preview_ui.h" 14 #include "chrome/browser/ui/webui/print_preview_ui.h"
15 #include "chrome/common/print_messages.h" 15 #include "chrome/common/print_messages.h"
16 #include "content/browser/renderer_host/render_view_host.h" 16 #include "content/browser/renderer_host/render_view_host.h"
17 #include "content/browser/tab_contents/navigation_entry.h" 17 #include "content/browser/tab_contents/navigation_entry.h"
18 #include "content/browser/tab_contents/tab_contents.h" 18 #include "content/browser/tab_contents/tab_contents.h"
19 #include "content/common/notification_details.h" 19 #include "content/common/notification_details.h"
20 #include "content/common/notification_service.h"
20 #include "content/common/notification_source.h" 21 #include "content/common/notification_source.h"
21 #include "grit/generated_resources.h" 22 #include "grit/generated_resources.h"
22 #include "printing/metafile.h" 23 #include "printing/metafile.h"
23 #include "printing/metafile_impl.h" 24 #include "printing/metafile_impl.h"
24 #include "printing/printed_document.h" 25 #include "printing/printed_document.h"
25 #include "ui/base/l10n/l10n_util.h" 26 #include "ui/base/l10n/l10n_util.h"
26 27
27 using base::TimeDelta; 28 using base::TimeDelta;
28 29
29 namespace { 30 namespace {
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 void PrintViewManager::OnPrintingFailed(int cookie) { 169 void PrintViewManager::OnPrintingFailed(int cookie) {
169 scoped_refptr<PrinterQuery> printer_query; 170 scoped_refptr<PrinterQuery> printer_query;
170 g_browser_process->print_job_manager()->PopPrinterQuery(cookie, 171 g_browser_process->print_job_manager()->PopPrinterQuery(cookie,
171 &printer_query); 172 &printer_query);
172 if (printer_query.get()) { 173 if (printer_query.get()) {
173 BrowserThread::PostTask( 174 BrowserThread::PostTask(
174 BrowserThread::IO, FROM_HERE, 175 BrowserThread::IO, FROM_HERE,
175 NewRunnableMethod(printer_query.get(), 176 NewRunnableMethod(printer_query.get(),
176 &printing::PrinterQuery::StopWorker)); 177 &printing::PrinterQuery::StopWorker));
177 } 178 }
179
180 NotificationService::current()->Notify(
181 NotificationType::PRINT_JOB_RELEASED,
182 Source<TabContents>(tab_contents()),
183 NotificationService::NoDetails());
178 } 184 }
179 185
180 bool PrintViewManager::OnMessageReceived(const IPC::Message& message) { 186 bool PrintViewManager::OnMessageReceived(const IPC::Message& message) {
181 bool handled = true; 187 bool handled = true;
182 IPC_BEGIN_MESSAGE_MAP(PrintViewManager, message) 188 IPC_BEGIN_MESSAGE_MAP(PrintViewManager, message)
183 IPC_MESSAGE_HANDLER(PrintHostMsg_DidGetPrintedPagesCount, 189 IPC_MESSAGE_HANDLER(PrintHostMsg_DidGetPrintedPagesCount,
184 OnDidGetPrintedPagesCount) 190 OnDidGetPrintedPagesCount)
185 IPC_MESSAGE_HANDLER(PrintHostMsg_DidPrintPage, OnDidPrintPage) 191 IPC_MESSAGE_HANDLER(PrintHostMsg_DidPrintPage, OnDidPrintPage)
186 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintingFailed, OnPrintingFailed) 192 IPC_MESSAGE_HANDLER(PrintHostMsg_PrintingFailed, OnPrintingFailed)
187 IPC_MESSAGE_UNHANDLED(handled = false) 193 IPC_MESSAGE_UNHANDLED(handled = false)
(...skipping 14 matching lines...) Expand all
202 break; 208 break;
203 } 209 }
204 } 210 }
205 } 211 }
206 212
207 void PrintViewManager::OnNotifyPrintJobEvent( 213 void PrintViewManager::OnNotifyPrintJobEvent(
208 const JobEventDetails& event_details) { 214 const JobEventDetails& event_details) {
209 switch (event_details.type()) { 215 switch (event_details.type()) {
210 case JobEventDetails::FAILED: { 216 case JobEventDetails::FAILED: {
211 TerminatePrintJob(true); 217 TerminatePrintJob(true);
218
219 NotificationService::current()->Notify(
220 NotificationType::PRINT_JOB_RELEASED,
221 Source<TabContents>(tab_contents()),
222 NotificationService::NoDetails());
212 break; 223 break;
213 } 224 }
214 case JobEventDetails::USER_INIT_DONE: 225 case JobEventDetails::USER_INIT_DONE:
215 case JobEventDetails::DEFAULT_INIT_DONE: 226 case JobEventDetails::DEFAULT_INIT_DONE:
216 case JobEventDetails::USER_INIT_CANCELED: { 227 case JobEventDetails::USER_INIT_CANCELED: {
217 NOTREACHED(); 228 NOTREACHED();
218 break; 229 break;
219 } 230 }
220 case JobEventDetails::ALL_PAGES_REQUESTED: { 231 case JobEventDetails::ALL_PAGES_REQUESTED: {
221 ShouldQuitFromInnerMessageLoop(); 232 ShouldQuitFromInnerMessageLoop();
222 break; 233 break;
223 } 234 }
224 case JobEventDetails::NEW_DOC: 235 case JobEventDetails::NEW_DOC:
225 case JobEventDetails::NEW_PAGE: 236 case JobEventDetails::NEW_PAGE:
226 case JobEventDetails::PAGE_DONE: 237 case JobEventDetails::PAGE_DONE:
227 case JobEventDetails::DOC_DONE: { 238 case JobEventDetails::DOC_DONE: {
228 // Don't care about the actual printing process. 239 // Don't care about the actual printing process.
229 break; 240 break;
230 } 241 }
231 case JobEventDetails::JOB_DONE: { 242 case JobEventDetails::JOB_DONE: {
232 // Printing is done, we don't need it anymore. 243 // Printing is done, we don't need it anymore.
233 // print_job_->is_job_pending() may still be true, depending on the order 244 // print_job_->is_job_pending() may still be true, depending on the order
234 // of object registration. 245 // of object registration.
235 printing_succeeded_ = true; 246 printing_succeeded_ = true;
236 ReleasePrintJob(); 247 ReleasePrintJob();
248
249 NotificationService::current()->Notify(
250 NotificationType::PRINT_JOB_RELEASED,
251 Source<TabContents>(tab_contents()),
252 NotificationService::NoDetails());
237 break; 253 break;
238 } 254 }
239 default: { 255 default: {
240 NOTREACHED(); 256 NOTREACHED();
241 break; 257 break;
242 } 258 }
243 } 259 }
244 } 260 }
245 261
246 bool PrintViewManager::RenderAllMissingPagesNow() { 262 bool PrintViewManager::RenderAllMissingPagesNow() {
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 return false; 456 return false;
441 } 457 }
442 458
443 // Settings are already loaded. Go ahead. This will set 459 // Settings are already loaded. Go ahead. This will set
444 // print_job_->is_job_pending() to true. 460 // print_job_->is_job_pending() to true.
445 print_job_->StartPrinting(); 461 print_job_->StartPrinting();
446 return true; 462 return true;
447 } 463 }
448 464
449 } // namespace printing 465 } // namespace printing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698