Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(611)

Unified Diff: Source/core/css/StylePropertySet.h

Issue 21006006: Add forEach() to CSSVariablesMap (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Corrected test expectations Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/css/StylePropertySet.h
diff --git a/Source/core/css/StylePropertySet.h b/Source/core/css/StylePropertySet.h
index 725257f14dc21326513f34d0f33830dd439e3559..7cf499e62b2536b00b5a80584da78d368901fd91 100644
--- a/Source/core/css/StylePropertySet.h
+++ b/Source/core/css/StylePropertySet.h
@@ -25,6 +25,7 @@
#include "core/css/CSSParserMode.h"
#include "core/css/CSSPrimitiveValue.h"
#include "core/css/CSSProperty.h"
+#include "core/css/CSSVariablesIterator.h"
#include "core/css/PropertySetCSSStyleDeclaration.h"
#include "wtf/ListHashSet.h"
#include "wtf/Vector.h"
@@ -171,6 +172,7 @@ inline const StylePropertyMetadata* ImmutableStylePropertySet::metadataArray() c
class MutableStylePropertySet : public StylePropertySet {
public:
+ ~MutableStylePropertySet() { }
static PassRefPtr<MutableStylePropertySet> create(CSSParserMode = CSSQuirksMode);
static PassRefPtr<MutableStylePropertySet> create(const CSSProperty* properties, unsigned count);
@@ -201,6 +203,8 @@ public:
bool removeVariable(const AtomicString& name);
bool clearVariables();
+ PassRefPtr<CSSVariablesIterator> variablesIterator() { return VariablesIterator::create(this); }
+
void mergeAndOverrideOnConflict(const StylePropertySet*);
void clear();
@@ -212,6 +216,25 @@ public:
Vector<CSSProperty, 4> m_propertyVector;
private:
+ class VariablesIterator : public CSSVariablesIterator {
+ public:
+ virtual ~VariablesIterator() { }
+ static PassRefPtr<VariablesIterator> create(MutableStylePropertySet*);
+ private:
+ explicit VariablesIterator(MutableStylePropertySet* propertySet) : m_propertySet(propertySet) { }
+ virtual void advance() OVERRIDE;
+ virtual bool atEnd() const OVERRIDE { return m_remainingNames.isEmpty(); }
+ virtual AtomicString name() const OVERRIDE { return m_remainingNames.last(); }
+ virtual String value() const OVERRIDE { return m_propertySet->variableValue(name()); }
+ virtual void addedVariable(const AtomicString& name) OVERRIDE;
+ virtual void removedVariable(const AtomicString& name) OVERRIDE;
+ virtual void clearedVariables() OVERRIDE;
+
+ Vector<AtomicString> m_remainingNames;
+ Vector<AtomicString> m_newNames;
+ RefPtr<MutableStylePropertySet> m_propertySet;
+ };
+
explicit MutableStylePropertySet(CSSParserMode);
explicit MutableStylePropertySet(const StylePropertySet&);
MutableStylePropertySet(const CSSProperty* properties, unsigned count);

Powered by Google App Engine
This is Rietveld 408576698