• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
create()18     static PassRefPtr<StyleWillChangeData> create() { return adoptRef(new StyleWillChangeData); }
copy()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