diff options
Diffstat (limited to 'chromium/third_party/blink/renderer/core/css/resolver/cascade_resolver.h')
-rw-r--r-- | chromium/third_party/blink/renderer/core/css/resolver/cascade_resolver.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/chromium/third_party/blink/renderer/core/css/resolver/cascade_resolver.h b/chromium/third_party/blink/renderer/core/css/resolver/cascade_resolver.h index 165f6334ab3..d60be0d8662 100644 --- a/chromium/third_party/blink/renderer/core/css/resolver/cascade_resolver.h +++ b/chromium/third_party/blink/renderer/core/css/resolver/cascade_resolver.h @@ -5,10 +5,12 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_CSS_RESOLVER_CASCADE_RESOLVER_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_CSS_RESOLVER_CASCADE_RESOLVER_H_ +#include "base/auto_reset.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/css/css_property_name.h" #include "third_party/blink/renderer/core/css/properties/css_property.h" #include "third_party/blink/renderer/core/css/resolver/cascade_filter.h" +#include "third_party/blink/renderer/core/css/resolver/cascade_origin.h" #include "third_party/blink/renderer/core/css/rule_set.h" namespace blink { @@ -16,6 +18,7 @@ namespace blink { class CascadePriority; class CSSProperty; class CSSVariableData; +class CSSProperty; namespace cssvalue { @@ -55,6 +58,14 @@ class CORE_EXPORT CascadeResolver { // used to skip application of a declaration). void MarkApplied(CascadePriority*) const; + // If the incoming origin is kAuthor, collect flags from 'property'. + // AuthorFlags() can then later be used to see which flags have been observed. + void CollectAuthorFlags(const CSSProperty& property, CascadeOrigin origin) { + author_flags_ |= + (origin == CascadeOrigin::kAuthor ? property.GetFlags() : 0); + } + CSSProperty::Flags AuthorFlags() const { return author_flags_; } + // Automatically locks and unlocks the given property. (See // CascadeResolver::IsLocked). class CORE_EXPORT AutoLock { @@ -96,6 +107,7 @@ class CORE_EXPORT CascadeResolver { wtf_size_t cycle_depth_ = kNotFound; CascadeFilter filter_; const uint8_t generation_ = 0; + CSSProperty::Flags author_flags_ = 0; // A very simple cache for CSSPendingSubstitutionValues. We cache only the // most recently parsed CSSPendingSubstitutionValue, such that consecutive |