Home | History | Annotate | Download | only in style
      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