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

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

Issue 2284983002: [layoutng] Implement state machine for async layout (Closed)
Patch Set: NOTREACHED, also fix the windows compile error Created 4 years, 4 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_box.h
diff --git a/third_party/WebKit/Source/core/layout/ng/ng_box.h b/third_party/WebKit/Source/core/layout/ng/ng_box.h
index a30c63352445ed05d55d8c2eafbce3552260d6d8..a2cd5647e6d69960ddb3226056f316114a50b3e7 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_box.h
+++ b/third_party/WebKit/Source/core/layout/ng/ng_box.h
@@ -13,21 +13,14 @@ namespace blink {
class ComputedStyle;
class LayoutBox;
-class NGBoxIterator;
+class NGBlockLayoutAlgorithm;
class NGConstraintSpace;
class NGFragment;
// Represents a node to be laid out.
-class CORE_EXPORT NGBox final {
+class CORE_EXPORT NGBox final : public GarbageCollected<NGBox> {
public:
- explicit NGBox(LayoutObject* layoutObject)
- : m_layoutBox(toLayoutBox(layoutObject)) {}
-
- NGBox() : m_layoutBox(nullptr) {}
-
- // Returns an iterator that will iterate over this box's children, if any.
- NGBoxIterator childIterator();
- operator bool() const { return m_layoutBox; }
+ explicit NGBox(LayoutObject*);
// Returns true when done; when this function returns false, it has to be
// called again. The out parameter will only be set when this function
@@ -35,21 +28,24 @@ class CORE_EXPORT NGBox final {
// TODO(layout-ng): Should we have a StartLayout function to avoid passing
// the same space for each Layout iteration?
bool Layout(const NGConstraintSpace*, NGFragment**);
- const ComputedStyle* style() const;
+ const ComputedStyle* Style() const;
- NGBox nextSibling() const;
+ NGBox* NextSibling() const;
- NGBox firstChild() const;
+ NGBox* FirstChild() const;
// This is necessary for interop between old and new trees -- after our parent
// positions us, it calls this function so we can store the position on the
// underlying LayoutBox.
- void positionUpdated(const NGFragment&);
+ void PositionUpdated(const NGFragment&);
+
+ DEFINE_INLINE_VIRTUAL_TRACE() { visitor->trace(algorithm_); }
private:
- bool canUseNewLayout();
+ bool CanUseNewLayout();
- LayoutBox* m_layoutBox;
+ LayoutBox* layout_box_;
+ Member<NGBlockLayoutAlgorithm> algorithm_;
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698