Chromium Code Reviews| 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 d50f076af6e752024875635ad9e468bee841069b..71dc4818842eb2d63d95a1df03ae5593e9d234aa 100644 |
| --- a/chrome/renderer/printing/print_web_view_helper.cc |
| +++ b/chrome/renderer/printing/print_web_view_helper.cc |
| @@ -7,7 +7,6 @@ |
| #include <string> |
| #include "base/auto_reset.h" |
| -#include "base/command_line.h" |
| #include "base/json/json_writer.h" |
| #include "base/logging.h" |
| #include "base/message_loop/message_loop.h" |
| @@ -16,11 +15,8 @@ |
| #include "base/strings/string_number_conversions.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/strings/utf_string_conversions.h" |
| -#include "chrome/common/chrome_switches.h" |
| #include "chrome/common/print_messages.h" |
|
dgn
2015/01/05 22:45:48
Will move to //components/printing/common/print_me
|
| -#include "chrome/common/render_messages.h" |
| #include "chrome/grit/browser_resources.h" |
|
dgn
2015/01/05 22:45:48
The used variable will be moved to //components/pr
|
| -#include "chrome/renderer/prerender/prerender_helper.h" |
| #include "content/public/common/web_preferences.h" |
| #include "content/public/renderer/render_frame.h" |
| #include "content/public/renderer/render_thread.h" |
| @@ -47,7 +43,6 @@ |
| #include "ui/base/resource/resource_bundle.h" |
| #if defined(ENABLE_EXTENSIONS) |
| -#include "chrome/common/extensions/extension_constants.h" |
| #include "extensions/common/constants.h" |
| #endif // defined(ENABLE_EXTENSIONS) |
| @@ -55,6 +50,8 @@ using content::WebPreferences; |
| namespace printing { |
| +static const char kPdfExtensionId[] = "mhjfbmdgcfjbbpaeojofohoefgiehjai"; |
|
Lei Zhang
2015/01/06 04:11:32
Can we pass this in, instead of duplicating the va
dgn
2015/01/06 16:35:31
Done.
|
| + |
| namespace { |
| enum PrintPreviewHelperEvents { |
| @@ -415,7 +412,7 @@ blink::WebElement GetPdfElement(blink::WebLocalFrame* frame) { |
| #if defined(ENABLE_EXTENSIONS) |
| GURL url = frame->document().url(); |
| if (url.SchemeIs(extensions::kExtensionScheme) && |
| - url.host() == extension_misc::kPdfExtensionId) { |
| + url.host() == kPdfExtensionId) { |
| // <object> with id="plugin" is created in |
| // chrome/browser/resources/pdf/pdf.js. |
| auto plugin_element = frame->document().getElementById("plugin"); |
| @@ -790,7 +787,11 @@ void PrepareFrameAndViewForPrint::FinishPrinting() { |
| on_ready_.Reset(); |
| } |
| -PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view) |
| +PrintWebViewHelper::PrintWebViewHelper( |
| + content::RenderView* render_view, |
| + const bool out_of_process_pdf_enabled, |
| + const bool print_preview_disabled, |
| + Delegate* delegate) |
| : content::RenderViewObserver(render_view), |
| content::RenderViewObserverTracker<PrintWebViewHelper>(render_view), |
| reset_prep_frame_view_(false), |
| @@ -799,12 +800,13 @@ PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view) |
| is_scripted_printing_blocked_(false), |
| notify_browser_of_print_failure_(true), |
| print_for_preview_(false), |
| + out_of_process_pdf_enabled_(out_of_process_pdf_enabled), |
| + delegate_(delegate), |
| print_node_in_progress_(false), |
| is_loading_(false), |
| is_scripted_preview_delayed_(false), |
| weak_ptr_factory_(this) { |
| - if (CommandLine::ForCurrentProcess()->HasSwitch( |
| - switches::kDisablePrintPreview)) { |
| + if (print_preview_disabled) { |
| DisablePreview(); |
| } |
| } |
| @@ -845,11 +847,8 @@ void PrintWebViewHelper::PrintPage(blink::WebLocalFrame* frame, |
| DCHECK(frame); |
| // Allow Prerendering to cancel this print request if necessary. |
| - if (prerender::PrerenderHelper::IsPrerendering( |
| - render_view()->GetMainRenderFrame())) { |
| - Send(new ChromeViewHostMsg_CancelPrerenderForPrinting(routing_id())); |
| + if (delegate_->CancelPrerender(render_view(), routing_id())) |
| return; |
| - } |
| if (!IsScriptInitiatedPrintAllowed(frame, user_initiated)) |
| return; |
| @@ -906,8 +905,7 @@ void PrintWebViewHelper::OnPrintForPrintPreview( |
| // the element with ID "pdf-viewer" if it isn't an iframe. |
| blink::WebLocalFrame* plugin_frame = pdf_element.document().frame(); |
| blink::WebElement plugin_element = pdf_element; |
| - if (switches::OutOfProcessPdfEnabled() && |
| - pdf_element.hasHTMLTagName("iframe")) { |
| + if (out_of_process_pdf_enabled_ && pdf_element.hasHTMLTagName("iframe")) { |
| plugin_frame = blink::WebLocalFrame::fromFrameOwnerElement(pdf_element); |
| plugin_element = GetPdfElement(plugin_frame); |
| if (plugin_element.isNull()) { |