Index: chrome/renderer/print_web_view_helper_win.cc |
diff --git a/chrome/renderer/print_web_view_helper_win.cc b/chrome/renderer/print_web_view_helper_win.cc |
index 075ed6bca5fe7554adeb4fefaec58580579d22ed..df44fb09c813acb3953886e9d6e2f197658351b4 100644 |
--- a/chrome/renderer/print_web_view_helper_win.cc |
+++ b/chrome/renderer/print_web_view_helper_win.cc |
@@ -162,29 +162,36 @@ void PrintWebViewHelper::RenderPage( |
} |
float webkit_page_shrink_factor = frame->getPrintPageShrink(page_number); |
+ float scale_factor = css_scale_factor * webkit_page_shrink_factor; |
+ |
+ gfx::Rect canvas_area = |
+ params.display_header_footer ? gfx::Rect(page_size) : content_area; |
+ |
SkDevice* device = metafile->StartPageForVectorCanvas( |
- page_size, content_area, css_scale_factor * webkit_page_shrink_factor); |
+ page_size, canvas_area, scale_factor); |
DCHECK(device); |
// The printPage method may take a reference to the canvas we pass down, so it |
// 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) { |
printing::MetafileSkiaWrapper::SetMetafileOnCanvas(*canvas, metafile); |
skia::SetIsDraftMode(*canvas, is_print_ready_metafile_sent_); |
skia::SetIsPreviewMetafile(*canvas, is_preview); |
} |
- float webkit_scale_factor = frame->printPage(page_number, canvas.get()); |
- |
if (params.display_header_footer) { |
// |page_number| is 0-based, so 1 is added. |
PrintHeaderAndFooter(canvas.get(), page_number + 1, |
- print_preview_context_.total_page_count(), |
- css_scale_factor * webkit_page_shrink_factor, |
- page_layout_in_points, *header_footer_info_, params); |
+ print_preview_context_.total_page_count(), scale_factor, |
+ page_layout_in_points, *header_footer_info_, params); |
} |
+ float webkit_scale_factor = RenderPageContent(frame, page_number, canvas_area, |
+ content_area, scale_factor, |
+ canvas.get()); |
+ |
if (*actual_shrink <= 0 || webkit_scale_factor <= 0) { |
NOTREACHED() << "Printing page " << page_number << " failed."; |
} else { |