| 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..c0188c6caf82bf17808e8fdc5a28b3d06d392963 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);
|
| + // The page_number count starts from 0, so we add 1.
|
| + 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.
|
|
|