| Index: extensions/renderer/dispatcher.cc
|
| diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc
|
| index 7f3a28f9c9eb59daa8517ec2869169e4885d5aa7..fa73ccc26163ac80378e6e857fc7ce98d3ae55ae 100644
|
| --- a/extensions/renderer/dispatcher.cc
|
| +++ b/extensions/renderer/dispatcher.cc
|
| @@ -1069,6 +1069,7 @@
|
|
|
| void Dispatcher::OnSetChannel(int channel) {
|
| delegate_->SetChannel(channel);
|
| + AddChannelSpecificFeatures();
|
| }
|
|
|
| void Dispatcher::OnSetScriptingWhitelist(
|
| @@ -1599,4 +1600,13 @@
|
| }
|
| }
|
|
|
| +void Dispatcher::AddChannelSpecificFeatures() {
|
| + // chrome-extension: resources should be allowed to register a Service Worker.
|
| + if (FeatureProvider::GetBehaviorFeature(BehaviorFeature::kServiceWorker)
|
| + ->IsAvailableToEnvironment()
|
| + .is_available())
|
| + WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers(
|
| + WebString::fromUTF8(kExtensionScheme));
|
| +}
|
| +
|
| } // namespace extensions
|
|
|