OLD | NEW |
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 "components/guest_view/renderer/guest_view_container.h" | |
8 #include "content/public/common/content_constants.h" | 7 #include "content/public/common/content_constants.h" |
9 #include "content/public/renderer/render_frame.h" | 8 #include "content/public/renderer/render_frame.h" |
10 #include "content/public/renderer/render_frame_observer.h" | 9 #include "content/public/renderer/render_frame_observer.h" |
11 #include "content/public/renderer/render_frame_observer_tracker.h" | 10 #include "content/public/renderer/render_frame_observer_tracker.h" |
12 #include "content/public/renderer/render_thread.h" | 11 #include "content/public/renderer/render_thread.h" |
13 #include "extensions/common/extensions_client.h" | 12 #include "extensions/common/extensions_client.h" |
14 #include "extensions/renderer/dispatcher.h" | 13 #include "extensions/renderer/dispatcher.h" |
15 #include "extensions/renderer/dispatcher_delegate.h" | 14 #include "extensions/renderer/dispatcher_delegate.h" |
16 #include "extensions/renderer/extension_frame_helper.h" | 15 #include "extensions/renderer/extension_frame_helper.h" |
17 #include "extensions/renderer/extension_helper.h" | 16 #include "extensions/renderer/extension_helper.h" |
18 #include "extensions/renderer/guest_view/extensions_guest_view_container.h" | 17 #include "extensions/renderer/guest_view/extensions_guest_view_container.h" |
| 18 #include "extensions/renderer/guest_view/extensions_guest_view_container_dispatc
her.h" |
19 #include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_con
tainer.h" | 19 #include "extensions/renderer/guest_view/mime_handler_view/mime_handler_view_con
tainer.h" |
20 #include "extensions/shell/common/shell_extensions_client.h" | 20 #include "extensions/shell/common/shell_extensions_client.h" |
21 #include "extensions/shell/renderer/shell_extensions_renderer_client.h" | 21 #include "extensions/shell/renderer/shell_extensions_renderer_client.h" |
22 #include "ipc/ipc_message_macros.h" | |
23 #include "third_party/WebKit/public/web/WebLocalFrame.h" | 22 #include "third_party/WebKit/public/web/WebLocalFrame.h" |
24 | 23 |
25 #if !defined(DISABLE_NACL) | 24 #if !defined(DISABLE_NACL) |
26 #include "components/nacl/common/nacl_constants.h" | 25 #include "components/nacl/common/nacl_constants.h" |
27 #include "components/nacl/renderer/nacl_helper.h" | 26 #include "components/nacl/renderer/nacl_helper.h" |
28 #include "components/nacl/renderer/ppb_nacl_private.h" | 27 #include "components/nacl/renderer/ppb_nacl_private.h" |
29 #include "components/nacl/renderer/ppb_nacl_private_impl.h" | 28 #include "components/nacl/renderer/ppb_nacl_private_impl.h" |
30 #endif | 29 #endif |
31 | 30 |
32 using blink::WebFrame; | 31 using blink::WebFrame; |
(...skipping 17 matching lines...) Expand all Loading... |
50 extensions_renderer_client_.reset(new ShellExtensionsRendererClient); | 49 extensions_renderer_client_.reset(new ShellExtensionsRendererClient); |
51 ExtensionsRendererClient::Set(extensions_renderer_client_.get()); | 50 ExtensionsRendererClient::Set(extensions_renderer_client_.get()); |
52 | 51 |
53 extension_dispatcher_delegate_.reset(new DispatcherDelegate()); | 52 extension_dispatcher_delegate_.reset(new DispatcherDelegate()); |
54 | 53 |
55 // Must be initialized after ExtensionsRendererClient. | 54 // Must be initialized after ExtensionsRendererClient. |
56 extension_dispatcher_.reset( | 55 extension_dispatcher_.reset( |
57 new Dispatcher(extension_dispatcher_delegate_.get())); | 56 new Dispatcher(extension_dispatcher_delegate_.get())); |
58 thread->AddObserver(extension_dispatcher_.get()); | 57 thread->AddObserver(extension_dispatcher_.get()); |
59 | 58 |
| 59 guest_view_container_dispatcher_.reset( |
| 60 new ExtensionsGuestViewContainerDispatcher()); |
| 61 thread->AddObserver(guest_view_container_dispatcher_.get()); |
| 62 |
60 // TODO(jamescook): Init WebSecurityPolicy for chrome-extension: schemes. | 63 // TODO(jamescook): Init WebSecurityPolicy for chrome-extension: schemes. |
61 // See ChromeContentRendererClient for details. | 64 // See ChromeContentRendererClient for details. |
62 } | 65 } |
63 | 66 |
64 void ShellContentRendererClient::RenderFrameCreated( | 67 void ShellContentRendererClient::RenderFrameCreated( |
65 content::RenderFrame* render_frame) { | 68 content::RenderFrame* render_frame) { |
66 // ExtensionFrameHelper destroys itself when the RenderFrame is destroyed. | 69 // ExtensionFrameHelper destroys itself when the RenderFrame is destroyed. |
67 new ExtensionFrameHelper(render_frame, extension_dispatcher_.get()); | 70 new ExtensionFrameHelper(render_frame, extension_dispatcher_.get()); |
68 | 71 |
69 // TODO(jamescook): Do we need to add a new PepperHelper(render_frame) here? | 72 // TODO(jamescook): Do we need to add a new PepperHelper(render_frame) here? |
(...skipping 19 matching lines...) Expand all Loading... |
89 return false; | 92 return false; |
90 } | 93 } |
91 | 94 |
92 blink::WebPlugin* ShellContentRendererClient::CreatePluginReplacement( | 95 blink::WebPlugin* ShellContentRendererClient::CreatePluginReplacement( |
93 content::RenderFrame* render_frame, | 96 content::RenderFrame* render_frame, |
94 const base::FilePath& plugin_path) { | 97 const base::FilePath& plugin_path) { |
95 // Don't provide a custom "failed to load" plugin. | 98 // Don't provide a custom "failed to load" plugin. |
96 return NULL; | 99 return NULL; |
97 } | 100 } |
98 | 101 |
99 bool ShellContentRendererClient::ShouldForwardToGuestContainer( | |
100 const IPC::Message& msg) { | |
101 return (IPC_MESSAGE_CLASS(msg) == GuestViewMsgStart) || | |
102 (IPC_MESSAGE_CLASS(msg) == ExtensionsGuestViewMsgStart); | |
103 } | |
104 | |
105 bool ShellContentRendererClient::WillSendRequest( | 102 bool ShellContentRendererClient::WillSendRequest( |
106 blink::WebFrame* frame, | 103 blink::WebFrame* frame, |
107 ui::PageTransition transition_type, | 104 ui::PageTransition transition_type, |
108 const GURL& url, | 105 const GURL& url, |
109 const GURL& first_party_for_cookies, | 106 const GURL& first_party_for_cookies, |
110 GURL* new_url) { | 107 GURL* new_url) { |
111 // TODO(jamescook): Cause an error for bad extension scheme requests? | 108 // TODO(jamescook): Cause an error for bad extension scheme requests? |
112 return false; | 109 return false; |
113 } | 110 } |
114 | 111 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
149 return new extensions::MimeHandlerViewContainer( | 146 return new extensions::MimeHandlerViewContainer( |
150 render_frame, mime_type, original_url); | 147 render_frame, mime_type, original_url); |
151 } | 148 } |
152 } | 149 } |
153 | 150 |
154 ExtensionsClient* ShellContentRendererClient::CreateExtensionsClient() { | 151 ExtensionsClient* ShellContentRendererClient::CreateExtensionsClient() { |
155 return new ShellExtensionsClient; | 152 return new ShellExtensionsClient; |
156 } | 153 } |
157 | 154 |
158 } // namespace extensions | 155 } // namespace extensions |
OLD | NEW |