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..08d6b22dfdfbcc187e478ba899d5214c5d3cfe57 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 |
@@ -6,6 +6,7 @@ |
#define NGInlineItemsBuilder_h |
#include "core/CoreExport.h" |
+#include "core/layout/ng/api/empty_offset_mapping_builder.h" |
#include "core/layout/ng/inline/ng_inline_node.h" |
#include "platform/wtf/Allocator.h" |
#include "platform/wtf/Vector.h" |
@@ -27,12 +28,16 @@ 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 |
-class CORE_EXPORT NGInlineItemsBuilder { |
+// TODO(xiaochengh): Pass in a real offset mapping builder type and use it to |
+// construct the whitespace-collapsed offset mapping. |
+template <typename OffsetMappingBuilder> |
+class CORE_TEMPLATE_CLASS_EXPORT NGInlineItemsBuilderTemplate { |
STACK_ALLOCATED(); |
public: |
- explicit NGInlineItemsBuilder(Vector<NGInlineItem>* items) : items_(items) {} |
- ~NGInlineItemsBuilder(); |
+ explicit NGInlineItemsBuilderTemplate(Vector<NGInlineItem>* items) |
+ : items_(items) {} |
+ ~NGInlineItemsBuilderTemplate(); |
String ToString(); |
@@ -85,6 +90,7 @@ class CORE_EXPORT NGInlineItemsBuilder { |
private: |
Vector<NGInlineItem>* items_; |
StringBuilder text_; |
+ OffsetMappingBuilder mapping_builder_; |
yosin_UTC9
2017/06/28 03:37:11
Could you upload the patch which using |mapping_bu
Xiaocheng
2017/06/28 03:44:42
This is just a preparation patch that templatizes
|
typedef struct OnExitNode { |
LayoutObject* node; |
@@ -128,6 +134,12 @@ class CORE_EXPORT NGInlineItemsBuilder { |
void Exit(LayoutObject*); |
}; |
+extern template class CORE_EXTERN_TEMPLATE_EXPORT |
+ NGInlineItemsBuilderTemplate<EmptyOffsetMappingBuilder>; |
+ |
+using NGInlineItemsBuilder = |
+ NGInlineItemsBuilderTemplate<EmptyOffsetMappingBuilder>; |
+ |
} // namespace blink |
#endif // NGInlineItemsBuilder_h |