diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc')
-rw-r--r-- | chromium/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc | 63 |
1 files changed, 14 insertions, 49 deletions
diff --git a/chromium/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc b/chromium/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc index 2c0cb2e96b3..0c08fe742ce 100644 --- a/chromium/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc +++ b/chromium/third_party/blink/renderer/core/feature_policy/feature_policy_parser.cc @@ -67,7 +67,8 @@ ParsedFeaturePolicy FeaturePolicyParser::Parse( return allowlists; } - std::bitset<static_cast<size_t>(mojom::FeaturePolicyFeature::kMaxValue) + 1> + std::bitset< + static_cast<size_t>(mojom::blink::FeaturePolicyFeature::kMaxValue) + 1> features_specified; HashSet<FeaturePolicyAllowlistType> allowlist_types_used; @@ -114,7 +115,8 @@ ParsedFeaturePolicy FeaturePolicyParser::Parse( continue; } - mojom::FeaturePolicyFeature feature = feature_names.at(feature_name); + mojom::blink::FeaturePolicyFeature feature = + feature_names.at(feature_name); mojom::PolicyValueType feature_type = FeaturePolicy::GetDefaultFeatureList().at(feature).second; // If a policy has already been specified for the current feature, drop @@ -143,30 +145,6 @@ ParsedFeaturePolicy FeaturePolicyParser::Parse( bool allowlist_includes_none = false; bool allowlist_includes_origin = false; - // Detect usage of UnoptimizedImagePolicies origin trial. - if (feature == mojom::FeaturePolicyFeature::kOversizedImages || - feature == mojom::FeaturePolicyFeature::kUnoptimizedLossyImages || - feature == mojom::FeaturePolicyFeature::kUnoptimizedLosslessImages || - feature == - mojom::FeaturePolicyFeature::kUnoptimizedLosslessImagesStrict) { - if (delegate) { - delegate->CountFeaturePolicyUsage( - mojom::WebFeature::kUnoptimizedImagePolicies); - } - // Don't analyze allowlists for origin trial features. - count_allowlist_type = false; - } - - // Detect usage of UnsizedMediaPolicy origin trial - if (feature == mojom::FeaturePolicyFeature::kUnsizedMedia) { - if (delegate) { - delegate->CountFeaturePolicyUsage( - mojom::WebFeature::kUnsizedMediaPolicy); - } - // Don't analyze allowlists for origin trial features. - count_allowlist_type = false; - } - ParsedFeaturePolicyDeclaration allowlist(feature, feature_type); // TODO(loonybear): fallback value should be parsed from the new syntax. allowlist.fallback_value = GetFallbackValueForFeature(feature); @@ -359,21 +337,7 @@ ParsedFeaturePolicy FeaturePolicyParser::Parse( // parse the policy value for each parameterized feature, and for non // parameterized feature (i.e. boolean-type policy value). PolicyValue FeaturePolicyParser::GetFallbackValueForFeature( - mojom::FeaturePolicyFeature feature) { - if (feature == mojom::FeaturePolicyFeature::kOversizedImages) { - return PolicyValue(2.0); - } - if (feature == mojom::FeaturePolicyFeature::kUnoptimizedLossyImages) { - // Lossy images default to at most 0.5 bytes per pixel. - return PolicyValue(0.5); - } - if (feature == mojom::FeaturePolicyFeature::kUnoptimizedLosslessImages || - feature == - mojom::FeaturePolicyFeature::kUnoptimizedLosslessImagesStrict) { - // Lossless images default to at most 1 byte per pixel. - return PolicyValue(1.0); - } - + mojom::blink::FeaturePolicyFeature feature) { return PolicyValue(false); } @@ -423,7 +387,7 @@ void FeaturePolicyParser::ParseValueForFuzzer( ParseValueForType(feature_type, value_string, &ok); } -bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature, +bool IsFeatureDeclared(mojom::blink::FeaturePolicyFeature feature, const ParsedFeaturePolicy& policy) { return std::any_of(policy.begin(), policy.end(), [feature](const auto& declaration) { @@ -431,7 +395,7 @@ bool IsFeatureDeclared(mojom::FeaturePolicyFeature feature, }); } -bool RemoveFeatureIfPresent(mojom::FeaturePolicyFeature feature, +bool RemoveFeatureIfPresent(mojom::blink::FeaturePolicyFeature feature, ParsedFeaturePolicy& policy) { auto new_end = std::remove_if(policy.begin(), policy.end(), [feature](const auto& declaration) { @@ -443,7 +407,7 @@ bool RemoveFeatureIfPresent(mojom::FeaturePolicyFeature feature, return true; } -bool DisallowFeatureIfNotPresent(mojom::FeaturePolicyFeature feature, +bool DisallowFeatureIfNotPresent(mojom::blink::FeaturePolicyFeature feature, ParsedFeaturePolicy& policy) { if (IsFeatureDeclared(feature, policy)) return false; @@ -454,8 +418,9 @@ bool DisallowFeatureIfNotPresent(mojom::FeaturePolicyFeature feature, return true; } -bool AllowFeatureEverywhereIfNotPresent(mojom::FeaturePolicyFeature feature, - ParsedFeaturePolicy& policy) { +bool AllowFeatureEverywhereIfNotPresent( + mojom::blink::FeaturePolicyFeature feature, + ParsedFeaturePolicy& policy) { if (IsFeatureDeclared(feature, policy)) return false; blink::mojom::PolicyValueType feature_type = @@ -467,13 +432,13 @@ bool AllowFeatureEverywhereIfNotPresent(mojom::FeaturePolicyFeature feature, return true; } -void DisallowFeature(mojom::FeaturePolicyFeature feature, +void DisallowFeature(mojom::blink::FeaturePolicyFeature feature, ParsedFeaturePolicy& policy) { RemoveFeatureIfPresent(feature, policy); DisallowFeatureIfNotPresent(feature, policy); } -void AllowFeatureEverywhere(mojom::FeaturePolicyFeature feature, +void AllowFeatureEverywhere(mojom::blink::FeaturePolicyFeature feature, ParsedFeaturePolicy& policy) { RemoveFeatureIfPresent(feature, policy); AllowFeatureEverywhereIfNotPresent(feature, policy); @@ -488,7 +453,7 @@ const Vector<String> GetAvailableFeatures(ExecutionContext* execution_context) { return available_features; } -const String& GetNameForFeature(mojom::FeaturePolicyFeature feature) { +const String& GetNameForFeature(mojom::blink::FeaturePolicyFeature feature) { for (const auto& entry : GetDefaultFeatureNameMap()) { if (entry.value == feature) return entry.key; |