| 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
|
|
|