Index: chrome/renderer/print_web_view_helper_linux.cc |
=================================================================== |
--- chrome/renderer/print_web_view_helper_linux.cc (revision 168378) |
+++ chrome/renderer/print_web_view_helper_linux.cc (working copy) |
@@ -192,8 +192,11 @@ |
gfx::Rect content_area; |
GetPageSizeAndContentAreaFromPageLayout(page_layout_in_points, &page_size, |
&content_area); |
- SkDevice* device = metafile->StartPageForVectorCanvas( |
- page_size, content_area, scale_factor); |
+ gfx::Rect canvas_area = |
+ params.params.display_header_footer ? gfx::Rect(page_size) : content_area; |
+ |
+ SkDevice* device = metafile->StartPageForVectorCanvas(page_size, canvas_area, |
+ scale_factor); |
if (!device) |
return; |
@@ -203,16 +206,18 @@ |
canvas->unref(); // SkRefPtr and new both took a reference. |
printing::MetafileSkiaWrapper::SetMetafileOnCanvas(*canvas, metafile); |
skia::SetIsDraftMode(*canvas, is_print_ready_metafile_sent_); |
- frame->printPage(params.page_number, canvas.get()); |
if (params.params.display_header_footer) { |
// |page_number| is 0-based, so 1 is added. |
- // The scale factor on Linux is 1. |
+ // TODO(vitalybuka) : why does it work only with 1.25? |
PrintHeaderAndFooter(canvas.get(), params.page_number + 1, |
print_preview_context_.total_page_count(), |
- scale_factor, page_layout_in_points, |
- *header_footer_info_, params.params); |
+ scale_factor / 1.25, |
+ page_layout_in_points, *header_footer_info_, |
+ params.params); |
} |
+ RenderPageContent(frame, params.page_number, canvas_area, content_area, |
+ scale_factor, canvas.get()); |
// Done printing. Close the device context to retrieve the compiled metafile. |
if (!metafile->FinishPage()) |