Index: third_party/WebKit/Source/core/style/StyleVariableData.h |
diff --git a/third_party/WebKit/Source/core/style/StyleVariableData.h b/third_party/WebKit/Source/core/style/StyleVariableData.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1c7d94143fdd76c2933c9cc3cdd67d1eae27d91b |
--- /dev/null |
+++ b/third_party/WebKit/Source/core/style/StyleVariableData.h |
@@ -0,0 +1,34 @@ |
+#ifndef StyleVariableData_h |
+#define StyleVariableData_h |
+ |
+#include "core/css/CSSVariableData.h" |
+#include "wtf/Forward.h" |
+#include "wtf/HashMap.h" |
+#include "wtf/RefCounted.h" |
+#include "wtf/text/AtomicStringHash.h" |
+ |
+namespace blink { |
+ |
+class StyleVariableData : public RefCounted<StyleVariableData> { |
+public: |
+ static PassRefPtr<StyleVariableData> create() { return adoptRef(new StyleVariableData()); } |
+ PassRefPtr<StyleVariableData> copy() const { return adoptRef(new StyleVariableData(*this)); } |
+ |
+ bool operator==(const StyleVariableData& other) const { return other.m_data == m_data; } |
+ bool operator!=(const StyleVariableData& other) const { return !(*this == other); } |
+ |
+ void setVariable(const AtomicString& name, PassRefPtr<CSSVariableData> value) { m_data.set(name, value); } |
+ CSSVariableData* getVariable(const AtomicString& name) const { return m_data.get(name); } |
+ void removeVariable(const AtomicString& name) { return m_data.remove(name); } |
+private: |
+ StyleVariableData() = default; |
+ StyleVariableData(const StyleVariableData& other) : RefCounted<StyleVariableData>(), m_data(other.m_data) { } |
+ |
+ friend class CSSVariableResolver; |
+ |
+ HashMap<AtomicString, RefPtr<CSSVariableData>> m_data; |
+}; |
+ |
+} // namespace blink |
+ |
+#endif // StyleVariableData_h |