| Index: Source/core/dom/Document.cpp
|
| diff --git a/Source/core/dom/Document.cpp b/Source/core/dom/Document.cpp
|
| index a33f448e3564002265bc623e3034c645be6f8483..e48f8e1ac893774b02bb55e74884c08b93010d73 100644
|
| --- a/Source/core/dom/Document.cpp
|
| +++ b/Source/core/dom/Document.cpp
|
| @@ -2936,6 +2936,8 @@ void Document::processHttpEquiv(const AtomicString& equiv, const AtomicString& c
|
|
|
| void Document::processHttpEquivContentSecurityPolicy(const AtomicString& equiv, const AtomicString& content)
|
| {
|
| + if (import() && import()->isChild())
|
| + return;
|
| if (equalIgnoringCase(equiv, "content-security-policy"))
|
| contentSecurityPolicy()->didReceiveHeader(content, ContentSecurityPolicy::Enforce, ContentSecurityPolicy::HeaderSourceMeta);
|
| else if (equalIgnoringCase(equiv, "content-security-policy-report-only"))
|
| @@ -4542,6 +4544,13 @@ void Document::initSecurityContext()
|
| initSecurityContext(DocumentInit(m_url, m_frame, contextDocument(), m_import));
|
| }
|
|
|
| +static PassRefPtr<ContentSecurityPolicy> contentSecurityPolicyFor(Document* document)
|
| +{
|
| + if (document->import() && document->import()->isChild())
|
| + return document->import()->master()->contentSecurityPolicy();
|
| + return ContentSecurityPolicy::create(document);
|
| +}
|
| +
|
| void Document::initSecurityContext(const DocumentInit& initializer)
|
| {
|
| if (haveInitializedSecurityOrigin()) {
|
| @@ -4563,7 +4572,7 @@ void Document::initSecurityContext(const DocumentInit& initializer)
|
| m_cookieURL = m_url;
|
| enforceSandboxFlags(initializer.sandboxFlags());
|
| setSecurityOrigin(isSandboxed(SandboxOrigin) ? SecurityOrigin::createUnique() : SecurityOrigin::create(m_url));
|
| - setContentSecurityPolicy(ContentSecurityPolicy::create(this));
|
| + setContentSecurityPolicy(contentSecurityPolicyFor(this));
|
|
|
| if (Settings* settings = initializer.settings()) {
|
| if (!settings->webSecurityEnabled()) {
|
|
|