| 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 "apps/shell/renderer/shell_content_renderer_client.h" | 5 #include "apps/shell/renderer/shell_content_renderer_client.h" |
| 6 | 6 |
| 7 #include "apps/shell/common/shell_extensions_client.h" | 7 #include "apps/shell/common/shell_extensions_client.h" |
| 8 #include "apps/shell/renderer/shell_dispatcher_delegate.h" | 8 #include "apps/shell/renderer/shell_dispatcher_delegate.h" |
| 9 #include "apps/shell/renderer/shell_extensions_renderer_client.h" | 9 #include "apps/shell/renderer/shell_extensions_renderer_client.h" |
| 10 #include "apps/shell/renderer/shell_renderer_main_delegate.h" |
| 10 #include "content/public/renderer/render_frame.h" | 11 #include "content/public/renderer/render_frame.h" |
| 11 #include "content/public/renderer/render_frame_observer.h" | 12 #include "content/public/renderer/render_frame_observer.h" |
| 12 #include "content/public/renderer/render_frame_observer_tracker.h" | 13 #include "content/public/renderer/render_frame_observer_tracker.h" |
| 13 #include "content/public/renderer/render_thread.h" | 14 #include "content/public/renderer/render_thread.h" |
| 14 #include "extensions/common/extensions_client.h" | 15 #include "extensions/common/extensions_client.h" |
| 15 #include "extensions/renderer/dispatcher.h" | 16 #include "extensions/renderer/dispatcher.h" |
| 16 #include "extensions/renderer/extension_helper.h" | 17 #include "extensions/renderer/extension_helper.h" |
| 17 | 18 |
| 18 using blink::WebFrame; | 19 using blink::WebFrame; |
| 19 using blink::WebString; | 20 using blink::WebString; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 ShellFrameHelper::~ShellFrameHelper() {} | 52 ShellFrameHelper::~ShellFrameHelper() {} |
| 52 | 53 |
| 53 void ShellFrameHelper::WillReleaseScriptContext(v8::Handle<v8::Context> context, | 54 void ShellFrameHelper::WillReleaseScriptContext(v8::Handle<v8::Context> context, |
| 54 int world_id) { | 55 int world_id) { |
| 55 extension_dispatcher_->WillReleaseScriptContext( | 56 extension_dispatcher_->WillReleaseScriptContext( |
| 56 render_frame()->GetWebFrame(), context, world_id); | 57 render_frame()->GetWebFrame(), context, world_id); |
| 57 } | 58 } |
| 58 | 59 |
| 59 } // namespace | 60 } // namespace |
| 60 | 61 |
| 61 ShellContentRendererClient::ShellContentRendererClient() {} | 62 ShellContentRendererClient::ShellContentRendererClient( |
| 63 ShellRendererMainDelegate* delegate) |
| 64 : delegate_(delegate) { |
| 65 } |
| 62 | 66 |
| 63 ShellContentRendererClient::~ShellContentRendererClient() {} | 67 ShellContentRendererClient::~ShellContentRendererClient() {} |
| 64 | 68 |
| 65 void ShellContentRendererClient::RenderThreadStarted() { | 69 void ShellContentRendererClient::RenderThreadStarted() { |
| 66 RenderThread* thread = RenderThread::Get(); | 70 RenderThread* thread = RenderThread::Get(); |
| 67 | 71 |
| 68 extensions_client_.reset(new ShellExtensionsClient); | 72 extensions_client_.reset(new ShellExtensionsClient); |
| 69 extensions::ExtensionsClient::Set(extensions_client_.get()); | 73 extensions::ExtensionsClient::Set(extensions_client_.get()); |
| 70 | 74 |
| 71 extensions_renderer_client_.reset(new ShellExtensionsRendererClient); | 75 extensions_renderer_client_.reset(new ShellExtensionsRendererClient); |
| 72 extensions::ExtensionsRendererClient::Set(extensions_renderer_client_.get()); | 76 extensions::ExtensionsRendererClient::Set(extensions_renderer_client_.get()); |
| 73 | 77 |
| 74 extension_dispatcher_delegate_.reset(new ShellDispatcherDelegate()); | 78 extension_dispatcher_delegate_.reset(new ShellDispatcherDelegate()); |
| 75 | 79 |
| 76 // Must be initialized after ExtensionsRendererClient. | 80 // Must be initialized after ExtensionsRendererClient. |
| 77 extension_dispatcher_.reset( | 81 extension_dispatcher_.reset( |
| 78 new extensions::Dispatcher(extension_dispatcher_delegate_.get())); | 82 new extensions::Dispatcher(extension_dispatcher_delegate_.get())); |
| 79 thread->AddObserver(extension_dispatcher_.get()); | 83 thread->AddObserver(extension_dispatcher_.get()); |
| 80 | 84 |
| 81 // TODO(jamescook): Init WebSecurityPolicy for chrome-extension: schemes. | 85 // TODO(jamescook): Init WebSecurityPolicy for chrome-extension: schemes. |
| 82 // See ChromeContentRendererClient for details. | 86 // See ChromeContentRendererClient for details. |
| 87 if (delegate_) |
| 88 delegate_->OnThreadStarted(thread); |
| 83 } | 89 } |
| 84 | 90 |
| 85 void ShellContentRendererClient::RenderFrameCreated( | 91 void ShellContentRendererClient::RenderFrameCreated( |
| 86 content::RenderFrame* render_frame) { | 92 content::RenderFrame* render_frame) { |
| 87 // ShellFrameHelper destroyes itself when the RenderFrame is destroyed. | 93 // ShellFrameHelper destroyes itself when the RenderFrame is destroyed. |
| 88 new ShellFrameHelper(render_frame, extension_dispatcher_.get()); | 94 new ShellFrameHelper(render_frame, extension_dispatcher_.get()); |
| 89 } | 95 } |
| 90 | 96 |
| 91 void ShellContentRendererClient::RenderViewCreated( | 97 void ShellContentRendererClient::RenderViewCreated( |
| 92 content::RenderView* render_view) { | 98 content::RenderView* render_view) { |
| 93 new extensions::ExtensionHelper(render_view, extension_dispatcher_.get()); | 99 new extensions::ExtensionHelper(render_view, extension_dispatcher_.get()); |
| 100 if (delegate_) |
| 101 delegate_->OnViewCreated(render_view); |
| 94 } | 102 } |
| 95 | 103 |
| 96 bool ShellContentRendererClient::WillSendRequest( | 104 bool ShellContentRendererClient::WillSendRequest( |
| 97 blink::WebFrame* frame, | 105 blink::WebFrame* frame, |
| 98 content::PageTransition transition_type, | 106 content::PageTransition transition_type, |
| 99 const GURL& url, | 107 const GURL& url, |
| 100 const GURL& first_party_for_cookies, | 108 const GURL& first_party_for_cookies, |
| 101 GURL* new_url) { | 109 GURL* new_url) { |
| 102 // TODO(jamescook): Cause an error for bad extension scheme requests? | 110 // TODO(jamescook): Cause an error for bad extension scheme requests? |
| 103 return false; | 111 return false; |
| 104 } | 112 } |
| 105 | 113 |
| 106 void ShellContentRendererClient::DidCreateScriptContext( | 114 void ShellContentRendererClient::DidCreateScriptContext( |
| 107 WebFrame* frame, v8::Handle<v8::Context> context, int extension_group, | 115 WebFrame* frame, v8::Handle<v8::Context> context, int extension_group, |
| 108 int world_id) { | 116 int world_id) { |
| 109 extension_dispatcher_->DidCreateScriptContext( | 117 extension_dispatcher_->DidCreateScriptContext( |
| 110 frame, context, extension_group, world_id); | 118 frame, context, extension_group, world_id); |
| 111 } | 119 } |
| 112 | 120 |
| 113 bool ShellContentRendererClient::ShouldEnableSiteIsolationPolicy() const { | 121 bool ShellContentRendererClient::ShouldEnableSiteIsolationPolicy() const { |
| 114 // Extension renderers don't need site isolation. | 122 // Extension renderers don't need site isolation. |
| 115 return false; | 123 return false; |
| 116 } | 124 } |
| 117 | 125 |
| 118 } // namespace apps | 126 } // namespace apps |
| OLD | NEW |