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/renderer/dispatcher.h" | 5 #include "extensions/renderer/dispatcher.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/alias.h" | 10 #include "base/debug/alias.h" |
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 kInitialExtensionIdleHandlerDelayMs); | 203 kInitialExtensionIdleHandlerDelayMs); |
204 } | 204 } |
205 | 205 |
206 script_context_set_.reset(new ScriptContextSet(&active_extension_ids_)); | 206 script_context_set_.reset(new ScriptContextSet(&active_extension_ids_)); |
207 user_script_set_manager_.reset(new UserScriptSetManager()); | 207 user_script_set_manager_.reset(new UserScriptSetManager()); |
208 script_injection_manager_.reset( | 208 script_injection_manager_.reset( |
209 new ScriptInjectionManager(user_script_set_manager_.get())); | 209 new ScriptInjectionManager(user_script_set_manager_.get())); |
210 user_script_set_manager_observer_.Add(user_script_set_manager_.get()); | 210 user_script_set_manager_observer_.Add(user_script_set_manager_.get()); |
211 request_sender_.reset(new RequestSender(this)); | 211 request_sender_.reset(new RequestSender(this)); |
212 PopulateSourceMap(); | 212 PopulateSourceMap(); |
| 213 |
| 214 // chrome-extensions: and chrome-extensions-resource: schemes should be |
| 215 // treated as secure because communication with them is entirely in the |
| 216 // browser, so there is no danger of manipulation or eavesdropping on |
| 217 // communication with them by third parties. |
| 218 WebString extension_scheme(base::ASCIIToUTF16(kExtensionScheme)); |
| 219 blink::WebSecurityPolicy::registerURLSchemeAsSecure(extension_scheme); |
| 220 |
| 221 WebString extension_resource_scheme(base::ASCIIToUTF16( |
| 222 kExtensionResourceScheme)); |
| 223 blink::WebSecurityPolicy::registerURLSchemeAsSecure( |
| 224 extension_resource_scheme); |
| 225 |
| 226 // chrome-extension: and chrome-extension-resource: resources should be |
| 227 // allowed to receive CORS requests. |
| 228 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_scheme); |
| 229 WebSecurityPolicy::registerURLSchemeAsCORSEnabled(extension_resource_scheme); |
| 230 |
| 231 // chrome-extension: resources should bypass Content Security Policy checks |
| 232 // when included in protected resources. |
| 233 WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy( |
| 234 extension_scheme); |
| 235 WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy( |
| 236 extension_resource_scheme); |
213 } | 237 } |
214 | 238 |
215 Dispatcher::~Dispatcher() { | 239 Dispatcher::~Dispatcher() { |
216 } | 240 } |
217 | 241 |
218 void Dispatcher::OnRenderFrameCreated(content::RenderFrame* render_frame) { | 242 void Dispatcher::OnRenderFrameCreated(content::RenderFrame* render_frame) { |
219 script_injection_manager_->OnRenderFrameCreated(render_frame); | 243 script_injection_manager_->OnRenderFrameCreated(render_frame); |
220 } | 244 } |
221 | 245 |
222 bool Dispatcher::IsExtensionActive(const std::string& extension_id) const { | 246 bool Dispatcher::IsExtensionActive(const std::string& extension_id) const { |
(...skipping 1229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1452 void Dispatcher::AddChannelSpecificFeatures() { | 1476 void Dispatcher::AddChannelSpecificFeatures() { |
1453 // chrome-extension: resources should be allowed to register a Service Worker. | 1477 // chrome-extension: resources should be allowed to register a Service Worker. |
1454 if (FeatureProvider::GetBehaviorFeature(BehaviorFeature::kServiceWorker) | 1478 if (FeatureProvider::GetBehaviorFeature(BehaviorFeature::kServiceWorker) |
1455 ->IsAvailableToEnvironment() | 1479 ->IsAvailableToEnvironment() |
1456 .is_available()) | 1480 .is_available()) |
1457 WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers( | 1481 WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers( |
1458 WebString::fromUTF8(kExtensionScheme)); | 1482 WebString::fromUTF8(kExtensionScheme)); |
1459 } | 1483 } |
1460 | 1484 |
1461 } // namespace extensions | 1485 } // namespace extensions |
OLD | NEW |