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

Side by Side Diff: extensions/shell/renderer/shell_content_renderer_client.cc

Issue 437503004: Add NaCl support to app_shell (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: (nacl-init) rebase 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/shell/renderer/shell_content_renderer_client.h" 5 #include "extensions/shell/renderer/shell_content_renderer_client.h"
6 6
7 #include "content/public/renderer/render_frame.h" 7 #include "content/public/renderer/render_frame.h"
8 #include "content/public/renderer/render_frame_observer.h" 8 #include "content/public/renderer/render_frame_observer.h"
9 #include "content/public/renderer/render_frame_observer_tracker.h" 9 #include "content/public/renderer/render_frame_observer_tracker.h"
10 #include "content/public/renderer/render_thread.h" 10 #include "content/public/renderer/render_thread.h"
11 #include "extensions/common/extensions_client.h" 11 #include "extensions/common/extensions_client.h"
12 #include "extensions/renderer/dispatcher.h" 12 #include "extensions/renderer/dispatcher.h"
13 #include "extensions/renderer/extension_helper.h" 13 #include "extensions/renderer/extension_helper.h"
14 #include "extensions/shell/common/shell_extensions_client.h" 14 #include "extensions/shell/common/shell_extensions_client.h"
15 #include "extensions/shell/renderer/shell_dispatcher_delegate.h" 15 #include "extensions/shell/renderer/shell_dispatcher_delegate.h"
16 #include "extensions/shell/renderer/shell_extensions_renderer_client.h" 16 #include "extensions/shell/renderer/shell_extensions_renderer_client.h"
17 #include "extensions/shell/renderer/shell_renderer_main_delegate.h" 17 #include "extensions/shell/renderer/shell_renderer_main_delegate.h"
18 18
19 #if !defined(DISABLE_NACL)
20 #include "components/nacl/renderer/nacl_helper.h"
21 #include "components/nacl/renderer/ppb_nacl_private_impl.h"
22 #include "ppapi/c/private/ppb_nacl_private.h"
23 #endif
24
19 using blink::WebFrame; 25 using blink::WebFrame;
20 using blink::WebString; 26 using blink::WebString;
21 using content::RenderThread; 27 using content::RenderThread;
22 28
23 namespace extensions { 29 namespace extensions {
24 30
25 namespace { 31 namespace {
26 32
27 // TODO: promote ExtensionFrameHelper to a common place and share with this. 33 // TODO: promote ExtensionFrameHelper to a common place and share with this.
28 class ShellFrameHelper 34 class ShellFrameHelper
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 thread->AddObserver(extension_dispatcher_.get()); 92 thread->AddObserver(extension_dispatcher_.get());
87 93
88 // TODO(jamescook): Init WebSecurityPolicy for chrome-extension: schemes. 94 // TODO(jamescook): Init WebSecurityPolicy for chrome-extension: schemes.
89 // See ChromeContentRendererClient for details. 95 // See ChromeContentRendererClient for details.
90 if (delegate_) 96 if (delegate_)
91 delegate_->OnThreadStarted(thread); 97 delegate_->OnThreadStarted(thread);
92 } 98 }
93 99
94 void ShellContentRendererClient::RenderFrameCreated( 100 void ShellContentRendererClient::RenderFrameCreated(
95 content::RenderFrame* render_frame) { 101 content::RenderFrame* render_frame) {
96 // ShellFrameHelper destroyes itself when the RenderFrame is destroyed. 102 // ShellFrameHelper destroys itself when the RenderFrame is destroyed.
97 new ShellFrameHelper(render_frame, extension_dispatcher_.get()); 103 new ShellFrameHelper(render_frame, extension_dispatcher_.get());
104
105 // TODO(jamescook): Do we need to add a new PepperHelper(render_frame) here?
106 // 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
107 #if !defined(DISABLE_NACL)
108 new nacl::NaClHelper(render_frame);
109 #endif
98 } 110 }
99 111
100 void ShellContentRendererClient::RenderViewCreated( 112 void ShellContentRendererClient::RenderViewCreated(
101 content::RenderView* render_view) { 113 content::RenderView* render_view) {
102 new ExtensionHelper(render_view, extension_dispatcher_.get()); 114 new ExtensionHelper(render_view, extension_dispatcher_.get());
103 if (delegate_) 115 if (delegate_)
104 delegate_->OnViewCreated(render_view); 116 delegate_->OnViewCreated(render_view);
105 } 117 }
106 118
119 bool ShellContentRendererClient::OverrideCreatePlugin(
120 content::RenderFrame* render_frame,
121 blink::WebLocalFrame* frame,
122 const blink::WebPluginParams& params,
123 blink::WebPlugin** plugin) {
124 // Allow the content module to create the plugin.
125 return false;
126 }
127
128 blink::WebPlugin* ShellContentRendererClient::CreatePluginReplacement(
129 content::RenderFrame* render_frame,
130 const base::FilePath& plugin_path) {
131 // Don't provide a custom "failed to load" plugin.
132 return NULL;
133 }
134
107 bool ShellContentRendererClient::WillSendRequest( 135 bool ShellContentRendererClient::WillSendRequest(
108 blink::WebFrame* frame, 136 blink::WebFrame* frame,
109 content::PageTransition transition_type, 137 content::PageTransition transition_type,
110 const GURL& url, 138 const GURL& url,
111 const GURL& first_party_for_cookies, 139 const GURL& first_party_for_cookies,
112 GURL* new_url) { 140 GURL* new_url) {
113 // TODO(jamescook): Cause an error for bad extension scheme requests? 141 // TODO(jamescook): Cause an error for bad extension scheme requests?
114 return false; 142 return false;
115 } 143 }
116 144
117 void ShellContentRendererClient::DidCreateScriptContext( 145 void ShellContentRendererClient::DidCreateScriptContext(
118 WebFrame* frame, 146 WebFrame* frame,
119 v8::Handle<v8::Context> context, 147 v8::Handle<v8::Context> context,
120 int extension_group, 148 int extension_group,
121 int world_id) { 149 int world_id) {
122 extension_dispatcher_->DidCreateScriptContext( 150 extension_dispatcher_->DidCreateScriptContext(
123 frame, context, extension_group, world_id); 151 frame, context, extension_group, world_id);
124 } 152 }
125 153
154 const void* ShellContentRendererClient::CreatePPAPIInterface(
155 const std::string& interface_name) {
156 #if !defined(DISABLE_NACL)
157 if (interface_name == PPB_NACL_PRIVATE_INTERFACE)
158 return nacl::GetNaClPrivateInterface();
159 #endif
160 return NULL;
161 }
162
163 bool ShellContentRendererClient::IsExternalPepperPlugin(
164 const std::string& module_name) {
165 // TODO(bbudge) remove this when the trusted NaCl plugin has been removed.
166 // We must defer certain plugin events for NaCl instances since we switch
167 // from the in-process to the out-of-process proxy after instantiating them.
168 return module_name == "Native Client";
169 }
170
126 bool ShellContentRendererClient::ShouldEnableSiteIsolationPolicy() const { 171 bool ShellContentRendererClient::ShouldEnableSiteIsolationPolicy() const {
127 // Extension renderers don't need site isolation. 172 // Extension renderers don't need site isolation.
128 return false; 173 return false;
129 } 174 }
130 175
131 } // namespace extensions 176 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698