Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 00f17b47be2c3ea857ea9936a7d166eba36af23f..b731ebec3158738348d7aaa111932ea04961cc3b 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -878,6 +878,21 @@ double ConvertToBlinkTime(const base::TimeTicks& time_ticks) { |
return (time_ticks - base::TimeTicks()).InSecondsF(); |
} |
+std::vector<FeaturePolicyParsedWhitelist> ToFeaturePolicyParsedWhitelist( |
+ const blink::WebParsedFeaturePolicy& web_parsed_whitelists) { |
+ std::vector<FeaturePolicyParsedWhitelist> result; |
+ for (const blink::WebFeaturePolicy::ParsedWhitelist& web_whitelist : |
+ web_parsed_whitelists) { |
+ FeaturePolicyParsedWhitelist whitelist; |
+ whitelist.feature_name = web_whitelist.featureName.utf8(); |
+ whitelist.matches_all_origins = web_whitelist.matchesAllOrigins; |
+ for (const blink::WebSecurityOrigin& web_origin : web_whitelist.origins) |
+ whitelist.origins.push_back(web_origin); |
+ result.push_back(whitelist); |
+ } |
+ return result; |
+} |
+ |
} // namespace |
struct RenderFrameImpl::PendingFileChooser { |
@@ -3132,9 +3147,9 @@ void RenderFrameImpl::didChangeSandboxFlags(blink::WebFrame* child_frame, |
} |
void RenderFrameImpl::didSetFeaturePolicyHeader( |
- const blink::WebString& header_value) { |
- Send(new FrameHostMsg_DidSetFeaturePolicyHeader(routing_id_, |
- header_value.utf8())); |
+ const blink::WebParsedFeaturePolicy& parsed_header) { |
+ Send(new FrameHostMsg_DidSetFeaturePolicyHeader( |
+ routing_id_, ToFeaturePolicyParsedWhitelist(parsed_header))); |
} |
void RenderFrameImpl::didAddContentSecurityPolicy( |