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 14namespace blink { 15 16class StyleWillChangeData : public RefCounted<StyleWillChangeData> { 17public: 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 35private: 36 StyleWillChangeData(); 37 StyleWillChangeData(const StyleWillChangeData&); 38}; 39 40} // namespace blink 41 42#endif // StyleWillChangeData_h 43