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; |