diff options
Diffstat (limited to 'chromium/third_party/blink/public/common/feature_policy/feature_policy.h')
-rw-r--r-- | chromium/third_party/blink/public/common/feature_policy/feature_policy.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/chromium/third_party/blink/public/common/feature_policy/feature_policy.h b/chromium/third_party/blink/public/common/feature_policy/feature_policy.h index 0df3efdef16..0359048c071 100644 --- a/chromium/third_party/blink/public/common/feature_policy/feature_policy.h +++ b/chromium/third_party/blink/public/common/feature_policy/feature_policy.h @@ -9,9 +9,10 @@ #include <memory> #include <vector> +#include "base/containers/flat_set.h" #include "base/gtest_prod_util.h" #include "base/macros.h" -#include "third_party/blink/common/common_export.h" +#include "third_party/blink/public/common/common_export.h" #include "third_party/blink/public/mojom/feature_policy/feature_policy.mojom.h" #include "url/origin.h" @@ -92,6 +93,7 @@ struct BLINK_COMMON_EXPORT ParsedFeaturePolicyDeclaration { ParsedFeaturePolicyDeclaration(mojom::FeaturePolicyFeature feature, bool matches_all_origins, bool matches_opaque_src, + mojom::FeaturePolicyDisposition disposition, std::vector<url::Origin> origins); ParsedFeaturePolicyDeclaration(const ParsedFeaturePolicyDeclaration& rhs); ParsedFeaturePolicyDeclaration& operator=( @@ -106,6 +108,8 @@ struct BLINK_COMMON_EXPORT ParsedFeaturePolicyDeclaration { // of the iframe to be present in |origins|, but for sandboxed iframes, this // flag is set instead. bool matches_opaque_src; + mojom::FeaturePolicyDisposition disposition; + // An alphabetically sorted list of all the origins allowed. std::vector<url::Origin> origins; }; @@ -114,6 +118,13 @@ using ParsedFeaturePolicy = std::vector<ParsedFeaturePolicyDeclaration>; bool BLINK_COMMON_EXPORT operator==(const ParsedFeaturePolicyDeclaration& lhs, const ParsedFeaturePolicyDeclaration& rhs); +// ParsedFeaturePolicy objects can contain directives of both enforcing and +// report-only dispositions. This utility function will extract just the items +// of one disposition or the other. +BLINK_COMMON_EXPORT std::unique_ptr<ParsedFeaturePolicy> +DirectivesWithDisposition(mojom::FeaturePolicyDisposition disposition, + const ParsedFeaturePolicy& policy); + class BLINK_COMMON_EXPORT FeaturePolicy { public: // Represents a collection of origins which make up an allowlist in a feature @@ -138,12 +149,12 @@ class BLINK_COMMON_EXPORT FeaturePolicy { // Returns true if the allowlist matches all origins. bool MatchesAll() const; - // Returns list of origins in the allowlist. - const std::vector<url::Origin>& Origins() const; + // Returns set of origins in the allowlist. + const base::flat_set<url::Origin>& Origins() const; private: bool matches_all_origins_; - std::vector<url::Origin> origins_; + base::flat_set<url::Origin> origins_; }; // The FeaturePolicy::FeatureDefault enum defines the default enable state for |