| 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 3836161f9e975c26962ed48cf5a5f80d0cc5352d..9940637eda6bd30034e3d48375700898430526e8 100644
 | 
| --- a/chrome/renderer/print_web_view_helper_mac.mm
 | 
| +++ b/chrome/renderer/print_web_view_helper_mac.mm
 | 
| @@ -17,6 +17,7 @@
 | 
|  #if defined(USE_SKIA)
 | 
|  #include "printing/metafile_skia_wrapper.h"
 | 
|  #include "skia/ext/vector_canvas.h"
 | 
| +#include "skia/ext/vector_platform_device_skia.h"
 | 
|  #include "third_party/WebKit/Source/WebKit/chromium/public/WebCanvas.h"
 | 
|  #endif
 | 
|  
 | 
| @@ -36,7 +37,7 @@ void PrintWebViewHelper::PrintPageInternal(
 | 
|    // Render page for printing.
 | 
|    gfx::Rect content_area(params.params.printable_size);
 | 
|    RenderPage(params.params.printable_size, content_area, scale_factor,
 | 
| -      page_number, frame, &metafile);
 | 
| +             page_number, frame, &metafile, false);
 | 
|    metafile.FinishDocument();
 | 
|  
 | 
|    PrintHostMsg_DidPrintPage_Params page_params;
 | 
| @@ -68,7 +69,8 @@ void PrintWebViewHelper::RenderPreviewPage(int page_number) {
 | 
|  
 | 
|    base::TimeTicks begin_time = base::TimeTicks::Now();
 | 
|    RenderPage(printParams.page_size, content_area, scale_factor, page_number,
 | 
| -             print_preview_context_.frame(), print_preview_context_.metafile());
 | 
| +             print_preview_context_.frame(), print_preview_context_.metafile(),
 | 
| +             true);
 | 
|    print_preview_context_.RenderedPreviewPage(
 | 
|        base::TimeTicks::Now() - begin_time);
 | 
|    PreviewPageRendered(page_number);
 | 
| @@ -77,7 +79,7 @@ void PrintWebViewHelper::RenderPreviewPage(int page_number) {
 | 
|  void PrintWebViewHelper::RenderPage(
 | 
|      const gfx::Size& page_size, const gfx::Rect& content_area,
 | 
|      const float& scale_factor, int page_number, WebFrame* frame,
 | 
| -    printing::Metafile* metafile) {
 | 
| +    printing::Metafile* metafile, bool is_preview) {
 | 
|  
 | 
|    {
 | 
|  #if defined(USE_SKIA)
 | 
| @@ -100,7 +102,21 @@ void PrintWebViewHelper::RenderPage(
 | 
|      CGContextRef cgContext = metafile->context();
 | 
|      CGContextRef canvasPtr = cgContext;
 | 
|  #endif
 | 
| -    frame->printPage(page_number, canvasPtr);
 | 
| +    float webkit_scale_factor = frame->printPage(page_number, canvasPtr);
 | 
| +#if defined(USE_SKIA)
 | 
| +    PrintMsg_Print_Params printParams = print_preview_context_.print_params();
 | 
| +    if (is_preview && printParams.display_header_footer) {
 | 
| +      PageSizeMargins page_layout_in_points;
 | 
| +      GetPageSizeAndMarginsInPoints(frame, page_number, printParams,
 | 
| +                                    &page_layout_in_points);
 | 
| +      // |page_number| is 0-based, so 1 is added.
 | 
| +      PrintHeaderAndFooter(static_cast<skia::VectorPlatformDeviceSkia*>(device),
 | 
| +                           *canvas, page_number + 1,
 | 
| +                           print_preview_context_.total_page_count(),
 | 
| +                           webkit_scale_factor, page_layout_in_points,
 | 
| +                           header_footer_info_);
 | 
| +    }
 | 
| +#endif
 | 
|    }
 | 
|  
 | 
|    // Done printing. Close the device context to retrieve the compiled metafile.
 | 
| 
 |