Index: content/child/blink_platform_impl.cc |
diff --git a/content/child/blink_platform_impl.cc b/content/child/blink_platform_impl.cc |
index b2b964a690c121637c09c5e9385c0e7f1378518e..0b41bff1199ca0e08cb56193556e4d79a0bf3cbe 100644 |
--- a/content/child/blink_platform_impl.cc |
+++ b/content/child/blink_platform_impl.cc |
@@ -39,6 +39,7 @@ |
#include "content/app/strings/grit/content_strings.h" |
#include "content/child/child_thread_impl.h" |
#include "content/child/content_child_helpers.h" |
+#include "content/child/feature_policy/feature_policy_platform.h" |
#include "content/child/notifications/notification_dispatcher.h" |
#include "content/child/notifications/notification_manager.h" |
#include "content/child/push_messaging/push_provider.h" |
@@ -850,4 +851,25 @@ int BlinkPlatformImpl::domKeyEnumFromString(const WebString& key_string) { |
ui::KeycodeConverter::KeyStringToDomKey(key_string.utf8())); |
} |
+blink::WebFeaturePolicy* BlinkPlatformImpl::createFeaturePolicy( |
+ const blink::WebFeaturePolicy* parent_policy, |
+ const blink::WebParsedFeaturePolicyHeader& container_policy, |
+ const blink::WebParsedFeaturePolicyHeader& policy_header, |
+ const blink::WebSecurityOrigin& origin) { |
+ std::unique_ptr<FeaturePolicy> policy = FeaturePolicy::CreateFromParentPolicy( |
+ static_cast<const FeaturePolicy*>(parent_policy), |
+ FeaturePolicyHeaderFromWeb(container_policy), url::Origin(origin)); |
+ policy->SetHeaderPolicy(FeaturePolicyHeaderFromWeb(policy_header)); |
+ return policy.release(); |
+} |
+ |
+blink::WebFeaturePolicy* BlinkPlatformImpl::duplicateFeaturePolicyWithOrigin( |
+ const blink::WebFeaturePolicy& policy, |
+ const blink::WebSecurityOrigin& new_origin) { |
+ std::unique_ptr<FeaturePolicy> new_policy = |
+ FeaturePolicy::CreateFromPolicyWithOrigin( |
+ static_cast<const FeaturePolicy&>(policy), url::Origin(new_origin)); |
+ return new_policy.release(); |
+} |
+ |
} // namespace content |