Index: chrome/renderer/printing/print_web_view_helper.cc |
diff --git a/chrome/renderer/printing/print_web_view_helper.cc b/chrome/renderer/printing/print_web_view_helper.cc |
index 53a66ee29263edee54837201297c2b99c9ba9d9c..c079159380856c2318f7b0b27e8db0e219664f06 100644 |
--- a/chrome/renderer/printing/print_web_view_helper.cc |
+++ b/chrome/renderer/printing/print_web_view_helper.cc |
@@ -67,12 +67,6 @@ const char kPageLoadScriptFormat[] = |
const char kPageSetupScriptFormat[] = "setup(%s);"; |
-#if defined(ENABLE_FULL_PRINTING) |
-bool g_is_preview_enabled_ = true; |
-#else |
-bool g_is_preview_enabled_ = false; |
-#endif |
- |
void ExecuteScript(blink::WebFrame* frame, |
const char* script_format, |
const base::Value& parameters) { |
@@ -405,6 +399,15 @@ PrintMsg_Print_Params CalculatePrintParamsForCss( |
return result_params; |
} |
+bool IsPrintPreviewEnabled() { |
+#if defined(ENABLE_FULL_PRINTING) |
+ return !CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kDisablePrintPreview); |
+#else |
+ return false; |
+#endif |
+} |
+ |
} // namespace |
FrameReference::FrameReference(blink::WebLocalFrame* frame) { |
@@ -775,6 +778,7 @@ PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view) |
: content::RenderViewObserver(render_view), |
content::RenderViewObserverTracker<PrintWebViewHelper>(render_view), |
reset_prep_frame_view_(false), |
+ is_preview_enabled_(IsPrintPreviewEnabled()), |
is_print_ready_metafile_sent_(false), |
ignore_css_margins_(false), |
is_scripted_printing_blocked_(false), |
@@ -788,11 +792,6 @@ PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view) |
PrintWebViewHelper::~PrintWebViewHelper() {} |
-// static |
-void PrintWebViewHelper::DisablePreview() { |
- g_is_preview_enabled_ = false; |
-} |
- |
bool PrintWebViewHelper::IsScriptInitiatedPrintAllowed( |
blink::WebFrame* frame, bool user_initiated) { |
#if defined(OS_ANDROID) |
@@ -803,7 +802,7 @@ bool PrintWebViewHelper::IsScriptInitiatedPrintAllowed( |
// is app modal). If the print was initiated through user action, don't |
// throttle. Or, if the command line flag to skip throttling has been set. |
return !is_scripted_printing_blocked_ && |
- (user_initiated || g_is_preview_enabled_ || |
+ (user_initiated || is_preview_enabled_ || |
scripting_throttler_.IsAllowed(frame)); |
} |
@@ -834,7 +833,7 @@ void PrintWebViewHelper::PrintPage(blink::WebLocalFrame* frame, |
if (!IsScriptInitiatedPrintAllowed(frame, user_initiated)) |
return; |
- if (!g_is_preview_enabled_) { |
+ if (!is_preview_enabled_) { |
Print(frame, blink::WebNode()); |
} else { |
print_preview_context_.InitWithFrame(frame); |
@@ -862,6 +861,7 @@ bool PrintWebViewHelper::OnMessageReceived(const IPC::Message& message) { |
void PrintWebViewHelper::OnPrintForPrintPreview( |
const base::DictionaryValue& job_settings) { |
+ DCHECK(is_preview_enabled_); |
// If still not finished with earlier print request simply ignore. |
if (prep_frame_view_) |
return; |
@@ -996,6 +996,7 @@ bool PrintWebViewHelper::IsPrintToPdfRequested( |
} |
void PrintWebViewHelper::OnPrintPreview(const base::DictionaryValue& settings) { |
+ DCHECK(is_preview_enabled_); |
print_preview_context_.OnPrintPreview(); |
UMA_HISTOGRAM_ENUMERATION("PrintPreview.PreviewEvent", |
@@ -1198,6 +1199,7 @@ void PrintWebViewHelper::SetScriptedPrintBlocked(bool blocked) { |
} |
void PrintWebViewHelper::OnInitiatePrintPreview(bool selection_only) { |
+ DCHECK(is_preview_enabled_); |
blink::WebLocalFrame* frame = NULL; |
GetPrintFrame(&frame); |
DCHECK(frame); |
@@ -1231,7 +1233,7 @@ void PrintWebViewHelper::PrintNode(const blink::WebNode& node) { |
// Make a copy of the node, in case RenderView::OnContextMenuClosed resets |
// its |context_menu_node_|. |
- if (!g_is_preview_enabled_) { |
+ if (!is_preview_enabled_) { |
blink::WebNode duplicate_node(node); |
Print(duplicate_node.document().frame(), duplicate_node); |
} else { |
@@ -1294,6 +1296,7 @@ void PrintWebViewHelper::DidFinishPrinting(PrintingResult result) { |
break; |
case FAIL_PREVIEW: |
+ DCHECK(is_preview_enabled_); |
int cookie = print_pages_params_ ? |
print_pages_params_->params.document_cookie : 0; |
if (notify_browser_of_print_failure_) { |
@@ -1459,6 +1462,7 @@ bool PrintWebViewHelper::UpdatePrintSettings( |
blink::WebLocalFrame* frame, |
const blink::WebNode& node, |
const base::DictionaryValue& passed_job_settings) { |
+ DCHECK(is_preview_enabled_); |
const base::DictionaryValue* job_settings = &passed_job_settings; |
base::DictionaryValue modified_job_settings; |
if (job_settings->empty()) { |