Index: third_party/WebKit/Source/core/layout/ng/ng_inline_node.h |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h b/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h |
index 392ddc205e745ad79abd7bea837639ee94165e40..89a9e4d3a97625d9a18c98f5a7872c3692177a24 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h |
@@ -22,6 +22,7 @@ class ComputedStyle; |
class LayoutBlockFlow; |
class LayoutObject; |
class LayoutUnit; |
+struct MinAndMaxContentSizes; |
class NGConstraintSpace; |
class NGLayoutInlineItem; |
class NGLayoutInlineItemRange; |
@@ -29,7 +30,8 @@ class NGLayoutInlineItemsBuilder; |
class NGLayoutResult; |
class NGLineBuilder; |
-// Represents an inline node to be laid out. |
+// Represents an anonymous block box to be laid out, that contains consecutive |
+// inline nodes and their descendants. |
class CORE_EXPORT NGInlineNode : public NGLayoutInputNode { |
public: |
NGInlineNode(LayoutObject* start_inline, const ComputedStyle* block_style); |
@@ -42,9 +44,13 @@ class CORE_EXPORT NGInlineNode : public NGLayoutInputNode { |
NGInlineNode* NextSibling() override; |
LayoutObject* GetLayoutObject() override; |
- // Prepare inline and text content for layout. Must be called before |
- // calling the Layout method. |
- void PrepareLayout(); |
+ // Computes the value of min-content and max-content for this anonymous block |
+ // box. min-content is the inline size when lines wrap at every break |
+ // opportunity, and max-content is when lines do not wrap at all. |
+ MinAndMaxContentSizes ComputeMinAndMaxContentSizes(); |
+ |
+ // Instruct to re-compute |PrepareLayout| on the next layout. |
+ void InvalidatePrepareLayout(); |
const String& Text() const { return text_content_; } |
String Text(unsigned start_offset, unsigned end_offset) const { |
@@ -66,6 +72,12 @@ class CORE_EXPORT NGInlineNode : public NGLayoutInputNode { |
protected: |
NGInlineNode(); // This constructor is only for testing. |
+ |
+ // Prepare inline and text content for layout. Must be called before |
+ // calling the Layout method. |
+ void PrepareLayout(); |
+ bool IsPrepareLayoutFinished() const { return !items_.isEmpty(); } |
+ |
void CollectInlines(LayoutObject* start, LayoutObject* last); |
void CollectInlines(LayoutObject* start, |
LayoutObject* last, |