Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(222)

Side by Side Diff: chrome/renderer/chrome_content_renderer_client.cc

Issue 477263003: pdf: Create a separate component for using the pdf pepper plugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/renderer/chrome_content_renderer_client.h" 5 #include "chrome/renderer/chrome_content_renderer_client.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/debug/crash_logging.h" 8 #include "base/debug/crash_logging.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 #include "chrome/renderer/external_extension.h" 44 #include "chrome/renderer/external_extension.h"
45 #include "chrome/renderer/loadtimes_extension_bindings.h" 45 #include "chrome/renderer/loadtimes_extension_bindings.h"
46 #include "chrome/renderer/media/cast_ipc_dispatcher.h" 46 #include "chrome/renderer/media/cast_ipc_dispatcher.h"
47 #include "chrome/renderer/media/chrome_key_systems.h" 47 #include "chrome/renderer/media/chrome_key_systems.h"
48 #include "chrome/renderer/net/net_error_helper.h" 48 #include "chrome/renderer/net/net_error_helper.h"
49 #include "chrome/renderer/net/prescient_networking_dispatcher.h" 49 #include "chrome/renderer/net/prescient_networking_dispatcher.h"
50 #include "chrome/renderer/net/renderer_net_predictor.h" 50 #include "chrome/renderer/net/renderer_net_predictor.h"
51 #include "chrome/renderer/net_benchmarking_extension.h" 51 #include "chrome/renderer/net_benchmarking_extension.h"
52 #include "chrome/renderer/page_load_histograms.h" 52 #include "chrome/renderer/page_load_histograms.h"
53 #include "chrome/renderer/pepper/pepper_helper.h" 53 #include "chrome/renderer/pepper/pepper_helper.h"
54 #include "chrome/renderer/pepper/ppb_pdf_impl.h"
55 #include "chrome/renderer/playback_extension.h" 54 #include "chrome/renderer/playback_extension.h"
56 #include "chrome/renderer/plugins/chrome_plugin_placeholder.h" 55 #include "chrome/renderer/plugins/chrome_plugin_placeholder.h"
57 #include "chrome/renderer/plugins/plugin_uma.h" 56 #include "chrome/renderer/plugins/plugin_uma.h"
58 #include "chrome/renderer/prefetch_helper.h" 57 #include "chrome/renderer/prefetch_helper.h"
59 #include "chrome/renderer/prerender/prerender_dispatcher.h" 58 #include "chrome/renderer/prerender/prerender_dispatcher.h"
60 #include "chrome/renderer/prerender/prerender_helper.h" 59 #include "chrome/renderer/prerender/prerender_helper.h"
61 #include "chrome/renderer/prerender/prerender_media_load_deferrer.h" 60 #include "chrome/renderer/prerender/prerender_media_load_deferrer.h"
62 #include "chrome/renderer/prerender/prerenderer_client.h" 61 #include "chrome/renderer/prerender/prerenderer_client.h"
63 #include "chrome/renderer/principals_extension_bindings.h" 62 #include "chrome/renderer/principals_extension_bindings.h"
64 #include "chrome/renderer/printing/print_web_view_helper.h" 63 #include "chrome/renderer/printing/print_web_view_helper.h"
65 #include "chrome/renderer/safe_browsing/malware_dom_details.h" 64 #include "chrome/renderer/safe_browsing/malware_dom_details.h"
66 #include "chrome/renderer/safe_browsing/phishing_classifier_delegate.h" 65 #include "chrome/renderer/safe_browsing/phishing_classifier_delegate.h"
67 #include "chrome/renderer/searchbox/search_bouncer.h" 66 #include "chrome/renderer/searchbox/search_bouncer.h"
68 #include "chrome/renderer/searchbox/searchbox.h" 67 #include "chrome/renderer/searchbox/searchbox.h"
69 #include "chrome/renderer/searchbox/searchbox_extension.h" 68 #include "chrome/renderer/searchbox/searchbox_extension.h"
70 #include "chrome/renderer/tts_dispatcher.h" 69 #include "chrome/renderer/tts_dispatcher.h"
71 #include "chrome/renderer/worker_permission_client_proxy.h" 70 #include "chrome/renderer/worker_permission_client_proxy.h"
72 #include "components/autofill/content/renderer/autofill_agent.h" 71 #include "components/autofill/content/renderer/autofill_agent.h"
73 #include "components/autofill/content/renderer/password_autofill_agent.h" 72 #include "components/autofill/content/renderer/password_autofill_agent.h"
74 #include "components/autofill/content/renderer/password_generation_agent.h" 73 #include "components/autofill/content/renderer/password_generation_agent.h"
75 #include "components/dom_distiller/core/url_constants.h" 74 #include "components/dom_distiller/core/url_constants.h"
76 #include "components/nacl/renderer/ppb_nacl_private_impl.h" 75 #include "components/nacl/renderer/ppb_nacl_private_impl.h"
77 #include "components/password_manager/content/renderer/credential_manager_client .h" 76 #include "components/password_manager/content/renderer/credential_manager_client .h"
77 #include "components/pdf/renderer/ppb_pdf_impl.h"
78 #include "components/plugins/renderer/mobile_youtube_plugin.h" 78 #include "components/plugins/renderer/mobile_youtube_plugin.h"
79 #include "components/signin/core/common/profile_management_switches.h" 79 #include "components/signin/core/common/profile_management_switches.h"
80 #include "components/visitedlink/renderer/visitedlink_slave.h" 80 #include "components/visitedlink/renderer/visitedlink_slave.h"
81 #include "content/public/common/content_constants.h" 81 #include "content/public/common/content_constants.h"
82 #include "content/public/renderer/pepper_plugin_instance.h"
82 #include "content/public/renderer/render_frame.h" 83 #include "content/public/renderer/render_frame.h"
83 #include "content/public/renderer/render_thread.h" 84 #include "content/public/renderer/render_thread.h"
84 #include "content/public/renderer/render_view.h" 85 #include "content/public/renderer/render_view.h"
85 #include "content/public/renderer/render_view_visitor.h" 86 #include "content/public/renderer/render_view_visitor.h"
86 #include "extensions/common/constants.h" 87 #include "extensions/common/constants.h"
87 #include "extensions/common/extension.h" 88 #include "extensions/common/extension.h"
88 #include "extensions/common/extension_set.h" 89 #include "extensions/common/extension_set.h"
89 #include "extensions/common/extension_urls.h" 90 #include "extensions/common/extension_urls.h"
90 #include "extensions/common/switches.h" 91 #include "extensions/common/switches.h"
91 #include "extensions/renderer/dispatcher.h" 92 #include "extensions/renderer/dispatcher.h"
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 void IsGuestViewApiAvailableToScriptContext( 252 void IsGuestViewApiAvailableToScriptContext(
252 bool* api_is_available, 253 bool* api_is_available,
253 extensions::ScriptContext* context) { 254 extensions::ScriptContext* context) {
254 if (context->GetAvailability("guestViewInternal").is_available()) { 255 if (context->GetAvailability("guestViewInternal").is_available()) {
255 *api_is_available = true; 256 *api_is_available = true;
256 } 257 }
257 } 258 }
258 259
259 } // namespace 260 } // namespace
260 261
262 #if defined(ENABLE_FULL_PRINTING)
263 // XXX: Move into its own file.
raymes 2014/08/25 03:11:49 I guess you might as well move this into its own f
sadrul 2014/08/26 17:09:54 Done.
264 class PDFPluginPrintDelegate : public pdf::PPB_PDF_Impl::PrintDelegate {
265 public:
266 PDFPluginPrintDelegate() {}
267 virtual ~PDFPluginPrintDelegate() {}
268
269 virtual bool IsPrintingEnabled(PP_Instance instance_id) OVERRIDE {
270 blink::WebElement element = GetWebElement(instance_id);
271 printing::PrintWebViewHelper* helper = GetPrintWebViewHelper(element);
272 return helper && helper->IsPrintingEnabled();
273 }
274
275 virtual void Print(PP_Instance instance_id) OVERRIDE {
276 blink::WebElement element = GetWebElement(instance_id);
277 printing::PrintWebViewHelper* helper = GetPrintWebViewHelper(element);
278 if (helper)
279 helper->PrintNode(element);
280 }
281
282 private:
283 blink::WebElement GetWebElement(PP_Instance instance_id) {
284 content::PepperPluginInstance* instance =
285 content::PepperPluginInstance::Get(instance_id);
286 if (!instance)
287 return blink::WebElement();
288 return instance->GetContainer()->element();
289 }
290
291 printing::PrintWebViewHelper* GetPrintWebViewHelper(
292 const blink::WebElement& element) {
293 if (element.isNull())
294 return NULL;
295 blink::WebView* view = element.document().frame()->view();
296 content::RenderView* render_view = content::RenderView::FromWebView(view);
297 return printing::PrintWebViewHelper::Get(render_view);
298 }
299
300 DISALLOW_COPY_AND_ASSIGN(PDFPluginPrintDelegate);
301 };
302 #endif // defined(ENABLE_FULL_PRINTING)
303
261 ChromeContentRendererClient::ChromeContentRendererClient() { 304 ChromeContentRendererClient::ChromeContentRendererClient() {
262 g_current_client = this; 305 g_current_client = this;
263 306
264 extensions::ExtensionsClient::Set( 307 extensions::ExtensionsClient::Set(
265 extensions::ChromeExtensionsClient::GetInstance()); 308 extensions::ChromeExtensionsClient::GetInstance());
266 extensions::ExtensionsRendererClient::Set( 309 extensions::ExtensionsRendererClient::Set(
267 ChromeExtensionsRendererClient::GetInstance()); 310 ChromeExtensionsRendererClient::GetInstance());
268 #if defined(ENABLE_PLUGINS) 311 #if defined(ENABLE_PLUGINS)
269 for (size_t i = 0; i < arraysize(kPredefinedAllowedCompositorOrigins); ++i) 312 for (size_t i = 0; i < arraysize(kPredefinedAllowedCompositorOrigins); ++i)
270 allowed_compositor_origins_.insert(kPredefinedAllowedCompositorOrigins[i]); 313 allowed_compositor_origins_.insert(kPredefinedAllowedCompositorOrigins[i]);
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy( 457 WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy(
415 extension_resource_scheme); 458 extension_resource_scheme);
416 459
417 #if defined(OS_WIN) 460 #if defined(OS_WIN)
418 // Report if the renderer process has been patched by chrome_elf. 461 // Report if the renderer process has been patched by chrome_elf.
419 // TODO(csharp): Remove once the renderer is no longer getting 462 // TODO(csharp): Remove once the renderer is no longer getting
420 // patched this way. 463 // patched this way.
421 if (blacklist::IsBlacklistInitialized()) 464 if (blacklist::IsBlacklistInitialized())
422 UMA_HISTOGRAM_BOOLEAN("Blacklist.PatchedInRenderer", true); 465 UMA_HISTOGRAM_BOOLEAN("Blacklist.PatchedInRenderer", true);
423 #endif 466 #endif
467 #if defined(ENABLE_FULL_PRINTING)
468 pdf_print_delegate_.reset(new PDFPluginPrintDelegate());
469 pdf::PPB_PDF_Impl::SetPrintDelegate(pdf_print_delegate_.get());
470 #endif
424 } 471 }
425 472
426 void ChromeContentRendererClient::RenderFrameCreated( 473 void ChromeContentRendererClient::RenderFrameCreated(
427 content::RenderFrame* render_frame) { 474 content::RenderFrame* render_frame) {
428 new ChromeRenderFrameObserver(render_frame); 475 new ChromeRenderFrameObserver(render_frame);
429 476
430 ContentSettingsObserver* content_settings = 477 ContentSettingsObserver* content_settings =
431 new ContentSettingsObserver(render_frame, extension_dispatcher_.get()); 478 new ContentSettingsObserver(render_frame, extension_dispatcher_.get());
432 if (chrome_observer_.get()) { 479 if (chrome_observer_.get()) {
433 content_settings->SetContentSettingRules( 480 content_settings->SetContentSettingRules(
(...skipping 953 matching lines...) Expand 10 before | Expand all | Expand 10 after
1387 } 1434 }
1388 1435
1389 const void* ChromeContentRendererClient::CreatePPAPIInterface( 1436 const void* ChromeContentRendererClient::CreatePPAPIInterface(
1390 const std::string& interface_name) { 1437 const std::string& interface_name) {
1391 #if defined(ENABLE_PLUGINS) 1438 #if defined(ENABLE_PLUGINS)
1392 #if !defined(DISABLE_NACL) 1439 #if !defined(DISABLE_NACL)
1393 if (interface_name == PPB_NACL_PRIVATE_INTERFACE) 1440 if (interface_name == PPB_NACL_PRIVATE_INTERFACE)
1394 return nacl::GetNaClPrivateInterface(); 1441 return nacl::GetNaClPrivateInterface();
1395 #endif // DISABLE_NACL 1442 #endif // DISABLE_NACL
1396 if (interface_name == PPB_PDF_INTERFACE) 1443 if (interface_name == PPB_PDF_INTERFACE)
1397 return PPB_PDF_Impl::GetInterface(); 1444 return pdf::PPB_PDF_Impl::GetInterface();
1398 #endif 1445 #endif
1399 return NULL; 1446 return NULL;
1400 } 1447 }
1401 1448
1402 bool ChromeContentRendererClient::IsExternalPepperPlugin( 1449 bool ChromeContentRendererClient::IsExternalPepperPlugin(
1403 const std::string& module_name) { 1450 const std::string& module_name) {
1404 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed. 1451 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed.
1405 // We must defer certain plugin events for NaCl instances since we switch 1452 // We must defer certain plugin events for NaCl instances since we switch
1406 // from the in-process to the out-of-process proxy after instantiating them. 1453 // from the in-process to the out-of-process proxy after instantiating them.
1407 return module_name == "Native Client"; 1454 return module_name == "Native Client";
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1514 1561
1515 if (IsExtensionOrSharedModuleWhitelisted(url, allowed_video_decode_origins_)) 1562 if (IsExtensionOrSharedModuleWhitelisted(url, allowed_video_decode_origins_))
1516 return true; 1563 return true;
1517 1564
1518 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel(); 1565 chrome::VersionInfo::Channel channel = chrome::VersionInfo::GetChannel();
1519 return channel <= chrome::VersionInfo::CHANNEL_DEV; 1566 return channel <= chrome::VersionInfo::CHANNEL_DEV;
1520 #else 1567 #else
1521 return false; 1568 return false;
1522 #endif 1569 #endif
1523 } 1570 }
OLDNEW
« no previous file with comments | « chrome/renderer/chrome_content_renderer_client.h ('k') | chrome/renderer/pepper/pepper_flash_renderer_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698