Chromium Code Reviews| Index: chrome/browser/printing/print_view_manager_base.cc |
| diff --git a/chrome/browser/printing/print_view_manager_base.cc b/chrome/browser/printing/print_view_manager_base.cc |
| index cfadc098230320b8857352a963b73c052c0ce38e..756a071aa932c6825ed1720fb089692d100818f8 100644 |
| --- a/chrome/browser/printing/print_view_manager_base.cc |
| +++ b/chrome/browser/printing/print_view_manager_base.cc |
| @@ -44,7 +44,7 @@ |
| using base::TimeDelta; |
| using content::BrowserThread; |
| -#if defined(OS_WIN) |
| +#if defined(OS_WIN) && PRINTING_USE_EMF_METAFILE |
| // Limits memory usage by raster to 64 MiB. |
| const int kMaxRasterSizeInPixels = 16*1024*1024; |
| #endif |
| @@ -59,7 +59,8 @@ PrintViewManagerBase::PrintViewManagerBase(content::WebContents* web_contents) |
| cookie_(0), |
| queue_(g_browser_process->print_job_manager()->queue()) { |
| DCHECK(queue_); |
| -#if defined(OS_POSIX) && !defined(OS_MACOSX) |
| +#if (defined(OS_POSIX) && !defined(OS_MACOSX)) || \ |
| + (defined(OS_WIN) && !PRINTING_USE_EMF_METAFILE) |
| expecting_first_page_ = true; |
| #endif |
| Profile* profile = |
| @@ -113,6 +114,15 @@ base::string16 PrintViewManagerBase::RenderSourceName() { |
| return name; |
| } |
| +#if 0 && defined(OS_WIN) && !PRINTING_USE_EMF_METAFILE |
| +void PrintViewManagerBase::OnRenderPDFPagesToMetafileSucceeded( |
| + const printing::Emf& metafile, |
| + int highest_rendered_page_number, |
| + double scale_factor) { |
| + CHECK(false); |
| +} |
| +#endif // OS_WIN && !PRINTING_USE_EMF_METAFILE |
| + |
| void PrintViewManagerBase::OnDidGetPrintedPagesCount(int cookie, |
| int number_pages) { |
| DCHECK_GT(cookie, 0); |
| @@ -137,9 +147,9 @@ void PrintViewManagerBase::OnDidPrintPage( |
| return; |
| } |
| -#if defined(OS_WIN) || defined(OS_MACOSX) |
| +#if (defined(OS_WIN) && PRINTING_USE_EMF_METAFILE) || defined(OS_MACOSX) |
| const bool metafile_must_be_valid = true; |
| -#elif defined(OS_POSIX) |
| +#elif defined(OS_POSIX) || (defined(OS_WIN) && !PRINTING_USE_EMF_METAFILE) |
| const bool metafile_must_be_valid = expecting_first_page_; |
| expecting_first_page_ = false; |
| #endif |
| @@ -162,7 +172,7 @@ void PrintViewManagerBase::OnDidPrintPage( |
| } |
| } |
| -#if defined(OS_WIN) |
| +#if defined(OS_WIN) && PRINTING_USE_EMF_METAFILE |
| bool big_emf = (params.data_size && params.data_size >= kMetafileMaxSize); |
| int raster_size = std::min(params.page_size.GetArea(), |
| kMaxRasterSizeInPixels); |
| @@ -179,6 +189,8 @@ void PrintViewManagerBase::OnDidPrintPage( |
| return; |
| } |
| } |
| +#elif 0 && defined(OS_WIN) && !PRINTING_USE_EMF_METAFILE |
| + ConvertPDFToEMF(metafile.Pass()); |
| #endif |
| // Update the rendered document. It will send notifications to the listener. |
| @@ -395,7 +407,8 @@ void PrintViewManagerBase::DisconnectFromCurrentPrintJob() { |
| // DO NOT wait for the job to finish. |
| ReleasePrintJob(); |
| } |
| -#if defined(OS_POSIX) && !defined(OS_MACOSX) |
| +#if (defined(OS_POSIX) && !defined(OS_MACOSX)) || \ |
| + (defined(OS_WIN) && !PRINTING_USE_EMF_METAFILE) |
| expecting_first_page_ = true; |
| #endif |
| } |
| @@ -538,4 +551,19 @@ void PrintViewManagerBase::ReleasePrinterQuery() { |
| base::Bind(&PrinterQuery::StopWorker, printer_query.get())); |
| } |
| +#if 0 && defined(OS_WIN) && !PRINTING_USE_EMF_METAFILE |
| +void PrintViewManagerBase::ConvertPDFToEMF( |
| + scoped_ptr<NativeMetafile> metafile) { |
| + scoped_ptr<ServiceUtilityProcessHost> utility_host( |
|
Vitaly Buka (NO REVIEWS)
2014/04/24 22:47:58
ServiceUtilityProcessHost is for use in Service pr
scottmg
2014/04/25 20:47:18
Thanks for the pointer, that seems to be mostly wo
|
| + new ServiceUtilityProcessHost(this, client_message_loop_proxy)); |
| + if (utility_host->StartRenderPDFPagesToMetafile( |
| + pdf_path, |
| + printing::PdfRenderSettings(render_area, render_dpi, false), |
| + page_ranges)) { |
|
Vitaly Buka (NO REVIEWS)
2014/04/24 22:47:58
Message ChromeUtilityMsg_RenderPDFPagesToMetafile
Vitaly Buka (NO REVIEWS)
2014/04/25 05:25:48
It's going to be harder then I thought, Win32 meta
scottmg
2014/04/25 20:47:18
I gave it a shot, basically using GetEnhMetaFileBi
|
| + // The object will self-destruct when the child process dies. |
| + utility_host.release(); |
| + } |
| +} |
| +#endif // OS_WIN && !PRINTING_USE_EMF_METAFILE |
| + |
| } // namespace printing |