| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_base.h" | 5 #include "chrome/browser/printing/print_view_manager_base.h" |
| 6 | 6 |
| 7 #include <map> | 7 #include <map> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 #if defined(WIN_PDF_METAFILE_FOR_PRINTING) | 43 #if defined(WIN_PDF_METAFILE_FOR_PRINTING) |
| 44 #include "base/memory/ref_counted.h" | 44 #include "base/memory/ref_counted.h" |
| 45 #include "base/memory/ref_counted_memory.h" | 45 #include "base/memory/ref_counted_memory.h" |
| 46 #include "chrome/browser/printing/pdf_to_emf_converter.h" | 46 #include "chrome/browser/printing/pdf_to_emf_converter.h" |
| 47 #include "printing/pdf_render_settings.h" | 47 #include "printing/pdf_render_settings.h" |
| 48 #endif | 48 #endif |
| 49 | 49 |
| 50 using base::TimeDelta; | 50 using base::TimeDelta; |
| 51 using content::BrowserThread; | 51 using content::BrowserThread; |
| 52 | 52 |
| 53 namespace printing { |
| 54 |
| 55 namespace { |
| 56 |
| 53 #if defined(OS_WIN) && !defined(WIN_PDF_METAFILE_FOR_PRINTING) | 57 #if defined(OS_WIN) && !defined(WIN_PDF_METAFILE_FOR_PRINTING) |
| 54 // Limits memory usage by raster to 64 MiB. | 58 // Limits memory usage by raster to 64 MiB. |
| 55 const int kMaxRasterSizeInPixels = 16*1024*1024; | 59 const int kMaxRasterSizeInPixels = 16*1024*1024; |
| 56 #endif | 60 #endif |
| 57 | 61 |
| 58 namespace printing { | 62 } // namespace |
| 59 | 63 |
| 60 PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) | 64 PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) |
| 61 : content::WebContentsObserver(web_contents), | 65 : content::WebContentsObserver(web_contents), |
| 62 number_pages_(0), | 66 number_pages_(0), |
| 63 printing_succeeded_(false), | 67 printing_succeeded_(false), |
| 64 inside_inner_message_loop_(false), | 68 inside_inner_message_loop_(false), |
| 65 cookie_(0), | 69 cookie_(0), |
| 66 queue_(g_browser_process->print_job_manager()->queue()) { | 70 queue_(g_browser_process->print_job_manager()->queue()) { |
| 67 DCHECK(queue_); | 71 DCHECK(queue_); |
| 68 #if (defined(OS_POSIX) && !defined(OS_MACOSX)) || \ | 72 #if (defined(OS_POSIX) && !defined(OS_MACOSX)) || \ |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 227 params.page_size, | 231 params.page_size, |
| 228 params.content_area); | 232 params.content_area); |
| 229 | 233 |
| 230 ShouldQuitFromInnerMessageLoop(); | 234 ShouldQuitFromInnerMessageLoop(); |
| 231 #else | 235 #else |
| 232 if (metafile_must_be_valid) { | 236 if (metafile_must_be_valid) { |
| 233 scoped_refptr<base::RefCountedBytes> bytes = new base::RefCountedBytes( | 237 scoped_refptr<base::RefCountedBytes> bytes = new base::RefCountedBytes( |
| 234 reinterpret_cast<const unsigned char*>(shared_buf.memory()), | 238 reinterpret_cast<const unsigned char*>(shared_buf.memory()), |
| 235 params.data_size); | 239 params.data_size); |
| 236 | 240 |
| 241 document->DebugDumpData(bytes, FILE_PATH_LITERAL(".pdf")); |
| 242 |
| 237 if (!pdf_to_emf_converter_) | 243 if (!pdf_to_emf_converter_) |
| 238 pdf_to_emf_converter_ = PdfToEmfConverter::CreateDefault(); | 244 pdf_to_emf_converter_ = PdfToEmfConverter::CreateDefault(); |
| 239 | 245 |
| 240 const int kPrinterDpi = print_job_->settings().dpi(); | 246 const int kPrinterDpi = print_job_->settings().dpi(); |
| 241 pdf_to_emf_converter_->Start( | 247 pdf_to_emf_converter_->Start( |
| 242 bytes, | 248 bytes, |
| 243 printing::PdfRenderSettings(params.content_area, kPrinterDpi, false), | 249 printing::PdfRenderSettings(params.content_area, kPrinterDpi, false), |
| 244 base::Bind(&PrintViewManagerBase::OnPdfToEmfConverted, | 250 base::Bind(&PrintViewManagerBase::OnPdfToEmfConverted, |
| 245 base::Unretained(this), | 251 base::Unretained(this), |
| 246 params)); | 252 params)); |
| (...skipping 343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 590 scoped_refptr<printing::PrinterQuery> printer_query; | 596 scoped_refptr<printing::PrinterQuery> printer_query; |
| 591 printer_query = queue_->PopPrinterQuery(cookie); | 597 printer_query = queue_->PopPrinterQuery(cookie); |
| 592 if (!printer_query) | 598 if (!printer_query) |
| 593 return; | 599 return; |
| 594 BrowserThread::PostTask( | 600 BrowserThread::PostTask( |
| 595 BrowserThread::IO, FROM_HERE, | 601 BrowserThread::IO, FROM_HERE, |
| 596 base::Bind(&PrinterQuery::StopWorker, printer_query.get())); | 602 base::Bind(&PrinterQuery::StopWorker, printer_query.get())); |
| 597 } | 603 } |
| 598 | 604 |
| 599 } // namespace printing | 605 } // namespace printing |
| OLD | NEW |