Index: third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h |
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h b/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h |
index 79f9d07250c41fea5d3c694f5f4c15efd54c0783..097b8710b52e2b0015fd6589d638fca88bd0f741 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h |
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h |
@@ -6,24 +6,46 @@ |
#define NGLineBreaker_h |
#include "core/CoreExport.h" |
+#include "core/layout/ng/inline/ng_inline_item_result.h" |
#include "platform/heap/Handle.h" |
#include "platform/wtf/text/AtomicString.h" |
namespace blink { |
+class LazyLineBreakIterator; |
+class NGInlineBreakToken; |
+class NGInlineItem; |
+class NGInlineNode; |
class NGInlineLayoutAlgorithm; |
// Represents a line breaker. |
class CORE_EXPORT NGLineBreaker { |
public: |
- NGLineBreaker(const AtomicString locale) : locale_(locale) {} |
+ NGLineBreaker(NGInlineNode*, |
+ NGConstraintSpace*, |
+ NGInlineBreakToken* = nullptr); |
~NGLineBreaker() {} |
STACK_ALLOCATED(); |
- void BreakLines(NGInlineLayoutAlgorithm*, const String&, unsigned); |
+ // Compute the next line break point and produces NGInlineItemResults for |
+ // the line. |
+ void NextLine(NGInlineItemResults*, NGInlineLayoutAlgorithm*); |
+ |
+ // Create an NGInlineBreakToken for the last line returned by NextLine(). |
+ RefPtr<NGInlineBreakToken> CreateBreakToken() const; |
private: |
+ void LayoutAtomicInline(const NGInlineItem&, NGInlineItemResult*); |
+ |
+ void HandleOverflow(NGInlineItemResults*, const LazyLineBreakIterator&); |
+ |
+ void SkipCollapsibleWhitespaces(); |
+ |
+ Persistent<NGInlineNode> node_; |
+ const NGConstraintSpace* constraint_space_; |
const AtomicString locale_; |
+ unsigned item_index_; |
+ unsigned offset_; |
}; |
} // namespace blink |