Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(707)

Side by Side Diff: third_party/WebKit/Source/core/style/StyleDifference.h

Issue 2779353002: Add operator<< to StyleDifference for debug logging. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef StyleDifference_h 5 #ifndef StyleDifference_h
6 #define StyleDifference_h 6 #define StyleDifference_h
7 7
8 #include <iosfwd>
9 #include "core/CoreExport.h"
8 #include "wtf/Allocator.h" 10 #include "wtf/Allocator.h"
9 #include "wtf/Assertions.h" 11 #include "wtf/Assertions.h"
10 12
11 namespace blink { 13 namespace blink {
12 14
13 class StyleDifference { 15 class StyleDifference {
14 STACK_ALLOCATED(); 16 STACK_ALLOCATED();
15 17
16 public: 18 public:
17 enum PropertyDifference { 19 enum PropertyDifference {
18 TransformChanged = 1 << 0, 20 TransformChanged = 1 << 0,
19 OpacityChanged = 1 << 1, 21 OpacityChanged = 1 << 1,
20 ZIndexChanged = 1 << 2, 22 ZIndexChanged = 1 << 2,
21 FilterChanged = 1 << 3, 23 FilterChanged = 1 << 3,
22 BackdropFilterChanged = 1 << 4, 24 BackdropFilterChanged = 1 << 4,
23 CSSClipChanged = 1 << 5, 25 CSSClipChanged = 1 << 5,
24 // The object needs to issue paint invalidations if it is affected by text 26 // The object needs to issue paint invalidations if it is affected by text
25 // decorations or properties dependent on color (e.g., border or outline). 27 // decorations or properties dependent on color (e.g., border or outline).
26 TextDecorationOrColorChanged = 1 << 6, 28 TextDecorationOrColorChanged = 1 << 6,
27 // If you add a value here, be sure to update the number of bits on 29 // If you add a value here, be sure to update kPropertyDifferenceCount.
28 // m_propertySpecificDifferences.
29 }; 30 };
30 31
31 StyleDifference() 32 StyleDifference()
32 : m_paintInvalidationType(NoPaintInvalidation), 33 : m_paintInvalidationType(NoPaintInvalidation),
33 m_layoutType(NoLayout), 34 m_layoutType(NoLayout),
34 m_recomputeOverflow(false), 35 m_recomputeOverflow(false),
35 m_propertySpecificDifferences(0), 36 m_propertySpecificDifferences(0),
36 m_scrollAnchorDisablingPropertyChanged(false) {} 37 m_scrollAnchorDisablingPropertyChanged(false) {}
37 38
38 bool hasDifference() const { 39 bool hasDifference() const {
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 } 133 }
133 134
134 bool scrollAnchorDisablingPropertyChanged() const { 135 bool scrollAnchorDisablingPropertyChanged() const {
135 return m_scrollAnchorDisablingPropertyChanged; 136 return m_scrollAnchorDisablingPropertyChanged;
136 } 137 }
137 void setScrollAnchorDisablingPropertyChanged() { 138 void setScrollAnchorDisablingPropertyChanged() {
138 m_scrollAnchorDisablingPropertyChanged = true; 139 m_scrollAnchorDisablingPropertyChanged = true;
139 } 140 }
140 141
141 private: 142 private:
143 static constexpr int kPropertyDifferenceCount = 7;
144
145 friend CORE_EXPORT std::ostream& operator<<(std::ostream&,
146 const StyleDifference&);
147
142 enum PaintInvalidationType { 148 enum PaintInvalidationType {
143 NoPaintInvalidation, 149 NoPaintInvalidation,
144 PaintInvalidationObject, 150 PaintInvalidationObject,
145 PaintInvalidationSubtree, 151 PaintInvalidationSubtree,
146 }; 152 };
147 unsigned m_paintInvalidationType : 2; 153 unsigned m_paintInvalidationType : 2;
148 154
149 enum LayoutType { NoLayout = 0, PositionedMovement, FullLayout }; 155 enum LayoutType { NoLayout = 0, PositionedMovement, FullLayout };
150 unsigned m_layoutType : 2; 156 unsigned m_layoutType : 2;
151 unsigned m_recomputeOverflow : 1; 157 unsigned m_recomputeOverflow : 1;
152 unsigned m_propertySpecificDifferences : 7; 158 unsigned m_propertySpecificDifferences : kPropertyDifferenceCount;
153 unsigned m_scrollAnchorDisablingPropertyChanged : 1; 159 unsigned m_scrollAnchorDisablingPropertyChanged : 1;
154 }; 160 };
155 161
162 CORE_EXPORT std::ostream& operator<<(std::ostream&, const StyleDifference&);
163
156 } // namespace blink 164 } // namespace blink
157 165
158 #endif // StyleDifference_h 166 #endif // StyleDifference_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/style/BUILD.gn ('k') | third_party/WebKit/Source/core/style/StyleDifference.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698