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

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

Issue 2706353004: [LayoutNG] Introduce block child iterator. (Closed)
Patch Set: address comments. Created 3 years, 10 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/ng_block_break_token.h
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h b/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h
index 39e9f48b8789f14b0845a150edf281e8ea068fe3..64fac59bc5acdd4d314f5cf1f16bc74d1426e29b 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h
+++ b/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h
@@ -5,6 +5,7 @@
#ifndef NGBlockBreakToken_h
#define NGBlockBreakToken_h
+#include "core/CoreExport.h"
#include "core/layout/ng/ng_break_token.h"
#include "platform/LayoutUnit.h"
@@ -13,27 +14,23 @@ namespace blink {
class NGBlockNode;
// Represents a break token for a block node.
-class NGBlockBreakToken : public NGBreakToken {
+class CORE_EXPORT NGBlockBreakToken : public NGBreakToken {
public:
// Creates a break token for a node which did fragment, and can potentially
// produce more fragments.
+ //
+ // The NGBlockBreakToken takes ownership of child_break_tokens, leaving it
+ // empty for the caller.
NGBlockBreakToken(NGBlockNode* node,
LayoutUnit used_block_size,
- HeapVector<Member<NGBreakToken>>& child_break_tokens)
- : NGBreakToken(kBlockBreakToken, /* is_finished */ false, node),
- used_block_size_(used_block_size) {
- child_break_tokens_.swap(child_break_tokens);
- }
+ HeapVector<Member<NGBreakToken>>& child_break_tokens);
// Creates a break token for a node which cannot produce any more fragments.
- explicit NGBlockBreakToken(NGBlockNode* node)
- : NGBreakToken(kBlockBreakToken, /* is_finished */ true, node) {}
+ explicit NGBlockBreakToken(NGBlockNode* node);
// TODO(ikilpatrick): Remove this constructor and break_offset once we've
// switched to new multi-col approach.
- NGBlockBreakToken(NGBlockNode* node, LayoutUnit break_offset)
- : NGBreakToken(kBlockBreakToken, false, node),
- break_offset_(break_offset) {}
+ NGBlockBreakToken(NGBlockNode* node, LayoutUnit break_offset);
// Represents the amount of block size used in previous fragments.
//
@@ -44,9 +41,12 @@ class NGBlockBreakToken : public NGBreakToken {
// The break tokens for children of the layout node.
//
- // This is used to resume layout of any children which fragmented, it may
- // contain "finished" break tokens so we know which children to skip for the
- // next fragment.
+ // Each child we have visited previously in the block-flow layout algorithm
+ // has an associated break token. This may be either finished (we should skip
+ // this child) or unfinished (we should try and produce the next fragment for
+ // this child).
+ //
+ // A child which we haven't visited yet doesn't have a break token here.
const HeapVector<Member<NGBreakToken>>& ChildBreakTokens() const {
return child_break_tokens_;
}
« no previous file with comments | « third_party/WebKit/Source/core/layout/BUILD.gn ('k') | third_party/WebKit/Source/core/layout/ng/ng_block_break_token.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698