| 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_extensions_renderer_client.h" | 8 #include "apps/shell/renderer/shell_extensions_renderer_client.h" |
| 9 #include "chrome/renderer/extensions/dispatcher.h" | 9 #include "chrome/renderer/extensions/dispatcher.h" |
| 10 #include "chrome/renderer/extensions/extension_helper.h" | 10 #include "chrome/renderer/extensions/extension_helper.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 | 57 |
| 58 } // namespace | 58 } // namespace |
| 59 | 59 |
| 60 ShellContentRendererClient::ShellContentRendererClient() {} | 60 ShellContentRendererClient::ShellContentRendererClient() {} |
| 61 | 61 |
| 62 ShellContentRendererClient::~ShellContentRendererClient() {} | 62 ShellContentRendererClient::~ShellContentRendererClient() {} |
| 63 | 63 |
| 64 void ShellContentRendererClient::RenderThreadStarted() { | 64 void ShellContentRendererClient::RenderThreadStarted() { |
| 65 RenderThread* thread = RenderThread::Get(); | 65 RenderThread* thread = RenderThread::Get(); |
| 66 | 66 |
| 67 extension_dispatcher_.reset(new extensions::Dispatcher()); | |
| 68 thread->AddObserver(extension_dispatcher_.get()); | |
| 69 | |
| 70 // TODO(jamescook): Init WebSecurityPolicy for chrome-extension: schemes. | |
| 71 // See ChromeContentRendererClient for details. | |
| 72 | |
| 73 extensions_client_.reset(new ShellExtensionsClient); | 67 extensions_client_.reset(new ShellExtensionsClient); |
| 74 extensions::ExtensionsClient::Set(extensions_client_.get()); | 68 extensions::ExtensionsClient::Set(extensions_client_.get()); |
| 75 | 69 |
| 76 extensions_renderer_client_.reset(new ShellExtensionsRendererClient); | 70 extensions_renderer_client_.reset(new ShellExtensionsRendererClient); |
| 77 extensions::ExtensionsRendererClient::Set(extensions_renderer_client_.get()); | 71 extensions::ExtensionsRendererClient::Set(extensions_renderer_client_.get()); |
| 72 |
| 73 // Must be initialized after ExtensionsRendererClient. |
| 74 extension_dispatcher_.reset(new extensions::Dispatcher()); |
| 75 thread->AddObserver(extension_dispatcher_.get()); |
| 76 |
| 77 // TODO(jamescook): Init WebSecurityPolicy for chrome-extension: schemes. |
| 78 // See ChromeContentRendererClient for details. |
| 78 } | 79 } |
| 79 | 80 |
| 80 void ShellContentRendererClient::RenderFrameCreated( | 81 void ShellContentRendererClient::RenderFrameCreated( |
| 81 content::RenderFrame* render_frame) { | 82 content::RenderFrame* render_frame) { |
| 82 // ShellFrameHelper destroyes itself when the RenderFrame is destroyed. | 83 // ShellFrameHelper destroyes itself when the RenderFrame is destroyed. |
| 83 new ShellFrameHelper(render_frame, extension_dispatcher_.get()); | 84 new ShellFrameHelper(render_frame, extension_dispatcher_.get()); |
| 84 } | 85 } |
| 85 | 86 |
| 86 void ShellContentRendererClient::RenderViewCreated( | 87 void ShellContentRendererClient::RenderViewCreated( |
| 87 content::RenderView* render_view) { | 88 content::RenderView* render_view) { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 104 extension_dispatcher_->DidCreateScriptContext( | 105 extension_dispatcher_->DidCreateScriptContext( |
| 105 frame, context, extension_group, world_id); | 106 frame, context, extension_group, world_id); |
| 106 } | 107 } |
| 107 | 108 |
| 108 bool ShellContentRendererClient::ShouldEnableSiteIsolationPolicy() const { | 109 bool ShellContentRendererClient::ShouldEnableSiteIsolationPolicy() const { |
| 109 // Extension renderers don't need site isolation. | 110 // Extension renderers don't need site isolation. |
| 110 return false; | 111 return false; |
| 111 } | 112 } |
| 112 | 113 |
| 113 } // namespace apps | 114 } // namespace apps |
| OLD | NEW |