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

Unified Diff: third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc

Issue 2563403002: [LayoutNG] Add Bidi reordering and fill in NGPhysicalTextFragment (Closed)
Patch Set: ikilpatrick review Created 4 years 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/ng_inline_node.cc
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc b/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
index af608995afad62198d75d50bb4cf3f6b7cd79aec..069f2b8b4d959a138068d071bbd71f6d16a353ed 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
+++ b/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
@@ -39,6 +39,10 @@ NGInlineNode::NGInlineNode()
NGInlineNode::~NGInlineNode() {}
+NGLayoutInlineItemRange NGInlineNode::Items(unsigned start, unsigned end) {
+ return NGLayoutInlineItemRange(&items_, start, end);
+}
+
void NGInlineNode::PrepareLayout() {
// Scan list of siblings collecting all in-flow non-atomic inlines. A single
// NGInlineNode represent a collection of adjacent non-atomic inlines.
@@ -202,32 +206,6 @@ void NGInlineNode::ShapeText() {
}
}
-unsigned NGInlineNode::CreateLine(unsigned start,
- NGConstraintSpace* constraint_space,
- NGFragmentBuilder* builder) {
- // TODO(kojii): |unsigned start| should be BreakToken.
- // TODO(kojii): implement line breaker and bidi reordering.
- for (unsigned i = start; i < items_.size(); i++) {
- const NGLayoutInlineItem& item = items_[i];
- // TODO(kojii): handle bidi controls and atomic inlines properly.
- if (!item.style_)
- continue;
- // TODO(kojii): There should be only one oof descendants list for a
- // NGInlineNode. Attach to the first NGPhysicalTextFragment and leave the
- // rest empty, or attach to line box/root line box fragment?
- HeapLinkedHashSet<WeakMember<NGBlockNode>> out_of_flow_descendants;
- Vector<NGStaticPosition> out_of_flow_positions;
- // TODO(kojii): Create NGTextFragment from |item|.
- NGPhysicalTextFragment* fragment = new NGPhysicalTextFragment(
- NGPhysicalSize(), NGPhysicalSize(), out_of_flow_descendants,
- out_of_flow_positions);
- builder->AddChild(new NGTextFragment(constraint_space->WritingMode(),
- item.Direction(), fragment),
- NGLogicalOffset());
- }
- return 0; // All items are consumed.
-}
-
bool NGInlineNode::Layout(NGConstraintSpace* constraint_space,
NGFragmentBase** out) {
PrepareLayout();
@@ -275,4 +253,14 @@ DEFINE_TRACE(NGInlineNode) {
NGLayoutInputNode::trace(visitor);
}
+NGLayoutInlineItemRange::NGLayoutInlineItemRange(
+ Vector<NGLayoutInlineItem>* items,
+ unsigned start_index,
+ unsigned end_index)
+ : start_item_(&(*items)[start_index]),
+ size_(end_index - start_index),
+ start_index_(start_index) {
+ RELEASE_ASSERT(start_index <= end_index && end_index <= items->size());
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698