Index: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h |
diff --git a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h |
index 87195e47d6e86f89ed62efaba12d89120f17619d..f3c57682517770ecdc9a4a62ad6fa876befd29b7 100644 |
--- a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h |
+++ b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h |
@@ -17,6 +17,7 @@ namespace blink { |
class ComputedStyle; |
class LayoutObject; |
class NGInlineItem; |
+class NGOffsetMappingBuilder; |
// NGInlineItemsBuilder builds a string and a list of NGInlineItem from inlines. |
// |
@@ -27,11 +28,20 @@ class NGInlineItem; |
// By calling EnterInline/ExitInline, it inserts bidirectional control |
// characters as defined in: |
// https://drafts.csswg.org/css-writing-modes-3/#bidi-control-codes-injection-table |
+// |
+// NGInlineItemsBuilder may optionally take an NGOffsetMappingBuilder parameter |
+// to construct the white-space collapsed offset mapping, which maps offsets in |
+// the concatenation of all appended strings and characters to offsets in |
+// |text_|. See https://goo.gl/CJbxky for more details about offset mapping. |
class CORE_EXPORT NGInlineItemsBuilder { |
STACK_ALLOCATED(); |
public: |
- explicit NGInlineItemsBuilder(Vector<NGInlineItem>* items) : items_(items) {} |
+ explicit NGInlineItemsBuilder(Vector<NGInlineItem>* items) |
+ : items_(items), mapping_builder_(nullptr) {} |
+ explicit NGInlineItemsBuilder(Vector<NGInlineItem>* items, |
+ NGOffsetMappingBuilder* mapping_builder) |
+ : items_(items), mapping_builder_(mapping_builder) {} |
~NGInlineItemsBuilder(); |
String ToString(); |
@@ -98,6 +108,8 @@ class CORE_EXPORT NGInlineItemsBuilder { |
bool is_svgtext_ = false; |
bool has_bidi_controls_ = false; |
+ NGOffsetMappingBuilder* mapping_builder_; |
+ |
void AppendWithWhiteSpaceCollapsing(const String&, |
unsigned start, |
unsigned end, |