summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/css/resolver/cascade_resolver.h
diff options
context:
space:
mode:
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.h12
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