Index: Source/core/workers/WorkerGlobalScope.cpp |
diff --git a/Source/core/workers/WorkerGlobalScope.cpp b/Source/core/workers/WorkerGlobalScope.cpp |
index 42a5da82d953788966b4210b54d52fe8f9671b57..631b3dc98124d0b1e3cdf16f4a1a25aa83d98293 100644 |
--- a/Source/core/workers/WorkerGlobalScope.cpp |
+++ b/Source/core/workers/WorkerGlobalScope.cpp |
@@ -103,8 +103,11 @@ WorkerGlobalScope::~WorkerGlobalScope() |
void WorkerGlobalScope::applyContentSecurityPolicyFromString(const String& policy, ContentSecurityPolicyHeaderType contentSecurityPolicyType) |
{ |
- setContentSecurityPolicy(ContentSecurityPolicy::create(this)); |
- contentSecurityPolicy()->didReceiveHeader(policy, contentSecurityPolicyType, ContentSecurityPolicyHeaderSourceHTTP); |
+ // FIXME: This doesn't match the CSP2 spec's Worker behavior (see https://w3c.github.io/webappsec/specs/content-security-policy/#processing-model-workers) |
+ RefPtr<ContentSecurityPolicy> csp = ContentSecurityPolicy::create(); |
+ csp->didReceiveHeader(policy, contentSecurityPolicyType, ContentSecurityPolicyHeaderSourceHTTP); |
+ csp->bindToExecutionContext(executionContext()); |
+ setContentSecurityPolicy(csp); |
} |
ExecutionContext* WorkerGlobalScope::executionContext() const |