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

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
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/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after
658 PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view) 658 PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view)
659 : content::RenderViewObserver(render_view), 659 : content::RenderViewObserver(render_view),
660 content::RenderViewObserverTracker<PrintWebViewHelper>(render_view), 660 content::RenderViewObserverTracker<PrintWebViewHelper>(render_view),
661 print_web_view_(NULL), 661 print_web_view_(NULL),
662 is_preview_enabled_(IsPrintPreviewEnabled()), 662 is_preview_enabled_(IsPrintPreviewEnabled()),
663 is_print_ready_metafile_sent_(false), 663 is_print_ready_metafile_sent_(false),
664 ignore_css_margins_(false), 664 ignore_css_margins_(false),
665 fit_to_page_(true), 665 fit_to_page_(true),
666 user_cancelled_scripted_print_count_(0), 666 user_cancelled_scripted_print_count_(0),
667 is_scripted_printing_blocked_(false), 667 is_scripted_printing_blocked_(false),
668 notify_browser_of_print_failure_(true) { 668 notify_browser_of_print_failure_(true),
669 printing_from_preview_(false) {
669 } 670 }
670 671
671 PrintWebViewHelper::~PrintWebViewHelper() {} 672 PrintWebViewHelper::~PrintWebViewHelper() {}
672 673
673 bool PrintWebViewHelper::IsScriptInitiatedPrintAllowed( 674 bool PrintWebViewHelper::IsScriptInitiatedPrintAllowed(
674 WebKit::WebFrame* frame) { 675 WebKit::WebFrame* frame) {
675 if (is_scripted_printing_blocked_) 676 if (is_scripted_printing_blocked_)
676 return false; 677 return false;
677 return !IsScriptInitiatedPrintTooFrequent(frame); 678 return !IsScriptInitiatedPrintTooFrequent(frame);
678 } 679 }
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 } 745 }
745 746
746 WebFrame* pdf_frame = pdf_element.document().frame(); 747 WebFrame* pdf_frame = pdf_element.document().frame();
747 if (!UpdatePrintSettings(pdf_frame, pdf_element, job_settings, true)) { 748 if (!UpdatePrintSettings(pdf_frame, pdf_element, job_settings, true)) {
748 LOG(ERROR) << "UpdatePrintSettings failed"; 749 LOG(ERROR) << "UpdatePrintSettings failed";
749 DidFinishPrinting(FAIL_PRINT); 750 DidFinishPrinting(FAIL_PRINT);
750 return; 751 return;
751 } 752 }
752 753
753 // Render Pages for printing. 754 // Render Pages for printing.
755 printing_from_preview_ = true;
754 if (!RenderPagesForPrint(pdf_frame, pdf_element)) { 756 if (!RenderPagesForPrint(pdf_frame, pdf_element)) {
755 LOG(ERROR) << "RenderPagesForPrint failed"; 757 LOG(ERROR) << "RenderPagesForPrint failed";
756 DidFinishPrinting(FAIL_PRINT); 758 DidFinishPrinting(FAIL_PRINT);
757 } 759 }
760 printing_from_preview_ = false;
758 } 761 }
759 762
760 bool PrintWebViewHelper::GetPrintFrame(WebKit::WebFrame** frame) { 763 bool PrintWebViewHelper::GetPrintFrame(WebKit::WebFrame** frame) {
761 DCHECK(frame); 764 DCHECK(frame);
762 DCHECK(render_view()->GetWebView()); 765 DCHECK(render_view()->GetWebView());
763 if (!render_view()->GetWebView()) 766 if (!render_view()->GetWebView())
764 return false; 767 return false;
765 768
766 // If the user has selected text in the currently focused frame we print 769 // If the user has selected text in the currently focused frame we print
767 // only that frame (this makes print selection work for multiple frames). 770 // only that frame (this makes print selection work for multiple frames).
(...skipping 1044 matching lines...) Expand 10 before | Expand all | Expand 10 after
1812 DCHECK(IsRendering()); 1815 DCHECK(IsRendering());
1813 return prep_frame_view_->GetPrintCanvasSize(); 1816 return prep_frame_view_->GetPrintCanvasSize();
1814 } 1817 }
1815 1818
1816 void PrintWebViewHelper::PrintPreviewContext::ClearContext() { 1819 void PrintWebViewHelper::PrintPreviewContext::ClearContext() {
1817 prep_frame_view_.reset(); 1820 prep_frame_view_.reset();
1818 metafile_.reset(); 1821 metafile_.reset();
1819 pages_to_render_.clear(); 1822 pages_to_render_.clear();
1820 error_ = PREVIEW_ERROR_NONE; 1823 error_ = PREVIEW_ERROR_NONE;
1821 } 1824 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698