Index: extensions/shell/renderer/shell_content_renderer_client.cc |
diff --git a/extensions/shell/renderer/shell_content_renderer_client.cc b/extensions/shell/renderer/shell_content_renderer_client.cc |
index c7a9be6d227da2969d9efe8679714e2bbd002368..79ece93580ec357dac7767f13b3a8e9f2b65c6e7 100644 |
--- a/extensions/shell/renderer/shell_content_renderer_client.cc |
+++ b/extensions/shell/renderer/shell_content_renderer_client.cc |
@@ -16,6 +16,12 @@ |
#include "extensions/shell/renderer/shell_extensions_renderer_client.h" |
#include "extensions/shell/renderer/shell_renderer_main_delegate.h" |
+#if !defined(DISABLE_NACL) |
+#include "components/nacl/renderer/nacl_helper.h" |
+#include "components/nacl/renderer/ppb_nacl_private_impl.h" |
+#include "ppapi/c/private/ppb_nacl_private.h" |
+#endif |
+ |
using blink::WebFrame; |
using blink::WebString; |
using content::RenderThread; |
@@ -93,8 +99,14 @@ void ShellContentRendererClient::RenderThreadStarted() { |
void ShellContentRendererClient::RenderFrameCreated( |
content::RenderFrame* render_frame) { |
- // ShellFrameHelper destroyes itself when the RenderFrame is destroyed. |
+ // ShellFrameHelper destroys itself when the RenderFrame is destroyed. |
new ShellFrameHelper(render_frame, extension_dispatcher_.get()); |
+ |
+ // TODO(jamescook): Do we need to add a new PepperHelper(render_frame) here? |
+ // It doesn't seem necessary for either Pepper or NaCl. |
teravest
2014/08/12 15:48:32
Hmm.
It looks like PepperHelper sets up PepperSha
James Cook
2014/08/12 18:17:06
Yep, can't use it here. I'll leave the comment and
|
+#if !defined(DISABLE_NACL) |
+ new nacl::NaClHelper(render_frame); |
+#endif |
} |
void ShellContentRendererClient::RenderViewCreated( |
@@ -104,6 +116,22 @@ void ShellContentRendererClient::RenderViewCreated( |
delegate_->OnViewCreated(render_view); |
} |
+bool ShellContentRendererClient::OverrideCreatePlugin( |
+ content::RenderFrame* render_frame, |
+ blink::WebLocalFrame* frame, |
+ const blink::WebPluginParams& params, |
+ blink::WebPlugin** plugin) { |
+ // Allow the content module to create the plugin. |
+ return false; |
+} |
+ |
+blink::WebPlugin* ShellContentRendererClient::CreatePluginReplacement( |
+ content::RenderFrame* render_frame, |
+ const base::FilePath& plugin_path) { |
+ // Don't provide a custom "failed to load" plugin. |
+ return NULL; |
+} |
+ |
bool ShellContentRendererClient::WillSendRequest( |
blink::WebFrame* frame, |
content::PageTransition transition_type, |
@@ -123,6 +151,23 @@ void ShellContentRendererClient::DidCreateScriptContext( |
frame, context, extension_group, world_id); |
} |
+const void* ShellContentRendererClient::CreatePPAPIInterface( |
+ const std::string& interface_name) { |
+#if !defined(DISABLE_NACL) |
+ if (interface_name == PPB_NACL_PRIVATE_INTERFACE) |
+ return nacl::GetNaClPrivateInterface(); |
+#endif |
+ return NULL; |
+} |
+ |
+bool ShellContentRendererClient::IsExternalPepperPlugin( |
+ const std::string& module_name) { |
+ // TODO(bbudge) remove this when the trusted NaCl plugin has been removed. |
+ // We must defer certain plugin events for NaCl instances since we switch |
+ // from the in-process to the out-of-process proxy after instantiating them. |
+ return module_name == "Native Client"; |
+} |
+ |
bool ShellContentRendererClient::ShouldEnableSiteIsolationPolicy() const { |
// Extension renderers don't need site isolation. |
return false; |