1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef StyleWillChangeData_h 6 #define StyleWillChangeData_h 7 8 #include "core/CSSPropertyNames.h" 9 #include "core/CSSValueKeywords.h" 10 #include "wtf/PassRefPtr.h" 11 #include "wtf/RefCounted.h" 12 #include "wtf/Vector.h" 13 14 namespace blink { 15 16 class StyleWillChangeData : public RefCounted<StyleWillChangeData> { 17 public: 18 static PassRefPtr<StyleWillChangeData> create() { return adoptRef(new StyleWillChangeData); } 19 PassRefPtr<StyleWillChangeData> copy() const { return adoptRef(new StyleWillChangeData(*this)); } 20 21 bool operator==(const StyleWillChangeData& o) const 22 { 23 return m_properties == o.m_properties && m_contents == o.m_contents && m_scrollPosition == o.m_scrollPosition; 24 } 25 26 bool operator!=(const StyleWillChangeData& o) const 27 { 28 return !(*this == o); 29 } 30 31 Vector<CSSPropertyID> m_properties; 32 unsigned m_contents : 1; 33 unsigned m_scrollPosition : 1; 34 35 private: 36 StyleWillChangeData(); 37 StyleWillChangeData(const StyleWillChangeData&); 38 }; 39 40 } // namespace blink 41 42 #endif // StyleWillChangeData_h 43