Index: content/renderer/render_frame_impl.cc |
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc |
index 593d5755c04a9acec50d2382b64e560eafe1ec75..e1a960e163332bf7dda6475f4ebcb75740c7e4de 100644 |
--- a/content/renderer/render_frame_impl.cc |
+++ b/content/renderer/render_frame_impl.cc |
@@ -877,6 +877,22 @@ double ConvertToBlinkTime(const base::TimeTicks& time_ticks) { |
return (time_ticks - base::TimeTicks()).InSecondsF(); |
} |
+std::vector<FeaturePolicyParsedWhitelist> ToFeaturePolicyParsedWhitelist( |
+ const blink::WebVector<blink::WebFeaturePolicy::ParsedWhitelist>& |
+ 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::WebString& web_origin : web_whitelist.origins) |
+ whitelist.origins.push_back(web_origin.utf8()); |
+ result.push_back(whitelist); |
+ } |
+ return result; |
+} |
+ |
} // namespace |
struct RenderFrameImpl::PendingFileChooser { |
@@ -3110,9 +3126,10 @@ 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::WebVector<blink::WebFeaturePolicy::ParsedWhitelist>& |
+ parsed_header) { |
+ Send(new FrameHostMsg_DidSetFeaturePolicyHeader( |
+ routing_id_, ToFeaturePolicyParsedWhitelist(parsed_header))); |
} |
void RenderFrameImpl::didAddContentSecurityPolicy( |