| 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 f038ed665eab5232fe2a008389d9fdbaf4e358c2..e98d8965a444749178a013df9066fc3f9af1b409 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"
|
| -#include "chrome/common/render_messages.h"
|
| #include "chrome/grit/browser_resources.h"
|
| -#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"
|
| @@ -46,11 +42,6 @@
|
| #include "third_party/WebKit/public/web/WebViewClient.h"
|
| #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)
|
| -
|
| using content::WebPreferences;
|
|
|
| namespace printing {
|
| @@ -410,24 +401,6 @@ PrintMsg_Print_Params CalculatePrintParamsForCss(
|
| return result_params;
|
| }
|
|
|
| -// Return the PDF object element if |frame| is the out of process PDF extension.
|
| -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) {
|
| - // <object> with id="plugin" is created in
|
| - // chrome/browser/resources/pdf/pdf.js.
|
| - auto plugin_element = frame->document().getElementById("plugin");
|
| - if (!plugin_element.isNull()) {
|
| - return plugin_element;
|
| - }
|
| - NOTREACHED();
|
| - }
|
| -#endif // defined(ENABLE_EXTENSIONS)
|
| - return blink::WebElement();
|
| -}
|
| -
|
| } // namespace
|
|
|
| FrameReference::FrameReference(blink::WebLocalFrame* frame) {
|
| @@ -779,7 +752,11 @@ void PrepareFrameAndViewForPrint::FinishPrinting() {
|
| on_ready_.Reset();
|
| }
|
|
|
| -PrintWebViewHelper::PrintWebViewHelper(content::RenderView* render_view)
|
| +PrintWebViewHelper::PrintWebViewHelper(
|
| + content::RenderView* render_view,
|
| + bool out_of_process_pdf_enabled,
|
| + bool print_preview_disabled,
|
| + scoped_ptr<Delegate> delegate)
|
| : content::RenderViewObserver(render_view),
|
| content::RenderViewObserverTracker<PrintWebViewHelper>(render_view),
|
| reset_prep_frame_view_(false),
|
| @@ -788,14 +765,14 @@ 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.Pass()),
|
| print_node_in_progress_(false),
|
| is_loading_(false),
|
| is_scripted_preview_delayed_(false),
|
| weak_ptr_factory_(this) {
|
| - if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| - switches::kDisablePrintPreview)) {
|
| + if (print_preview_disabled)
|
| DisablePreview();
|
| - }
|
| }
|
|
|
| PrintWebViewHelper::~PrintWebViewHelper() {}
|
| @@ -834,11 +811,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;
|
| @@ -895,10 +869,9 @@ 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);
|
| + plugin_element = delegate_->GetPdfElement(plugin_frame);
|
| if (plugin_element.isNull()) {
|
| NOTREACHED();
|
| return;
|
| @@ -958,7 +931,7 @@ void PrintWebViewHelper::OnPrintPages() {
|
| return;
|
| // If we are printing a PDF extension frame, find the plugin node and print
|
| // that instead.
|
| - auto plugin = GetPdfElement(frame);
|
| + auto plugin = delegate_->GetPdfElement(frame);
|
| Print(frame, plugin, false);
|
| }
|
|
|
| @@ -1213,7 +1186,7 @@ void PrintWebViewHelper::OnInitiatePrintPreview(bool selection_only) {
|
| DCHECK(frame);
|
| // If we are printing a PDF extension frame, find the plugin node and print
|
| // that instead.
|
| - auto plugin = GetPdfElement(frame);
|
| + auto plugin = delegate_->GetPdfElement(frame);
|
| if (!plugin.isNull()) {
|
| PrintNode(plugin);
|
| return;
|
|
|