Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(582)

Unified Diff: content/browser/frame_host/render_frame_host_impl.cc

Issue 2655663004: Introduce content-side Feature Policy object and maintain in parallel with renderer policy. (Closed)
Patch Set: Simplify FP mirroring logic; move most of it to RFHI Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/frame_host/render_frame_host_impl.cc
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 6551608a4d8b35f06e988e1b3b1ebc68316609ef..a1badc0728ad9df0fc3c0e050194c4a4d7e41491 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -1824,6 +1824,8 @@ void RenderFrameHostImpl::OnDidChangeName(const std::string& name,
void RenderFrameHostImpl::OnDidSetFeaturePolicyHeader(
const ParsedFeaturePolicyHeader& parsed_header) {
frame_tree_node()->SetFeaturePolicyHeader(parsed_header);
+ ResetFeaturePolicy();
+ feature_policy_->SetHeaderPolicy(parsed_header);
}
void RenderFrameHostImpl::OnDidAddContentSecurityPolicy(
@@ -3361,6 +3363,18 @@ void RenderFrameHostImpl::DeleteWebBluetoothService(
web_bluetooth_services_.erase(it);
}
+const FeaturePolicy* RenderFrameHostImpl::GetFeaturePolicy() {
alexmos 2017/02/09 05:59:50 This is a simple getter, so it could just go inlin
iclelland 2017/02/09 17:16:17 Done.
+ return feature_policy_.get();
+}
+
+void RenderFrameHostImpl::ResetFeaturePolicy() {
+ RenderFrameHostImpl* parent_frame_host = GetParent();
+ const FeaturePolicy* parent_policy =
+ parent_frame_host ? parent_frame_host->GetFeaturePolicy() : nullptr;
+ feature_policy_ = FeaturePolicy::CreateFromParentPolicy(
+ parent_policy, last_committed_origin_);
+}
+
void RenderFrameHostImpl::Create(
const service_manager::Identity& remote_identity,
media::mojom::InterfaceFactoryRequest request) {

Powered by Google App Engine
This is Rietveld 408576698