| Index: extensions/renderer/dispatcher.cc
|
| diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc
|
| index fa07dd1a51536cacfb530961aeff7e2612aaca7d..4fbc49b64f5334272b5f4d863064f61a5ece33a1 100644
|
| --- a/extensions/renderer/dispatcher.cc
|
| +++ b/extensions/renderer/dispatcher.cc
|
| @@ -223,6 +223,8 @@ base::LazyInstance<ServiceWorkerScriptContextSet>
|
|
|
| } // namespace
|
|
|
| +// Note that we can't use Blink public APIs in the constructor becase Blink
|
| +// is not initialized at the point we create Dispatcher.
|
| Dispatcher::Dispatcher(DispatcherDelegate* delegate)
|
| : delegate_(delegate),
|
| content_watcher_(new ContentWatcher()),
|
| @@ -250,35 +252,6 @@ Dispatcher::Dispatcher(DispatcherDelegate* delegate)
|
| request_sender_.reset(new RequestSender(this));
|
| PopulateSourceMap();
|
| WakeEventPage::Get()->Init(content::RenderThread::Get());
|
| -
|
| - // WebSecurityPolicy whitelists. They should be registered for both
|
| - // chrome-extension: and chrome-extension-resource.
|
| - using RegisterFunction = void (*)(const WebString&);
|
| - RegisterFunction register_functions[] = {
|
| - // Treat as secure because communication with them is entirely in the
|
| - // browser, so there is no danger of manipulation or eavesdropping on
|
| - // communication with them by third parties.
|
| - WebSecurityPolicy::registerURLSchemeAsSecure,
|
| - // As far as Blink is concerned, they should be allowed to receive CORS
|
| - // requests. At the Extensions layer, requests will actually be blocked
|
| - // unless overridden by the web_accessible_resources manifest key.
|
| - // TODO(kalman): See what happens with a service worker.
|
| - WebSecurityPolicy::registerURLSchemeAsCORSEnabled,
|
| - // Resources should bypass Content Security Policy checks when included in
|
| - // protected resources. TODO(kalman): What are "protected resources"?
|
| - WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy,
|
| - // Extension resources are HTTP-like and safe to expose to the fetch API.
|
| - // The rules for the fetch API are consistent with XHR.
|
| - WebSecurityPolicy::registerURLSchemeAsSupportingFetchAPI,
|
| - };
|
| -
|
| - WebString extension_scheme(base::ASCIIToUTF16(kExtensionScheme));
|
| - WebString extension_resource_scheme(base::ASCIIToUTF16(
|
| - kExtensionResourceScheme));
|
| - for (RegisterFunction func : register_functions) {
|
| - func(extension_scheme);
|
| - func(extension_resource_scheme);
|
| - }
|
| }
|
|
|
| Dispatcher::~Dispatcher() {
|
| @@ -866,6 +839,35 @@ bool Dispatcher::OnControlMessageReceived(const IPC::Message& message) {
|
| void Dispatcher::WebKitInitialized() {
|
| RenderThread::Get()->RegisterExtension(SafeBuiltins::CreateV8Extension());
|
|
|
| + // WebSecurityPolicy whitelists. They should be registered for both
|
| + // chrome-extension: and chrome-extension-resource.
|
| + using RegisterFunction = void (*)(const WebString&);
|
| + RegisterFunction register_functions[] = {
|
| + // Treat as secure because communication with them is entirely in the
|
| + // browser, so there is no danger of manipulation or eavesdropping on
|
| + // communication with them by third parties.
|
| + WebSecurityPolicy::registerURLSchemeAsSecure,
|
| + // As far as Blink is concerned, they should be allowed to receive CORS
|
| + // requests. At the Extensions layer, requests will actually be blocked
|
| + // unless overridden by the web_accessible_resources manifest key.
|
| + // TODO(kalman): See what happens with a service worker.
|
| + WebSecurityPolicy::registerURLSchemeAsCORSEnabled,
|
| + // Resources should bypass Content Security Policy checks when included in
|
| + // protected resources. TODO(kalman): What are "protected resources"?
|
| + WebSecurityPolicy::registerURLSchemeAsBypassingContentSecurityPolicy,
|
| + // Extension resources are HTTP-like and safe to expose to the fetch API.
|
| + // The rules for the fetch API are consistent with XHR.
|
| + WebSecurityPolicy::registerURLSchemeAsSupportingFetchAPI,
|
| + };
|
| +
|
| + WebString extension_scheme(base::ASCIIToUTF16(kExtensionScheme));
|
| + WebString extension_resource_scheme(base::ASCIIToUTF16(
|
| + kExtensionResourceScheme));
|
| + for (RegisterFunction func : register_functions) {
|
| + func(extension_scheme);
|
| + func(extension_resource_scheme);
|
| + }
|
| +
|
| // For extensions, we want to ensure we call the IdleHandler every so often,
|
| // even if the extension keeps up activity.
|
| if (set_idle_notifications_) {
|
|
|