Index: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item_result.cc |
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item_result.cc b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item_result.cc |
index d0200c35fc1c69c34bbafab38e8fb11ba653cb32..132384575680012c082478ab7d4d142b9b888176 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item_result.cc |
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item_result.cc |
@@ -5,6 +5,7 @@ |
#include "core/layout/ng/inline/ng_inline_item_result.h" |
#include "core/layout/ng/inline/ng_inline_node.h" |
+#include "core/layout/ng/ng_constraint_space.h" |
namespace blink { |
@@ -19,16 +20,23 @@ NGInlineItemResult::NGInlineItemResult(unsigned index, |
no_break_opportunities_inside(false), |
prohibit_break_after(false) {} |
-void NGLineInfo::SetLineStyle(const NGInlineNode& node, bool is_first_line) { |
+void NGLineInfo::SetLineStyle(const NGInlineNode& node, |
+ const NGConstraintSpace& constraint_space, |
+ bool is_first_line, |
+ bool is_after_forced_break) { |
LayoutObject* layout_object = node.GetLayoutObject(); |
- if (is_first_line && |
- layout_object->GetDocument().GetStyleEngine().UsesFirstLineRules()) { |
- is_first_line_ = true; |
- line_style_ = layout_object->FirstLineStyle(); |
- return; |
+ use_first_line_style_ = |
+ is_first_line && |
+ layout_object->GetDocument().GetStyleEngine().UsesFirstLineRules(); |
+ line_style_ = layout_object->Style(use_first_line_style_); |
+ |
+ if (line_style_->ShouldUseTextIndent(is_first_line, is_after_forced_break)) { |
+ text_indent_ = |
+ MinimumValueForLength(line_style_->TextIndent(), |
+ constraint_space.AvailableSize().inline_size); |
+ } else { |
+ text_indent_ = LayoutUnit(); |
} |
- is_first_line_ = false; |
- line_style_ = layout_object->Style(); |
} |
void NGLineInfo::SetLineLocation(LayoutUnit line_left, |