Index: third_party/WebKit/Source/core/layout/ng/ng_line_builder.h |
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_line_builder.h b/third_party/WebKit/Source/core/layout/ng/ng_line_builder.h |
index f37b180b75c9e38aa1340290121550e48128315e..4f3c6e8fc5a6308cce70f7e39569cecef4f22c5f 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/ng_line_builder.h |
+++ b/third_party/WebKit/Source/core/layout/ng/ng_line_builder.h |
@@ -86,7 +86,20 @@ class CORE_EXPORT NGLineBuilder final { |
// are placed. |
void CopyFragmentDataToLayoutBlockFlow(); |
+ // Compute inline size of an NGLayoutInlineItem. |
+ // Same as NGLayoutInlineItem::InlineSize(), except that this function can |
+ // compute atomic inlines by laying out them. |
+ LayoutUnit InlineSize(const NGLayoutInlineItem&); |
+ |
private: |
+ bool IsHorizontalWritingMode() const { return is_horizontal_writing_mode_; } |
+ |
+ LayoutUnit InlineSize(const NGLayoutInlineItem&, |
+ unsigned start_offset, |
+ unsigned end_offset); |
+ LayoutUnit InlineSizeFromLayout(const NGLayoutInlineItem&); |
+ RefPtr<NGLayoutResult>& LayoutItem(const NGLayoutInlineItem&); |
+ |
struct LineItemChunk { |
unsigned index; |
unsigned start_offset; |
@@ -136,6 +149,10 @@ class CORE_EXPORT NGLineBuilder final { |
void AccumulateUsedFonts(const NGLayoutInlineItem&, |
const LineItemChunk&, |
LineBoxData*); |
+ LayoutUnit PlaceAtomicInline(const NGLayoutInlineItem&, |
+ LayoutUnit estimated_baseline, |
+ LineBoxData*, |
+ NGFragmentBuilder*); |
// Finds the next layout opportunity for the next text fragment. |
void FindNextLayoutOpportunity(); |
@@ -143,6 +160,7 @@ class CORE_EXPORT NGLineBuilder final { |
Persistent<NGInlineNode> inline_box_; |
NGConstraintSpace* constraint_space_; // Not owned as STACK_ALLOCATED. |
NGFragmentBuilder* containing_block_builder_; |
+ Vector<RefPtr<NGLayoutResult>, 32> layout_results_; |
Vector<RefPtr<NGPhysicalFragment>, 32> fragments_; |
Vector<NGLogicalOffset, 32> offsets_; |
Vector<LineBoxData, 32> line_box_data_list_; |
@@ -156,11 +174,12 @@ class CORE_EXPORT NGLineBuilder final { |
LayoutUnit last_break_opportunity_position_; |
LayoutUnit content_size_; |
LayoutUnit max_inline_size_; |
- FontBaseline baseline_type_; |
+ FontBaseline baseline_type_ = FontBaseline::AlphabeticBaseline; |
NGLogicalOffset bfc_offset_; |
NGLogicalRect current_opportunity_; |
+ unsigned is_horizontal_writing_mode_ : 1; |
#if DCHECK_IS_ON() |
unsigned is_bidi_reordered_ : 1; |
#endif |