Chromium Code Reviews| Index: chrome/renderer/print_web_view_helper_mac.mm |
| diff --git a/chrome/renderer/print_web_view_helper_mac.mm b/chrome/renderer/print_web_view_helper_mac.mm |
| index 1101dba0ed677bd4203a7bd341b267fc4876e5e0..214a6391e56e01995a17fabef2f48ec24feb7b04 100644 |
| --- a/chrome/renderer/print_web_view_helper_mac.mm |
| +++ b/chrome/renderer/print_web_view_helper_mac.mm |
| @@ -152,10 +152,14 @@ void PrintWebViewHelper::RenderPage( |
| *content_rect = content_area; |
| scale_factor *= webkit_shrink_factor; |
| + |
| + gfx::Rect canvas_area = |
| + params.display_header_footer ? gfx::Rect(*page_size) : content_area; |
| + |
| { |
| #if defined(USE_SKIA) |
| SkDevice* device = metafile->StartPageForVectorCanvas( |
| - *page_size, content_area, scale_factor); |
| + *page_size, canvas_area, scale_factor); |
| if (!device) |
| return; |
| @@ -166,7 +170,7 @@ void PrintWebViewHelper::RenderPage( |
| skia::SetIsDraftMode(*canvas, is_print_ready_metafile_sent_); |
| skia::SetIsPreviewMetafile(*canvas, is_preview); |
| #else |
|
Alexei Svitkine (slow)
2012/11/02 18:19:14
You can delete the #else block here and remove the
|
| - bool success = metafile->StartPage(*page_size, content_area, scale_factor); |
| + bool success = metafile->StartPage(*page_size, canvas_area, scale_factor); |
| DCHECK(success); |
| // printPage can create autoreleased references to |context|. PDF contexts |
| // don't write all their data until they are destroyed, so we need to make |
| @@ -175,30 +179,17 @@ void PrintWebViewHelper::RenderPage( |
| CGContextRef cgContext = metafile->context(); |
| CGContextRef canvas_ptr = cgContext; |
| - // For CoreGraphics, print in the margins before printing in the content |
| - // area so that we don't spill over. Webkit draws a white background in the |
| - // content area and this acts as a clip. |
| - // TODO(aayushkumar): Combine the calls to PrintHeaderAndFooter once we |
| - // can draw in the margins safely in Skia in any order. |
| +#endif // !USE_SKIA |
| if (print_pages_params_->params.display_header_footer) { |
| PrintHeaderAndFooter(canvas_ptr, page_number + 1, |
| print_preview_context_.total_page_count(), |
| scale_factor, page_layout_in_points, |
| *header_footer_info_, params); |
| } |
| -#endif // !USE_SKIA |
| + canvas_ptr->translate((content_area.x() - canvas_area.x()) / scale_factor, |
| + (content_area.y() - canvas_area.y()) / scale_factor); |
| frame->printPage(page_number, canvas_ptr); |
| - |
| -#if defined(USE_SKIA) |
| - if (print_pages_params_->params.display_header_footer) { |
| - // |page_number| is 0-based, so 1 is added. |
| - PrintHeaderAndFooter(canvas_ptr, page_number + 1, |
| - print_preview_context_.total_page_count(), |
| - scale_factor, page_layout_in_points, |
| - *header_footer_info_, params); |
| - } |
| -#endif // defined(USE_SKIA) |
| } |
| // Done printing. Close the device context to retrieve the compiled metafile. |