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

Side by Side Diff: chrome/renderer/print_web_view_helper.cc

Issue 10836330: Rasterize page before printing. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/print_web_view_helper.h" 5 #include "chrome/renderer/print_web_view_helper.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 return printing::kPointsPerInch; 97 return printing::kPointsPerInch;
98 #else 98 #else
99 return static_cast<int>(print_params->dpi); 99 return static_cast<int>(print_params->dpi);
100 #endif // defined(OS_MACOSX) 100 #endif // defined(OS_MACOSX)
101 } 101 }
102 102
103 bool PrintMsg_Print_Params_IsValid(const PrintMsg_Print_Params& params) { 103 bool PrintMsg_Print_Params_IsValid(const PrintMsg_Print_Params& params) {
104 return !params.content_size.IsEmpty() && !params.page_size.IsEmpty() && 104 return !params.content_size.IsEmpty() && !params.page_size.IsEmpty() &&
105 !params.printable_area.IsEmpty() && params.document_cookie && 105 !params.printable_area.IsEmpty() && params.document_cookie &&
106 params.desired_dpi && params.max_shrink && params.min_shrink && 106 params.desired_dpi && params.max_shrink && params.min_shrink &&
107 params.dpi && (params.margin_top >= 0) && (params.margin_left >= 0); 107 params.dpi && (params.margin_top >= 0) && (params.margin_left >= 0) &&
108 params.raster_size > 0;
108 } 109 }
109 110
110 bool PageLayoutIsEqual(const PrintMsg_PrintPages_Params& oldParams, 111 bool PageLayoutIsEqual(const PrintMsg_PrintPages_Params& oldParams,
111 const PrintMsg_PrintPages_Params& newParams) { 112 const PrintMsg_PrintPages_Params& newParams) {
112 return oldParams.params.content_size == newParams.params.content_size && 113 return oldParams.params.content_size == newParams.params.content_size &&
113 oldParams.params.printable_area == newParams.params.printable_area && 114 oldParams.params.printable_area == newParams.params.printable_area &&
114 oldParams.params.page_size == newParams.params.page_size && 115 oldParams.params.page_size == newParams.params.page_size &&
115 oldParams.params.margin_top == newParams.params.margin_top && 116 oldParams.params.margin_top == newParams.params.margin_top &&
116 oldParams.params.margin_left == newParams.params.margin_left && 117 oldParams.params.margin_left == newParams.params.margin_left &&
117 oldParams.params.desired_dpi == newParams.params.desired_dpi && 118 oldParams.params.desired_dpi == newParams.params.desired_dpi &&
(...skipping 12 matching lines...) Expand all
130 oldParams.pages.size() == newParams.pages.size() && 131 oldParams.pages.size() == newParams.pages.size() &&
131 oldParams.params.print_to_pdf == newParams.params.print_to_pdf && 132 oldParams.params.print_to_pdf == newParams.params.print_to_pdf &&
132 oldParams.params.print_scaling_option == 133 oldParams.params.print_scaling_option ==
133 newParams.params.print_scaling_option && 134 newParams.params.print_scaling_option &&
134 oldParams.params.display_header_footer == 135 oldParams.params.display_header_footer ==
135 newParams.params.display_header_footer && 136 newParams.params.display_header_footer &&
136 oldParams.params.date == newParams.params.date && 137 oldParams.params.date == newParams.params.date &&
137 oldParams.params.title == newParams.params.title && 138 oldParams.params.title == newParams.params.title &&
138 oldParams.params.url == newParams.params.url && 139 oldParams.params.url == newParams.params.url &&
139 std::equal(oldParams.pages.begin(), oldParams.pages.end(), 140 std::equal(oldParams.pages.begin(), oldParams.pages.end(),
140 newParams.pages.begin()); 141 newParams.pages.begin()) &&
142 oldParams.params.raster_type == newParams.params.raster_type &&
143 oldParams.params.raster_size == newParams.params.raster_size;
141 } 144 }
142 145
143 PrintMsg_Print_Params GetCssPrintParams( 146 PrintMsg_Print_Params GetCssPrintParams(
144 WebFrame* frame, 147 WebFrame* frame,
145 int page_index, 148 int page_index,
146 const PrintMsg_Print_Params& page_params) { 149 const PrintMsg_Print_Params& page_params) {
147 PrintMsg_Print_Params page_css_params = page_params; 150 PrintMsg_Print_Params page_css_params = page_params;
148 int dpi = GetDPI(&page_params); 151 int dpi = GetDPI(&page_params);
149 WebSize page_size_in_pixels( 152 WebSize page_size_in_pixels(
150 ConvertUnit(page_params.page_size.width(), 153 ConvertUnit(page_params.page_size.width(),
(...skipping 1729 matching lines...) Expand 10 before | Expand all | Expand 10 after
1880 DCHECK(IsRendering()); 1883 DCHECK(IsRendering());
1881 return prep_frame_view_->GetPrintCanvasSize(); 1884 return prep_frame_view_->GetPrintCanvasSize();
1882 } 1885 }
1883 1886
1884 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { 1887 void PrintWebViewHelper::PrintPreviewContext::ClearContext() {
1885 prep_frame_view_.reset(); 1888 prep_frame_view_.reset();
1886 metafile_.reset(); 1889 metafile_.reset();
1887 pages_to_render_.clear(); 1890 pages_to_render_.clear();
1888 error_ = PREVIEW_ERROR_NONE; 1891 error_ = PREVIEW_ERROR_NONE;
1889 } 1892 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698