| Index: components/printing/renderer/print_web_view_helper.cc
|
| diff --git a/components/printing/renderer/print_web_view_helper.cc b/components/printing/renderer/print_web_view_helper.cc
|
| index 72d801bc719f39520125308404562121e1f7dde7..4c1c0582bbbaeda47091e192ffa4ce0352183094 100644
|
| --- a/components/printing/renderer/print_web_view_helper.cc
|
| +++ b/components/printing/renderer/print_web_view_helper.cc
|
| @@ -756,6 +756,14 @@ void PrepareFrameAndViewForPrint::FinishPrinting() {
|
| on_ready_.Reset();
|
| }
|
|
|
| +bool PrintWebViewHelper::Delegate::IsAskPrintSettingsEnabled() {
|
| + return true;
|
| +}
|
| +
|
| +bool PrintWebViewHelper::Delegate::IsScriptedPrintEnabled() {
|
| + return true;
|
| +}
|
| +
|
| PrintWebViewHelper::PrintWebViewHelper(
|
| content::RenderView* render_view,
|
| scoped_ptr<Delegate> delegate)
|
| @@ -785,6 +793,9 @@ void PrintWebViewHelper::DisablePreview() {
|
|
|
| bool PrintWebViewHelper::IsScriptInitiatedPrintAllowed(
|
| blink::WebFrame* frame, bool user_initiated) {
|
| + if (!delegate_->IsScriptedPrintEnabled())
|
| + return false;
|
| +
|
| // If preview is enabled, then the print dialog is tab modal, and the user
|
| // can always close the tab on a mis-behaving page (the system print dialog
|
| // is app modal). If the print was initiated through user action, don't
|
| @@ -1259,7 +1270,8 @@ void PrintWebViewHelper::Print(blink::WebLocalFrame* frame,
|
| }
|
|
|
| // Ask the browser to show UI to retrieve the final print settings.
|
| - if (!GetPrintSettingsFromUser(frame_ref.GetFrame(), node,
|
| + if (delegate_->IsAskPrintSettingsEnabled() &&
|
| + !GetPrintSettingsFromUser(frame_ref.GetFrame(), node,
|
| expected_page_count,
|
| is_scripted)) {
|
| DidFinishPrinting(OK); // Release resources and fail silently.
|
|
|