Index: third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h b/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h |
index ae697ca92989c53d76e8391dbf45f9528762d669..9cd31ecf7a73caed7dfa570430bb9da0d11b507c 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h |
@@ -20,53 +20,50 @@ struct MinMaxContentSize; |
// Represents the input to a layout algorithm for a given node. The layout |
// engine should use the style, node type to determine which type of layout |
// algorithm to use to produce fragments for this node. |
-class CORE_EXPORT NGLayoutInputNode |
- : public GarbageCollectedFinalized<NGLayoutInputNode> { |
- public: |
- enum NGLayoutInputNodeType { kLegacyBlock = 0, kLegacyInline = 1 }; |
- |
- bool IsInline() const { return type_ == kLegacyInline; } |
- |
- bool IsBlock() const { return type_ == kLegacyBlock; } |
+class CORE_EXPORT NGLayoutInputNode { |
+ DISALLOW_NEW_EXCEPT_PLACEMENT_NEW(); |
- bool IsFloating() const { return IsBlock() && Style().IsFloating(); } |
- |
- bool IsOutOfFlowPositioned() const { |
- return IsBlock() && Style().HasOutOfFlowPosition(); |
- } |
+ public: |
+ NGLayoutInputNode(std::nullptr_t) : box_(nullptr) {} |
- virtual ~NGLayoutInputNode(){}; |
+ bool IsInline() const; |
+ bool IsBlock() const; |
+ bool IsFloating() const; |
+ bool IsOutOfFlowPositioned() const; |
// Performs layout on this input node, will return the layout result. |
- virtual RefPtr<NGLayoutResult> Layout(NGConstraintSpace*, NGBreakToken*) = 0; |
+ RefPtr<NGLayoutResult> Layout(NGConstraintSpace*, NGBreakToken*); |
+ |
+ MinMaxContentSize ComputeMinMaxContentSize(); |
// Returns the next sibling. |
- virtual NGLayoutInputNode* NextSibling() = 0; |
+ NGLayoutInputNode NextSibling(); |
// Returns the LayoutObject which is associated with this node. |
- virtual LayoutObject* GetLayoutObject() const = 0; |
+ LayoutObject* GetLayoutObject() const; |
- virtual MinMaxContentSize ComputeMinMaxContentSize() = 0; |
+ const ComputedStyle& Style() const; |
- virtual const ComputedStyle& Style() const = 0; |
+ String ToString() const; |
- virtual String ToString() const = 0; |
+ explicit operator bool() { return box_ != nullptr; } |
- NGLayoutInputNodeType Type() const { |
- return static_cast<NGLayoutInputNodeType>(type_); |
+ bool operator==(const NGLayoutInputNode& other) const { |
+ return box_ == other.box_; |
+ } |
+ |
+ bool operator!=(const NGLayoutInputNode& other) const { |
+ return !(*this == other); |
} |
#ifndef NDEBUG |
void ShowNodeTree() const; |
#endif |
- DEFINE_INLINE_VIRTUAL_TRACE() {} |
- |
protected: |
- explicit NGLayoutInputNode(NGLayoutInputNodeType type) : type_(type) {} |
+ explicit NGLayoutInputNode(LayoutBox* box) : box_(box) {} |
- private: |
- unsigned type_ : 1; |
+ LayoutBox* box_; |
}; |
} // namespace blink |