Index: Source/core/loader/FrameLoader.cpp |
diff --git a/Source/core/loader/FrameLoader.cpp b/Source/core/loader/FrameLoader.cpp |
index f079d040b25872e1cbbc989bfa23f5bc7c052b2e..05796949ff95a2d8ab539c521fa8b89b6a4a001f 100644 |
--- a/Source/core/loader/FrameLoader.cpp |
+++ b/Source/core/loader/FrameLoader.cpp |
@@ -380,7 +380,11 @@ void FrameLoader::didBeginDocument(bool dispatch) |
if (dispatch) |
dispatchDidClearDocumentOfWindowObject(); |
- m_frame->document()->initContentSecurityPolicy(m_documentLoader ? ContentSecurityPolicyResponseHeaders(m_documentLoader->response()) : ContentSecurityPolicyResponseHeaders()); |
+ // FIXME: Move this to DocumentLoader::responseReceived, next to the X-Frame-Options checks. |
+ RefPtr<ContentSecurityPolicy> csp = ContentSecurityPolicy::create(); |
+ if (m_documentLoader) |
+ csp->didReceiveHeaders(ContentSecurityPolicyResponseHeaders(m_documentLoader->response())); |
+ m_frame->document()->initContentSecurityPolicy(csp); |
if (!m_frame->document()->contentSecurityPolicy()->allowAncestors(m_frame)) { |
didFailContentSecurityPolicyCheck(this); |