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

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

Issue 7065011: Change printing of PDFs for preview on Windows to not rasterize. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 9 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « chrome/renderer/print_web_view_helper.h ('k') | chrome/renderer/print_web_view_helper_linux.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 !params.supports_alpha_blend; 68 !params.supports_alpha_blend;
69 } 69 }
70 70
71 } // namespace 71 } // namespace
72 72
73 PrepareFrameAndViewForPrint::PrepareFrameAndViewForPrint( 73 PrepareFrameAndViewForPrint::PrepareFrameAndViewForPrint(
74 const PrintMsg_Print_Params& print_params, 74 const PrintMsg_Print_Params& print_params,
75 WebFrame* frame, 75 WebFrame* frame,
76 WebNode* node, 76 WebNode* node,
77 WebView* web_view) 77 WebView* web_view)
78 : frame_(frame), web_view_(web_view), expected_pages_count_(0), 78 : frame_(frame),
79 use_browser_overlays_(true) { 79 web_view_(web_view),
80 expected_pages_count_(0),
81 use_browser_overlays_(true),
82 finished_(false) {
80 int dpi = GetDPI(&print_params); 83 int dpi = GetDPI(&print_params);
81 print_canvas_size_.set_width( 84 print_canvas_size_.set_width(
82 ConvertUnit(print_params.printable_size.width(), dpi, 85 ConvertUnit(print_params.printable_size.width(), dpi,
83 print_params.desired_dpi)); 86 print_params.desired_dpi));
84 87
85 print_canvas_size_.set_height( 88 print_canvas_size_.set_height(
86 ConvertUnit(print_params.printable_size.height(), dpi, 89 ConvertUnit(print_params.printable_size.height(), dpi,
87 print_params.desired_dpi)); 90 print_params.desired_dpi));
88 91
89 // Layout page according to printer page size. Since WebKit shrinks the 92 // Layout page according to printer page size. Since WebKit shrinks the
(...skipping 13 matching lines...) Expand all
103 106
104 WebNode node_to_print; 107 WebNode node_to_print;
105 if (node) 108 if (node)
106 node_to_print = *node; 109 node_to_print = *node;
107 expected_pages_count_ = frame->printBegin( 110 expected_pages_count_ = frame->printBegin(
108 print_canvas_size_, node_to_print, static_cast<int>(print_params.dpi), 111 print_canvas_size_, node_to_print, static_cast<int>(print_params.dpi),
109 &use_browser_overlays_); 112 &use_browser_overlays_);
110 } 113 }
111 114
112 PrepareFrameAndViewForPrint::~PrepareFrameAndViewForPrint() { 115 PrepareFrameAndViewForPrint::~PrepareFrameAndViewForPrint() {
113 frame_->printEnd(); 116 FinishPrinting();
114 web_view_->resize(prev_view_size_);
115 if (WebFrame* web_frame = web_view_->mainFrame())
116 web_frame->setScrollOffset(prev_scroll_offset_);
117 } 117 }
118 118
119 void PrepareFrameAndViewForPrint::FinishPrinting() {
120 if (!finished_) {
121 finished_ = true;
122 frame_->printEnd();
123 web_view_->resize(prev_view_size_);
124 if (WebFrame* web_frame = web_view_->mainFrame())
125 web_frame->setScrollOffset(prev_scroll_offset_);
126 }
127 }
119 128
120 PrintWebViewHelper::PrintWebViewHelper(RenderView* render_view) 129 PrintWebViewHelper::PrintWebViewHelper(RenderView* render_view)
121 : RenderViewObserver(render_view), 130 : RenderViewObserver(render_view),
122 RenderViewObserverTracker<PrintWebViewHelper>(render_view), 131 RenderViewObserverTracker<PrintWebViewHelper>(render_view),
123 print_web_view_(NULL), 132 print_web_view_(NULL),
124 script_initiated_preview_frame_(NULL), 133 script_initiated_preview_frame_(NULL),
125 context_menu_preview_node_(NULL), 134 context_menu_preview_node_(NULL),
126 user_cancelled_scripted_print_count_(0), 135 user_cancelled_scripted_print_count_(0),
127 notify_browser_of_print_failure_(true) { 136 notify_browser_of_print_failure_(true) {
128 is_preview_ = switches::IsPrintPreviewEnabled(); 137 is_preview_ = switches::IsPrintPreviewEnabled();
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after
698 707
699 void PrintWebViewHelper::ResetScriptedPrintCount() { 708 void PrintWebViewHelper::ResetScriptedPrintCount() {
700 // Reset cancel counter on successful print. 709 // Reset cancel counter on successful print.
701 user_cancelled_scripted_print_count_ = 0; 710 user_cancelled_scripted_print_count_ = 0;
702 } 711 }
703 712
704 void PrintWebViewHelper::IncrementScriptedPrintCount() { 713 void PrintWebViewHelper::IncrementScriptedPrintCount() {
705 ++user_cancelled_scripted_print_count_; 714 ++user_cancelled_scripted_print_count_;
706 last_cancelled_script_print_ = base::Time::Now(); 715 last_cancelled_script_print_ = base::Time::Now();
707 } 716 }
OLDNEW
« no previous file with comments | « chrome/renderer/print_web_view_helper.h ('k') | chrome/renderer/print_web_view_helper_linux.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698