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

Side by Side Diff: components/printing/renderer/print_web_view_helper.cc

Issue 822133003: Refactor webview to use //components/printing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing comments Created 5 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 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 "components/printing/renderer/print_web_view_helper.h" 5 #include "components/printing/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/json/json_writer.h" 10 #include "base/json/json_writer.h"
(...skipping 749 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 if (owns_web_view_) { 760 if (owns_web_view_) {
761 DCHECK(!frame->isLoading()); 761 DCHECK(!frame->isLoading());
762 owns_web_view_ = false; 762 owns_web_view_ = false;
763 web_view->close(); 763 web_view->close();
764 } 764 }
765 } 765 }
766 frame_.Reset(NULL); 766 frame_.Reset(NULL);
767 on_ready_.Reset(); 767 on_ready_.Reset();
768 } 768 }
769 769
770 bool PrintWebViewHelper::Delegate::IsAskPrintSettingsEnabled() {
771 return true;
772 }
773
774 bool PrintWebViewHelper::Delegate::IsScriptedPrintEnabled() {
775 return true;
776 }
777
770 PrintWebViewHelper::PrintWebViewHelper( 778 PrintWebViewHelper::PrintWebViewHelper(
771 content::RenderView* render_view, 779 content::RenderView* render_view,
772 scoped_ptr<Delegate> delegate) 780 scoped_ptr<Delegate> delegate)
773 : content::RenderViewObserver(render_view), 781 : content::RenderViewObserver(render_view),
774 content::RenderViewObserverTracker<PrintWebViewHelper>(render_view), 782 content::RenderViewObserverTracker<PrintWebViewHelper>(render_view),
775 reset_prep_frame_view_(false), 783 reset_prep_frame_view_(false),
776 is_print_ready_metafile_sent_(false), 784 is_print_ready_metafile_sent_(false),
777 ignore_css_margins_(false), 785 ignore_css_margins_(false),
778 is_scripted_printing_blocked_(false), 786 is_scripted_printing_blocked_(false),
779 notify_browser_of_print_failure_(true), 787 notify_browser_of_print_failure_(true),
780 print_for_preview_(false), 788 print_for_preview_(false),
781 delegate_(delegate.Pass()), 789 delegate_(delegate.Pass()),
782 print_node_in_progress_(false), 790 print_node_in_progress_(false),
783 is_loading_(false), 791 is_loading_(false),
784 is_scripted_preview_delayed_(false), 792 is_scripted_preview_delayed_(false),
785 weak_ptr_factory_(this) { 793 weak_ptr_factory_(this) {
786 if (!delegate_->IsPrintPreviewEnabled()) 794 if (!delegate_->IsPrintPreviewEnabled())
787 DisablePreview(); 795 DisablePreview();
788 } 796 }
789 797
790 PrintWebViewHelper::~PrintWebViewHelper() {} 798 PrintWebViewHelper::~PrintWebViewHelper() {}
791 799
792 // static 800 // static
793 void PrintWebViewHelper::DisablePreview() { 801 void PrintWebViewHelper::DisablePreview() {
794 g_is_preview_enabled_ = false; 802 g_is_preview_enabled_ = false;
795 } 803 }
796 804
797 bool PrintWebViewHelper::IsScriptInitiatedPrintAllowed( 805 bool PrintWebViewHelper::IsScriptInitiatedPrintAllowed(
798 blink::WebFrame* frame, bool user_initiated) { 806 blink::WebFrame* frame, bool user_initiated) {
807 if (!delegate_->IsScriptedPrintEnabled())
dgn 2015/01/23 15:21:09 This is where window.print() was previously disabl
808 return false;
809
799 // If preview is enabled, then the print dialog is tab modal, and the user 810 // If preview is enabled, then the print dialog is tab modal, and the user
800 // can always close the tab on a mis-behaving page (the system print dialog 811 // can always close the tab on a mis-behaving page (the system print dialog
801 // is app modal). If the print was initiated through user action, don't 812 // is app modal). If the print was initiated through user action, don't
802 // throttle. Or, if the command line flag to skip throttling has been set. 813 // throttle. Or, if the command line flag to skip throttling has been set.
803 return !is_scripted_printing_blocked_ && 814 return !is_scripted_printing_blocked_ &&
804 (user_initiated || g_is_preview_enabled_ || 815 (user_initiated || g_is_preview_enabled_ ||
805 scripting_throttler_.IsAllowed(frame)); 816 scripting_throttler_.IsAllowed(frame));
806 } 817 }
807 818
808 void PrintWebViewHelper::DidStartLoading() { 819 void PrintWebViewHelper::DidStartLoading() {
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after
1260 return; // Failed to init print page settings. 1271 return; // Failed to init print page settings.
1261 } 1272 }
1262 1273
1263 // Some full screen plugins can say they don't want to print. 1274 // Some full screen plugins can say they don't want to print.
1264 if (!expected_page_count) { 1275 if (!expected_page_count) {
1265 DidFinishPrinting(FAIL_PRINT); 1276 DidFinishPrinting(FAIL_PRINT);
1266 return; 1277 return;
1267 } 1278 }
1268 1279
1269 // Ask the browser to show UI to retrieve the final print settings. 1280 // Ask the browser to show UI to retrieve the final print settings.
1270 if (!GetPrintSettingsFromUser(frame_ref.GetFrame(), node, 1281 if (delegate_->IsAskPrintSettingsEnabled() &&
1282 !GetPrintSettingsFromUser(frame_ref.GetFrame(), node,
1271 expected_page_count, 1283 expected_page_count,
1272 is_scripted)) { 1284 is_scripted)) {
1273 DidFinishPrinting(OK); // Release resources and fail silently. 1285 DidFinishPrinting(OK); // Release resources and fail silently.
1274 return; 1286 return;
1275 } 1287 }
1276 1288
1277 // Render Pages for printing. 1289 // Render Pages for printing.
1278 if (!RenderPagesForPrint(frame_ref.GetFrame(), node)) { 1290 if (!RenderPagesForPrint(frame_ref.GetFrame(), node)) {
1279 LOG(ERROR) << "RenderPagesForPrint failed"; 1291 LOG(ERROR) << "RenderPagesForPrint failed";
1280 DidFinishPrinting(FAIL_PRINT); 1292 DidFinishPrinting(FAIL_PRINT);
(...skipping 749 matching lines...) Expand 10 before | Expand all | Expand 10 after
2030 blink::WebConsoleMessage::LevelWarning, message)); 2042 blink::WebConsoleMessage::LevelWarning, message));
2031 return false; 2043 return false;
2032 } 2044 }
2033 2045
2034 void PrintWebViewHelper::ScriptingThrottler::Reset() { 2046 void PrintWebViewHelper::ScriptingThrottler::Reset() {
2035 // Reset counter on successful print. 2047 // Reset counter on successful print.
2036 count_ = 0; 2048 count_ = 0;
2037 } 2049 }
2038 2050
2039 } // namespace printing 2051 } // namespace printing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698