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

Unified Diff: chrome/renderer/printing/print_web_view_helper_linux.cc

Issue 11953010: Cleanup of PrepareFrameAndViewForPrint code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 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
« no previous file with comments | « chrome/renderer/printing/print_web_view_helper.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/printing/print_web_view_helper_linux.cc
diff --git a/chrome/renderer/printing/print_web_view_helper_linux.cc b/chrome/renderer/printing/print_web_view_helper_linux.cc
index 961fed633a9cc6594f44072000c29a1907e353d1..f97075c44685ec513464b55edcb0c8c298502f3f 100644
--- a/chrome/renderer/printing/print_web_view_helper_linux.cc
+++ b/chrome/renderer/printing/print_web_view_helper_linux.cc
@@ -57,15 +57,38 @@ bool PrintWebViewHelper::RenderPreviewPage(
return PreviewPageRendered(page_number, draft_metafile.get());
}
-bool PrintWebViewHelper::PrintPages(WebFrame* frame, const WebNode& node) {
+bool PrintWebViewHelper::PrintPagesNative(WebKit::WebFrame* frame,
+ const WebKit::WebNode& node,
+ int page_count,
+ const gfx::Size& canvas_size) {
NativeMetafile metafile;
if (!metafile.Init())
return false;
const PrintMsg_PrintPages_Params& params = *print_pages_params_;
std::vector<int> printed_pages;
- if (!RenderPages(params, frame, node, &printed_pages, &metafile)) {
+
+ if (params.pages.empty()) {
+ for (int i = 0; i < page_count; ++i) {
+ printed_pages.push_back(i);
+ }
+ } else {
+ // TODO(vitalybuka): redesign to make more code cross platform.
+ for (size_t i = 0; i < params.pages.size(); ++i) {
+ if (params.pages[i] >= 0 && params.pages[i] < page_count) {
+ printed_pages.push_back(params.pages[i]);
+ }
+ }
+ }
+
+ if (printed_pages.empty())
return false;
+
+ PrintMsg_PrintPage_Params page_params;
+ page_params.params = params.params;
+ for (size_t i = 0; i < printed_pages.size(); ++i) {
+ page_params.page_number = printed_pages[i];
+ PrintPageInternal(page_params, canvas_size, frame, &metafile);
}
metafile.FinishDocument();
@@ -121,55 +144,6 @@ bool PrintWebViewHelper::PrintPages(WebFrame* frame, const WebNode& node) {
#endif // defined(OS_CHROMEOS)
}
-bool PrintWebViewHelper::RenderPages(const PrintMsg_PrintPages_Params& params,
- WebKit::WebFrame* frame,
- const WebKit::WebNode& node,
- std::vector<int>* printed_pages,
- Metafile* metafile) {
- PrepareFrameAndViewForPrint prepare(params.params, frame, node);
- PrintMsg_Print_Params print_params = params.params;
- UpdateFrameAndViewFromCssPageLayout(frame, node, &prepare, print_params,
- ignore_css_margins_);
-
- int page_count = prepare.GetExpectedPageCount();
- if (!page_count)
- return false;
-
-#if !defined(OS_CHROMEOS)
- // TODO(vitalybuka): should be page_count or valid pages from params.pages.
- // See http://crbug.com/161576
- Send(new PrintHostMsg_DidGetPrintedPagesCount(routing_id(),
- print_params.document_cookie,
- page_count));
-#endif
-
- if (params.pages.empty()) {
- for (int i = 0; i < page_count; ++i) {
- printed_pages->push_back(i);
- }
- } else {
- // TODO(vitalybuka): redesign to make more code cross platform.
- for (size_t i = 0; i < params.pages.size(); ++i) {
- if (params.pages[i] >= 0 && params.pages[i] < page_count) {
- printed_pages->push_back(params.pages[i]);
- }
- }
- }
-
- if (printed_pages->empty())
- return false;
-
- PrintMsg_PrintPage_Params page_params;
- page_params.params = print_params;
- const gfx::Size& canvas_size = prepare.GetPrintCanvasSize();
- for (size_t i = 0; i < printed_pages->size(); ++i) {
- page_params.page_number = (*printed_pages)[i];
- PrintPageInternal(page_params, canvas_size, frame, metafile);
- }
-
- return true;
-}
-
void PrintWebViewHelper::PrintPageInternal(
const PrintMsg_PrintPage_Params& params,
const gfx::Size& canvas_size,
« no previous file with comments | « chrome/renderer/printing/print_web_view_helper.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698