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

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

Issue 2462153002: [layoutng] Support computing min-content and max-content (Closed)
Patch Set: review comments Created 4 years, 1 month 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 a402ad24c2b1cde35a50da3d5d4b05ffe32b9f1e..aea19d1bffe91e455d40e8ff447dd4b0ad1be711 100644
--- a/third_party/WebKit/Source/core/layout/ng/ng_box.h
+++ b/third_party/WebKit/Source/core/layout/ng/ng_box.h
@@ -17,6 +17,7 @@ class NGBlockLayoutAlgorithm;
class NGConstraintSpace;
class NGFragment;
class NGPhysicalFragment;
+struct MinAndMaxContentSizes;
// Represents a node to be laid out.
class CORE_EXPORT NGBox final : public GarbageCollectedFinalized<NGBox> {
@@ -32,6 +33,15 @@ class CORE_EXPORT NGBox final : public GarbageCollectedFinalized<NGBox> {
// TODO(layout-ng): Should we have a StartLayout function to avoid passing
// the same space for each Layout iteration?
bool Layout(const NGConstraintSpace*, NGFragment**);
+
+ // Computes the value of min-content and max-content for this box.
+ // The return value has the same meaning as for Layout.
+ // It is not legal to interleave a pending Layout() with a pending
+ // ComputeOrSynthesizeMinAndMaxContentSizes (i.e. you have to call Layout
+ // often enough that it returns true before calling
+ // ComputeOrSynthesizeMinAndMaxContentSizes)
+ bool ComputeOrSynthesizeMinAndMaxContentSizes(MinAndMaxContentSizes*);
+
const ComputedStyle* Style() const;
NGBox* NextSibling();
@@ -41,12 +51,7 @@ class CORE_EXPORT NGBox final : public GarbageCollectedFinalized<NGBox> {
void SetNextSibling(NGBox*);
void SetFirstChild(NGBox*);
- DEFINE_INLINE_VIRTUAL_TRACE() {
- visitor->trace(algorithm_);
- visitor->trace(fragment_);
- visitor->trace(next_sibling_);
- visitor->trace(first_child_);
- }
+ DECLARE_VIRTUAL_TRACE();
private:
// This is necessary for interop between old and new trees -- after our parent

Powered by Google App Engine
This is Rietveld 408576698