diff options
Diffstat (limited to 'chrome/renderer/print_web_view_helper_win.cc')
-rw-r--r-- | chrome/renderer/print_web_view_helper_win.cc | 31 |
1 files changed, 9 insertions, 22 deletions
diff --git a/chrome/renderer/print_web_view_helper_win.cc b/chrome/renderer/print_web_view_helper_win.cc index 25d226d..b43c22f 100644 --- a/chrome/renderer/print_web_view_helper_win.cc +++ b/chrome/renderer/print_web_view_helper_win.cc @@ -126,34 +126,24 @@ void PrintWebViewHelper::RenderPreviewPage(int page_number) { // Calculate the dpi adjustment. float scale_factor = static_cast<float>(print_params.desired_dpi / print_params.dpi); - scoped_ptr<Metafile> draft_metafile; - printing::Metafile* initial_render_metafile = - print_preview_context_.metafile(); - - if (print_preview_context_.IsModifiable() && is_print_ready_metafile_sent_) { - draft_metafile.reset(new printing::PreviewMetafile); - initial_render_metafile = draft_metafile.get(); - } base::TimeTicks begin_time = base::TimeTicks::Now(); printing::Metafile* render_page_result = RenderPage(print_params, &scale_factor, page_number, true, - print_preview_context_.frame(), initial_render_metafile); - + print_preview_context_.frame(), + print_preview_context_.metafile()); // In the preview flow, RenderPage will never return a new metafile. - DCHECK_EQ(render_page_result, initial_render_metafile); + DCHECK_EQ(render_page_result, print_preview_context_.metafile()); + print_preview_context_.RenderedPreviewPage( base::TimeTicks::Now() - begin_time); - if (draft_metafile.get()) { - draft_metafile->FinishDocument(); - } else if (print_preview_context_.IsModifiable() && - print_preview_context_.generate_draft_pages()){ - DCHECK(!draft_metafile.get()); - draft_metafile.reset( + scoped_ptr<printing::Metafile> page_metafile; + if (print_preview_context_.IsModifiable()) { + page_metafile.reset( print_preview_context_.metafile()->GetMetafileForCurrentPage()); } - PreviewPageRendered(page_number, draft_metafile.get()); + PreviewPageRendered(page_number, page_metafile.get()); } Metafile* PrintWebViewHelper::RenderPage( @@ -193,11 +183,8 @@ Metafile* PrintWebViewHelper::RenderPage( // can't be a stack object. SkRefPtr<skia::VectorCanvas> canvas = new skia::VectorCanvas(device); canvas->unref(); // SkRefPtr and new both took a reference. - if (is_preview) { + if (is_preview) printing::MetafileSkiaWrapper::SetMetafileOnCanvas(canvas.get(), metafile); - printing::MetafileSkiaWrapper::SetDraftMode(canvas.get(), - is_print_ready_metafile_sent_); - } float webkit_scale_factor = frame->printPage(page_number, canvas.get()); if (*scale_factor <= 0 || webkit_scale_factor <= 0) { |