Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(970)

Unified Diff: chrome/renderer/print_web_view_helper_win.cc

Issue 7348010: Added Header and Footer support using Skia (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: style changes as per demetrios comments Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 4627e0dab9211d7fecfd624e470c5bea900b7df1..dedb08f3889ae4a066e110b12fc7f4baa359bb99 100644
--- a/chrome/renderer/print_web_view_helper_win.cc
+++ b/chrome/renderer/print_web_view_helper_win.cc
@@ -145,15 +145,8 @@ void PrintWebViewHelper::RenderPreviewPage(int page_number) {
void PrintWebViewHelper::RenderPage(
const PrintMsg_Print_Params& params, float* scale_factor, int page_number,
bool is_preview, WebFrame* frame, scoped_ptr<Metafile>* metafile) {
- double content_width_in_points;
- double content_height_in_points;
- double margin_top_in_points;
- double margin_left_in_points;
- GetPageSizeAndMarginsInPoints(frame, page_number, params,
- &content_width_in_points,
- &content_height_in_points,
- &margin_top_in_points, NULL, NULL,
- &margin_left_in_points);
+ PageSizeMargins page_size_margins_in_points =
+ GetPageSizeAndMarginsInPoints(frame, page_number, params);
int width;
int height;
@@ -166,15 +159,18 @@ void PrintWebViewHelper::RenderPage(
// Since WebKit extends the page width depending on the magical scale factor
// we make sure the canvas covers the worst case scenario (x2.0 currently).
// PrintContext will then set the correct clipping region.
- width = static_cast<int>(content_width_in_points * params.max_shrink);
- height = static_cast<int>(content_height_in_points * params.max_shrink);
+ width = static_cast<int>(page_size_margins_in_points.content_width *
+ params.max_shrink);
+ height = static_cast<int>(page_size_margins_in_points.content_height *
+ params.max_shrink);
}
gfx::Size page_size(width, height);
- gfx::Rect content_area(static_cast<int>(margin_left_in_points),
- static_cast<int>(margin_top_in_points),
- static_cast<int>(content_width_in_points),
- static_cast<int>(content_height_in_points));
+ gfx::Rect content_area(
+ static_cast<int>(page_size_margins_in_points.margin_left),
+ static_cast<int>(page_size_margins_in_points.margin_top),
+ static_cast<int>(page_size_margins_in_points.content_width),
+ static_cast<int>(page_size_margins_in_points.content_height));
SkDevice* device = (*metafile)->StartPageForVectorCanvas(
page_size, content_area, frame->getPrintPageShrink(page_number));
DCHECK(device);
@@ -188,6 +184,16 @@ void PrintWebViewHelper::RenderPage(
}
float webkit_scale_factor = frame->printPage(page_number, canvas.get());
+
+ if (is_preview && params.display_header_footer) {
+ // 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_size_margins_in_points,
+ header_footer_info_);
+ }
+
if (*scale_factor <= 0 || webkit_scale_factor <= 0) {
NOTREACHED() << "Printing page " << page_number << " failed.";
} else {

Powered by Google App Engine
This is Rietveld 408576698