Index: chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc |
diff --git a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc b/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc |
index 2b5a5dd1911263602e342a7fb0a2644ff8273f0c..b219235cb7a30466da47ebfbfb30a6f09b39b126 100644 |
--- a/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc |
+++ b/chrome/renderer/extensions/chrome_extensions_dispatcher_delegate.cc |
@@ -27,6 +27,7 @@ |
#include "components/version_info/version_info.h" |
#include "content/public/renderer/render_thread.h" |
#include "content/public/renderer/render_view.h" |
+#include "extensions/common/constants.h" |
#include "extensions/common/extension.h" |
#include "extensions/common/feature_switch.h" |
#include "extensions/common/permissions/manifest_permission_set.h" |
@@ -259,4 +260,9 @@ void ChromeExtensionsDispatcherDelegate::OnActiveExtensionsUpdated( |
void ChromeExtensionsDispatcherDelegate::SetChannel(int channel) { |
extensions::SetCurrentChannel(static_cast<version_info::Channel>(channel)); |
+ if (extensions::GetCurrentChannel() == version_info::Channel::UNKNOWN) { |
+ // chrome-extension: resources should be allowed to register ServiceWorkers. |
+ blink::WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers( |
+ blink::WebString::fromUTF8(extensions::kExtensionScheme)); |
+ } |
} |