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

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

Issue 10071024: Fixed issue with shrink output when using system print dialog. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 8 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_win.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) 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/command_line.h" 10 #include "base/command_line.h"
10 #include "base/logging.h" 11 #include "base/logging.h"
11 #include "base/metrics/histogram.h" 12 #include "base/metrics/histogram.h"
12 #include "base/string_number_conversions.h" 13 #include "base/string_number_conversions.h"
13 #include "base/utf_string_conversions.h" 14 #include "base/utf_string_conversions.h"
14 #include "chrome/common/chrome_switches.h" 15 #include "chrome/common/chrome_switches.h"
15 #include "chrome/common/print_messages.h" 16 #include "chrome/common/print_messages.h"
16 #include "chrome/common/render_messages.h" 17 #include "chrome/common/render_messages.h"
17 #include "chrome/common/url_constants.h" 18 #include "chrome/common/url_constants.h"
18 #include "chrome/renderer/prerender/prerender_helper.h" 19 #include "chrome/renderer/prerender/prerender_helper.h"
(...skipping 639 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view) 659 PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view)
659 : content::RenderViewObserver(render_view), 660 : content::RenderViewObserver(render_view),
660 content::RenderViewObserverTracker<PrintWebViewHelper>(render_view), 661 content::RenderViewObserverTracker<PrintWebViewHelper>(render_view),
661 print_web_view_(NULL), 662 print_web_view_(NULL),
662 is_preview_enabled_(IsPrintPreviewEnabled()), 663 is_preview_enabled_(IsPrintPreviewEnabled()),
663 is_print_ready_metafile_sent_(false), 664 is_print_ready_metafile_sent_(false),
664 ignore_css_margins_(false), 665 ignore_css_margins_(false),
665 fit_to_page_(true), 666 fit_to_page_(true),
666 user_cancelled_scripted_print_count_(0), 667 user_cancelled_scripted_print_count_(0),
667 is_scripted_printing_blocked_(false), 668 is_scripted_printing_blocked_(false),
668 notify_browser_of_print_failure_(true) { 669 notify_browser_of_print_failure_(true),
670 print_for_preview_(false) {
669 } 671 }
670 672
671 PrintWebViewHelper::~PrintWebViewHelper() {} 673 PrintWebViewHelper::~PrintWebViewHelper() {}
672 674
673 bool PrintWebViewHelper::IsScriptInitiatedPrintAllowed( 675 bool PrintWebViewHelper::IsScriptInitiatedPrintAllowed(
674 WebKit::WebFrame* frame) { 676 WebKit::WebFrame* frame) {
675 if (is_scripted_printing_blocked_) 677 if (is_scripted_printing_blocked_)
676 return false; 678 return false;
677 return !IsScriptInitiatedPrintTooFrequent(frame); 679 return !IsScriptInitiatedPrintTooFrequent(frame);
678 } 680 }
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 738
737 WebDocument document = main_frame->document(); 739 WebDocument document = main_frame->document();
738 // <object> with id="pdf-viewer" is created in 740 // <object> with id="pdf-viewer" is created in
739 // chrome/browser/resources/print_preview/print_preview.js 741 // chrome/browser/resources/print_preview/print_preview.js
740 WebElement pdf_element = document.getElementById("pdf-viewer"); 742 WebElement pdf_element = document.getElementById("pdf-viewer");
741 if (pdf_element.isNull()) { 743 if (pdf_element.isNull()) {
742 NOTREACHED(); 744 NOTREACHED();
743 return; 745 return;
744 } 746 }
745 747
748 // Set |print_for_preview_| flag and autoreset it to back to original
749 // on return.
750 AutoReset<bool> set_printing_flag(&print_for_preview_, true);
751
746 WebFrame* pdf_frame = pdf_element.document().frame(); 752 WebFrame* pdf_frame = pdf_element.document().frame();
747 if (!UpdatePrintSettings(pdf_frame, pdf_element, job_settings, true)) { 753 // TODO(gene): Consider using |print_for_preview_| inside UpdatePrintSettings
754 // instead of passing this as parameter.
755 if (!UpdatePrintSettings(pdf_frame, pdf_element,
756 job_settings, print_for_preview_)) {
748 LOG(ERROR) << "UpdatePrintSettings failed"; 757 LOG(ERROR) << "UpdatePrintSettings failed";
749 DidFinishPrinting(FAIL_PRINT); 758 DidFinishPrinting(FAIL_PRINT);
750 return; 759 return;
751 } 760 }
752 761
753 // Render Pages for printing. 762 // Render Pages for printing.
754 if (!RenderPagesForPrint(pdf_frame, pdf_element)) { 763 if (!RenderPagesForPrint(pdf_frame, pdf_element)) {
755 LOG(ERROR) << "RenderPagesForPrint failed"; 764 LOG(ERROR) << "RenderPagesForPrint failed";
756 DidFinishPrinting(FAIL_PRINT); 765 DidFinishPrinting(FAIL_PRINT);
757 } 766 }
(...skipping 1054 matching lines...) Expand 10 before | Expand all | Expand 10 after
1812 DCHECK(IsRendering()); 1821 DCHECK(IsRendering());
1813 return prep_frame_view_->GetPrintCanvasSize(); 1822 return prep_frame_view_->GetPrintCanvasSize();
1814 } 1823 }
1815 1824
1816 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { 1825 void PrintWebViewHelper::PrintPreviewContext::ClearContext() {
1817 prep_frame_view_.reset(); 1826 prep_frame_view_.reset();
1818 metafile_.reset(); 1827 metafile_.reset();
1819 pages_to_render_.clear(); 1828 pages_to_render_.clear();
1820 error_ = PREVIEW_ERROR_NONE; 1829 error_ = PREVIEW_ERROR_NONE;
1821 } 1830 }
OLDNEW
« no previous file with comments | « chrome/renderer/print_web_view_helper.h ('k') | chrome/renderer/print_web_view_helper_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698