| Index: third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
|
| diff --git a/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h b/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
|
| index a5ca1855c753cc94ad10c4c70a3e94c85e7c73b2..51c0c84c6fc8203e274de3fede90d1f1465662ac 100644
|
| --- a/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
|
| +++ b/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
|
| @@ -8,19 +8,24 @@
|
| #include "core/CoreExport.h"
|
| #include "core/layout/ng/ng_min_max_content_size.h"
|
| #include "wtf/Allocator.h"
|
| -#include "wtf/Noncopyable.h"
|
| #include "wtf/Optional.h"
|
|
|
| namespace blink {
|
|
|
| -struct MinMaxContentSize;
|
| +class ComputedStyle;
|
| +class NGConstraintSpace;
|
| class NGLayoutResult;
|
|
|
| // Base class for all LayoutNG algorithms.
|
| +template <typename NGInputNodeType, typename NGBreakTokenType>
|
| class CORE_EXPORT NGLayoutAlgorithm {
|
| STACK_ALLOCATED();
|
| -
|
| public:
|
| + NGLayoutAlgorithm(NGInputNodeType* node,
|
| + NGConstraintSpace* space,
|
| + NGBreakTokenType* break_token)
|
| + : node_(node), constraint_space_(space), break_token_(break_token) {}
|
| +
|
| virtual ~NGLayoutAlgorithm() {}
|
|
|
| // Actual layout function. Lays out the children and descendants within the
|
| @@ -37,6 +42,28 @@ class CORE_EXPORT NGLayoutAlgorithm {
|
| virtual Optional<MinMaxContentSize> ComputeMinMaxContentSize() const {
|
| return WTF::nullopt;
|
| }
|
| +
|
| + protected:
|
| + const NGConstraintSpace& ConstraintSpace() const {
|
| + DCHECK(constraint_space_);
|
| + return *constraint_space_;
|
| + }
|
| + NGConstraintSpace* MutableConstraintSpace() { return constraint_space_; }
|
| +
|
| + const ComputedStyle& Style() const {
|
| + DCHECK(node_);
|
| + return node_->Style();
|
| + }
|
| +
|
| + virtual NGInputNodeType* Node() const { return node_; }
|
| +
|
| + NGBreakTokenType* BreakToken() const { return break_token_; }
|
| +
|
| + Persistent<NGInputNodeType> node_;
|
| + NGConstraintSpace* constraint_space_;
|
| +
|
| + // The break token from which we are currently resuming layout.
|
| + NGBreakTokenType* break_token_;
|
| };
|
|
|
| } // namespace blink
|
|
|