| Index: content/common/feature_policy/feature_policy.cc
|
| diff --git a/content/common/feature_policy/feature_policy.cc b/content/common/feature_policy/feature_policy.cc
|
| index 0cf620b19da0fe6c8fe08230287796628f07bd1c..5ebdd7114f8e40fbe3d876e39599a798d21de0c5 100644
|
| --- a/content/common/feature_policy/feature_policy.cc
|
| +++ b/content/common/feature_policy/feature_policy.cc
|
| @@ -86,6 +86,8 @@ ParsedFeaturePolicyDeclaration::~ParsedFeaturePolicyDeclaration() {}
|
|
|
| FeaturePolicy::Whitelist::Whitelist() : matches_all_origins_(false) {}
|
|
|
| +FeaturePolicy::Whitelist::Whitelist(const Whitelist& rhs) = default;
|
| +
|
| FeaturePolicy::Whitelist::~Whitelist() = default;
|
|
|
| void FeaturePolicy::Whitelist::Add(const url::Origin& origin) {
|
| @@ -121,8 +123,18 @@ std::unique_ptr<FeaturePolicy> FeaturePolicy::CreateFromParentPolicy(
|
| GetDefaultFeatureList());
|
| }
|
|
|
| -void FeaturePolicy::ResetOrigin(const url::Origin& origin) {
|
| - origin_ = url::Origin(origin);
|
| +// static
|
| +std::unique_ptr<FeaturePolicy> FeaturePolicy::CreateFromPolicyWithOrigin(
|
| + const FeaturePolicy& policy,
|
| + const url::Origin& origin) {
|
| + std::unique_ptr<FeaturePolicy> new_policy =
|
| + base::WrapUnique(new FeaturePolicy(origin, policy.feature_list_));
|
| + new_policy->inherited_policies_ = policy.inherited_policies_;
|
| + for (const auto& feature : policy.whitelists_) {
|
| + new_policy->whitelists_[feature.first] =
|
| + base::WrapUnique(new Whitelist(*feature.second));
|
| + }
|
| + return new_policy;
|
| }
|
|
|
| bool FeaturePolicy::IsFeatureEnabled(
|
|
|