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

Side by Side Diff: third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h

Issue 2724133003: [LayoutNG] Switch NGConstraintSpace to being RefCounted. (Closed)
Patch Set: moar. Created 3 years, 9 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 NGConstraintSpace_h 5 #ifndef NGConstraintSpace_h
6 #define NGConstraintSpace_h 6 #define NGConstraintSpace_h
7 7
8 #include "core/CoreExport.h" 8 #include "core/CoreExport.h"
9 #include "core/layout/ng/ng_units.h" 9 #include "core/layout/ng/ng_units.h"
10 #include "core/layout/ng/ng_writing_mode.h" 10 #include "core/layout/ng/ng_writing_mode.h"
11 #include "platform/heap/Handle.h"
12 #include "wtf/Optional.h" 11 #include "wtf/Optional.h"
12 #include "wtf/RefCounted.h"
13 #include "wtf/text/WTFString.h" 13 #include "wtf/text/WTFString.h"
14 14
15 namespace blink { 15 namespace blink {
16 16
17 class LayoutBox; 17 class LayoutBox;
18 class NGBoxFragment; 18 class NGBoxFragment;
19 19
20 enum NGFragmentationType { 20 enum NGFragmentationType {
21 kFragmentNone, 21 kFragmentNone,
22 kFragmentPage, 22 kFragmentPage,
23 kFragmentColumn, 23 kFragmentColumn,
24 kFragmentRegion 24 kFragmentRegion
25 }; 25 };
26 26
27 // The NGConstraintSpace represents a set of constraints and available space 27 // The NGConstraintSpace represents a set of constraints and available space
28 // which a layout algorithm may produce a NGFragment within. 28 // which a layout algorithm may produce a NGFragment within.
29 class CORE_EXPORT NGConstraintSpace final 29 class CORE_EXPORT NGConstraintSpace final
30 : public GarbageCollectedFinalized<NGConstraintSpace> { 30 : public RefCounted<NGConstraintSpace> {
31 public: 31 public:
32 // This should live on NGBlockNode or another layout bridge and probably take 32 // This should live on NGBlockNode or another layout bridge and probably take
33 // a root NGConstraintSpace. 33 // a root NGConstraintSpace.
34 static NGConstraintSpace* CreateFromLayoutObject(const LayoutBox&); 34 static RefPtr<NGConstraintSpace> CreateFromLayoutObject(const LayoutBox&);
35 35
36 const std::shared_ptr<NGExclusions>& Exclusions() const { 36 const std::shared_ptr<NGExclusions>& Exclusions() const {
37 return exclusions_; 37 return exclusions_;
38 } 38 }
39 39
40 TextDirection Direction() const { 40 TextDirection Direction() const {
41 return static_cast<TextDirection>(direction_); 41 return static_cast<TextDirection>(direction_);
42 } 42 }
43 43
44 NGWritingMode WritingMode() const { 44 NGWritingMode WritingMode() const {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 void Subtract(const NGBoxFragment*); 114 void Subtract(const NGBoxFragment*);
115 115
116 NGMarginStrut MarginStrut() const { return margin_strut_; } 116 NGMarginStrut MarginStrut() const { return margin_strut_; }
117 117
118 NGLogicalOffset BfcOffset() const { return bfc_offset_; } 118 NGLogicalOffset BfcOffset() const { return bfc_offset_; }
119 119
120 WTF::Optional<LayoutUnit> ClearanceOffset() const { 120 WTF::Optional<LayoutUnit> ClearanceOffset() const {
121 return clearance_offset_; 121 return clearance_offset_;
122 } 122 }
123 123
124 DEFINE_INLINE_VIRTUAL_TRACE() {}
125
126 String ToString() const; 124 String ToString() const;
127 125
128 private: 126 private:
129 friend class NGConstraintSpaceBuilder; 127 friend class NGConstraintSpaceBuilder;
130 // Default constructor. 128 // Default constructor.
131 NGConstraintSpace(NGWritingMode, 129 NGConstraintSpace(NGWritingMode,
132 TextDirection, 130 TextDirection,
133 NGLogicalSize available_size, 131 NGLogicalSize available_size,
134 NGLogicalSize percentage_resolution_size, 132 NGLogicalSize percentage_resolution_size,
135 NGPhysicalSize initial_containing_block_size, 133 NGPhysicalSize initial_containing_block_size,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 }; 181 };
184 182
185 inline std::ostream& operator<<(std::ostream& stream, 183 inline std::ostream& operator<<(std::ostream& stream,
186 const NGConstraintSpace& value) { 184 const NGConstraintSpace& value) {
187 return stream << value.ToString(); 185 return stream << value.ToString();
188 } 186 }
189 187
190 } // namespace blink 188 } // namespace blink
191 189
192 #endif // NGConstraintSpace_h 190 #endif // NGConstraintSpace_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698