Index: third_party/WebKit/Source/core/dom/SecurityContext.cpp |
diff --git a/third_party/WebKit/Source/core/dom/SecurityContext.cpp b/third_party/WebKit/Source/core/dom/SecurityContext.cpp |
index efbb7d00dbe4b6d9fdba4d3098a1dc0c7c18d85d..8a99a62d8602eef5a07754144553e7d5785a33c0 100644 |
--- a/third_party/WebKit/Source/core/dom/SecurityContext.cpp |
+++ b/third_party/WebKit/Source/core/dom/SecurityContext.cpp |
@@ -29,6 +29,7 @@ |
#include "core/frame/csp/ContentSecurityPolicy.h" |
#include "platform/RuntimeEnabledFeatures.h" |
#include "platform/weborigin/SecurityOrigin.h" |
+#include "public/platform/Platform.h" |
namespace blink { |
@@ -46,6 +47,7 @@ DEFINE_TRACE(SecurityContext) { |
void SecurityContext::setSecurityOrigin( |
PassRefPtr<SecurityOrigin> securityOrigin) { |
m_securityOrigin = securityOrigin; |
+ updateFeaturePolicyOrigin(); |
} |
void SecurityContext::setContentSecurityPolicy( |
@@ -99,15 +101,23 @@ void SecurityContext::enforceSuborigin(const Suborigin& suborigin) { |
didUpdateSecurityOrigin(); |
} |
-void SecurityContext::setFeaturePolicyFromHeader( |
+void SecurityContext::initializeFeaturePolicy( |
const WebParsedFeaturePolicyHeader& parsedHeader, |
- FeaturePolicy* parentFeaturePolicy) { |
+ const WebFeaturePolicy* parentFeaturePolicy) { |
DCHECK(!m_featurePolicy); |
// TODO(iclelland): Use the frame owner properties here to pass the frame |
// policy, if it exists. |
- m_featurePolicy = FeaturePolicy::createFromParentPolicy( |
- parentFeaturePolicy, nullptr, m_securityOrigin); |
- m_featurePolicy->setHeaderPolicy(parsedHeader); |
+ WebParsedFeaturePolicyHeader containerPolicy; |
+ WebSecurityOrigin origin = WebSecurityOrigin(m_securityOrigin); |
+ m_featurePolicy.reset(Platform::current()->createFeaturePolicy( |
+ parentFeaturePolicy, containerPolicy, parsedHeader, origin)); |
+} |
+ |
+void SecurityContext::updateFeaturePolicyOrigin() { |
+ if (!m_featurePolicy) |
+ return; |
+ Platform::current()->updateFeaturePolicyOrigin( |
+ m_featurePolicy.get(), WebSecurityOrigin(m_securityOrigin)); |
raymes
2017/02/28 00:39:51
This still worries me a bit just because we've alw
iclelland
2017/02/28 05:25:56
With this CL, we would recalculate the feature pol
|
} |
} // namespace blink |