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

Side by Side Diff: content/common/feature_policy/feature_policy.cc

Issue 2729623003: TEST ONLY: Duplicate FP rather than modifying in place (Closed)
Patch Set: Rebase against parent CL Created 3 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/feature_policy/feature_policy.h" 5 #include "content/common/feature_policy/feature_policy.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/stl_util.h" 9 #include "base/stl_util.h"
10 10
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 matches_all_origins(matches_all_origins), 79 matches_all_origins(matches_all_origins),
80 origins(origins) {} 80 origins(origins) {}
81 81
82 ParsedFeaturePolicyDeclaration::ParsedFeaturePolicyDeclaration( 82 ParsedFeaturePolicyDeclaration::ParsedFeaturePolicyDeclaration(
83 const ParsedFeaturePolicyDeclaration& rhs) = default; 83 const ParsedFeaturePolicyDeclaration& rhs) = default;
84 84
85 ParsedFeaturePolicyDeclaration::~ParsedFeaturePolicyDeclaration() {} 85 ParsedFeaturePolicyDeclaration::~ParsedFeaturePolicyDeclaration() {}
86 86
87 FeaturePolicy::Whitelist::Whitelist() : matches_all_origins_(false) {} 87 FeaturePolicy::Whitelist::Whitelist() : matches_all_origins_(false) {}
88 88
89 FeaturePolicy::Whitelist::Whitelist(const Whitelist& rhs) = default;
90
89 FeaturePolicy::Whitelist::~Whitelist() = default; 91 FeaturePolicy::Whitelist::~Whitelist() = default;
90 92
91 void FeaturePolicy::Whitelist::Add(const url::Origin& origin) { 93 void FeaturePolicy::Whitelist::Add(const url::Origin& origin) {
92 origins_.push_back(origin); 94 origins_.push_back(origin);
93 } 95 }
94 96
95 void FeaturePolicy::Whitelist::AddAll() { 97 void FeaturePolicy::Whitelist::AddAll() {
96 matches_all_origins_ = true; 98 matches_all_origins_ = true;
97 } 99 }
98 100
(...skipping 15 matching lines...) Expand all
114 116
115 // static 117 // static
116 std::unique_ptr<FeaturePolicy> FeaturePolicy::CreateFromParentPolicy( 118 std::unique_ptr<FeaturePolicy> FeaturePolicy::CreateFromParentPolicy(
117 const FeaturePolicy* parent_policy, 119 const FeaturePolicy* parent_policy,
118 const ParsedFeaturePolicyHeader& container_policy, 120 const ParsedFeaturePolicyHeader& container_policy,
119 const url::Origin& origin) { 121 const url::Origin& origin) {
120 return CreateFromParentPolicy(parent_policy, container_policy, origin, 122 return CreateFromParentPolicy(parent_policy, container_policy, origin,
121 GetDefaultFeatureList()); 123 GetDefaultFeatureList());
122 } 124 }
123 125
124 void FeaturePolicy::ResetOrigin(const url::Origin& origin) { 126 // static
125 origin_ = url::Origin(origin); 127 std::unique_ptr<FeaturePolicy> FeaturePolicy::CreateFromPolicyWithOrigin(
128 const FeaturePolicy& policy,
129 const url::Origin& origin) {
130 std::unique_ptr<FeaturePolicy> new_policy =
131 base::WrapUnique(new FeaturePolicy(origin, policy.feature_list_));
132 new_policy->inherited_policies_ = policy.inherited_policies_;
133 for (const auto& feature : policy.whitelists_) {
134 new_policy->whitelists_[feature.first] =
135 base::WrapUnique(new Whitelist(*feature.second));
136 }
137 return new_policy;
126 } 138 }
127 139
128 bool FeaturePolicy::IsFeatureEnabled( 140 bool FeaturePolicy::IsFeatureEnabled(
129 blink::WebFeaturePolicyFeature feature) const { 141 blink::WebFeaturePolicyFeature feature) const {
130 return IsFeatureEnabledForOrigin(feature, origin_); 142 return IsFeatureEnabledForOrigin(feature, origin_);
131 } 143 }
132 144
133 bool FeaturePolicy::IsFeatureEnabledForOrigin( 145 bool FeaturePolicy::IsFeatureEnabledForOrigin(
134 blink::WebFeaturePolicyFeature feature, 146 blink::WebFeaturePolicyFeature feature,
135 const url::Origin& origin) const { 147 const url::Origin& origin) const {
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 {blink::WebFeaturePolicyFeature::Push, &kPushFeature}, 247 {blink::WebFeaturePolicyFeature::Push, &kPushFeature},
236 {blink::WebFeaturePolicyFeature::SyncScript, &kSyncScript}, 248 {blink::WebFeaturePolicyFeature::SyncScript, &kSyncScript},
237 {blink::WebFeaturePolicyFeature::SyncXHR, &kSyncXHR}, 249 {blink::WebFeaturePolicyFeature::SyncXHR, &kSyncXHR},
238 {blink::WebFeaturePolicyFeature::Usermedia, &kUsermedia}, 250 {blink::WebFeaturePolicyFeature::Usermedia, &kUsermedia},
239 {blink::WebFeaturePolicyFeature::Vibrate, &kVibrateFeature}, 251 {blink::WebFeaturePolicyFeature::Vibrate, &kVibrateFeature},
240 {blink::WebFeaturePolicyFeature::WebRTC, &kWebRTC}})); 252 {blink::WebFeaturePolicyFeature::WebRTC, &kWebRTC}}));
241 return default_feature_list; 253 return default_feature_list;
242 } 254 }
243 255
244 } // namespace content 256 } // namespace content
OLDNEW
« no previous file with comments | « content/common/feature_policy/feature_policy.h ('k') | third_party/WebKit/Source/core/dom/SecurityContext.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698