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 |