Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(90)

Unified Diff: third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h

Issue 2943573002: Make NGInlineItemsBuilder construct whitespace-collapsed offset mapping (Closed)
Patch Set: Tue Jun 27 15:22:36 PDT 2017 Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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,

Powered by Google App Engine
This is Rietveld 408576698