Chromium Code Reviews| 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..b2b3d052cc0206f771fc64b50157fe0ee4d584cb |
| --- /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: |
| + explicit StyleVariableData() : RefCounted<StyleVariableData>() { } |
|
Timothy Loh
2015/10/15 03:43:48
Not sure if you need to define either of these con
leviw_travelin_and_unemployed
2015/10/20 21:56:53
It's actually necessary for the copy constructor.
Timothy Loh
2015/10/28 05:12:41
But we can write m_data(other.m_data), right?
|
| + StyleVariableData(const StyleVariableData& other) : RefCounted<StyleVariableData>(), m_data(HashMap<AtomicString, RefPtr<CSSVariableData>>(other.m_data)) { } |
| + |
| + friend class CSSVariableResolver; |
| + |
| + HashMap<AtomicString, RefPtr<CSSVariableData>> m_data; |
| +}; |
| + |
| +} // namespace blink |
| + |
| +#endif // StyleVariableData_h |