Commit 1787f9d8 authored by Morten Stenshorne's avatar Morten Stenshorne Committed by Commit Bot

[LayoutNG] Runtime flag for block fragmentation.

Add a LayoutNGBlockFragmentation flag (which implies LayoutNG). Not
enabled by default. When enabled, we will use NG's current block
fragmentation implementation (which is incomplete). When disabled, we'll
fall back to legacy layout for anything that needs block fragmentation.

This flag is deliberately not enabled on the layout_ng trybot, so now a
bunch of multicol / pagination / printing tests will start to pass
there.

In order to retain test coverage for NG's block fragmentation
implementation, the plan is to enable this new flag in some virtual
testsuite for fast/multicol/ & co. Will deal with that in a separate CL.

Bug: 824918
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I4053ba291d5086e495c7ceca30118c5379b99840
Reviewed-on: https://chromium-review.googlesource.com/976223Reviewed-by: default avatarEmil A Eklund <eae@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545681}
parent cead4ad6
...@@ -74,11 +74,11 @@ layer at (8,268) size 784x2 clip at (0,0) size 0x0 ...@@ -74,11 +74,11 @@ layer at (8,268) size 784x2 clip at (0,0) size 0x0
layer at (8,345) size 784x2 clip at (0,0) size 0x0 layer at (8,345) size 784x2 clip at (0,0) size 0x0
LayoutNGBlockFlow {HR} at (0,329) size 784x2 [border: (1px inset #EEEEEE)] LayoutNGBlockFlow {HR} at (0,329) size 784x2 [border: (1px inset #EEEEEE)]
layer at (8,399) size 784x160 layer at (8,399) size 784x160
LayoutNGBlockFlow {DIV} at (0,383) size 784x160 LayoutBlockFlow {DIV} at (0,383) size 784x160
LayoutMultiColumnSet (anonymous) at (0,0) size 784x160 LayoutMultiColumnSet (anonymous) at (0,0) size 784x160
layer at (8,399) size 384x320 backgroundClip at (0,0) size 400x559 clip at (0,0) size 400x559 layer at (8,399) size 384x320 backgroundClip at (0,0) size 400x559 clip at (0,0) size 400x559
LayoutMultiColumnFlowThread (anonymous) at (0,0) size 384x320 LayoutMultiColumnFlowThread (anonymous) at (0,0) size 384x320
LayoutNGBlockFlow {DIV} at (0,0) size 384x160 LayoutBlockFlow {DIV} at (0,0) size 384x160
LayoutMenuList {SELECT} at (0,0) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)] LayoutMenuList {SELECT} at (0,0) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)]
LayoutNGBlockFlow (anonymous) at (1,1) size 348x21 LayoutNGBlockFlow (anonymous) at (1,1) size 348x21
LayoutText (anonymous) at (4,1) size 174x18 LayoutText (anonymous) at (4,1) size 174x18
...@@ -87,12 +87,12 @@ layer at (8,399) size 384x320 backgroundClip at (0,0) size 400x559 clip at (0,0) ...@@ -87,12 +87,12 @@ layer at (8,399) size 384x320 backgroundClip at (0,0) size 400x559 clip at (0,0)
text run at (91,1) width 18: "03" text run at (91,1) width 18: "03"
text run at (109,1) width 40 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} (" text run at (109,1) width 40 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} ("
text run at (149,1) width 29: " fifth" text run at (149,1) width 29: " fifth"
LayoutNGBlockFlow {DIV} at (0,22) size 352x18 LayoutBlockFlow {DIV} at (0,22) size 352x18
LayoutText {#text} at (1,1) size 133x15 LayoutText {#text} at (1,1) size 133x15
text run at (1,1) width 27: "First " text run at (1,1) width 27: "First "
text run at (28,1) width 38: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}" text run at (28,1) width 38 RTL: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}"
text run at (66,1) width 14: "03" text run at (66,1) width 14: "03"
text run at (80,1) width 28: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} (" text run at (80,1) width 28 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} ("
text run at (108,1) width 26: " fifth" text run at (108,1) width 26: " fifth"
LayoutMenuList {SELECT} at (0,40) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)] LayoutMenuList {SELECT} at (0,40) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)]
LayoutNGBlockFlow (anonymous) at (1,1) size 348x21 LayoutNGBlockFlow (anonymous) at (1,1) size 348x21
...@@ -102,28 +102,28 @@ layer at (8,399) size 384x320 backgroundClip at (0,0) size 400x559 clip at (0,0) ...@@ -102,28 +102,28 @@ layer at (8,399) size 384x320 backgroundClip at (0,0) size 400x559 clip at (0,0)
text run at (85,1) width 18: "03" text run at (85,1) width 18: "03"
text run at (103,1) width 44 RTL: " \x{5E9}\x{5E0}\x{5D9}\x{5D4} (" text run at (103,1) width 44 RTL: " \x{5E9}\x{5E0}\x{5D9}\x{5D4} ("
text run at (147,1) width 31: "First" text run at (147,1) width 31: "First"
LayoutNGBlockFlow {DIV} at (0,62) size 352x18 LayoutBlockFlow {DIV} at (0,62) size 352x18
LayoutText {#text} at (1,1) size 133x15 LayoutText {#text} at (1,1) size 133x15
text run at (1,1) width 23: "fifth" text run at (1,1) width 23: "fifth"
text run at (24,1) width 41: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} " text run at (24,1) width 41 RTL: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} "
text run at (65,1) width 14: "03" text run at (65,1) width 14: "03"
text run at (79,1) width 31: " \x{5E9}\x{5E0}\x{5D9}\x{5D4} (" text run at (79,1) width 31 RTL: " \x{5E9}\x{5E0}\x{5D9}\x{5D4} ("
text run at (110,1) width 24: "First" text run at (110,1) width 24: "First"
LayoutMenuList {SELECT} at (0,80) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)] LayoutMenuList {SELECT} at (0,80) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)]
LayoutNGBlockFlow (anonymous) at (1,1) size 348x21 LayoutNGBlockFlow (anonymous) at (1,1) size 348x21
LayoutText (anonymous) at (4,1) size 174x18 LayoutText (anonymous) at (4,1) size 174x18
text run at (4,1) width 174 LTR override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" text run at (4,1) width 174 LTR override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth"
LayoutNGBlockFlow {DIV} at (0,102) size 352x18 LayoutBlockFlow {DIV} at (0,102) size 352x18
LayoutText {#text} at (1,1) size 133x15 LayoutText {#text} at (1,1) size 133x15
text run at (1,1) width 133: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" text run at (1,1) width 133 LTR override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth"
LayoutMenuList {SELECT} at (0,120) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)] LayoutMenuList {SELECT} at (0,120) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)]
LayoutNGBlockFlow (anonymous) at (1,1) size 348x21 LayoutNGBlockFlow (anonymous) at (1,1) size 348x21
LayoutText (anonymous) at (4,1) size 174x18 LayoutText (anonymous) at (4,1) size 174x18
text run at (4,1) width 174 RTL override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" text run at (4,1) width 174 RTL override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth"
LayoutNGBlockFlow {DIV} at (0,142) size 352x18 LayoutBlockFlow {DIV} at (0,142) size 352x18
LayoutText {#text} at (1,1) size 133x15 LayoutText {#text} at (1,1) size 133x15
text run at (1,1) width 133: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" text run at (1,1) width 133 RTL override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth"
LayoutNGBlockFlow {DIV} at (0,160) size 384x160 LayoutBlockFlow {DIV} at (0,160) size 384x160
LayoutMenuList {SELECT} at (0,0) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)] LayoutMenuList {SELECT} at (0,0) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)]
LayoutNGBlockFlow (anonymous) at (1,1) size 348x21 LayoutNGBlockFlow (anonymous) at (1,1) size 348x21
LayoutText (anonymous) at (170,1) size 174x18 LayoutText (anonymous) at (170,1) size 174x18
...@@ -132,12 +132,12 @@ layer at (8,399) size 384x320 backgroundClip at (0,0) size 400x559 clip at (0,0) ...@@ -132,12 +132,12 @@ layer at (8,399) size 384x320 backgroundClip at (0,0) size 400x559 clip at (0,0)
text run at (257,1) width 18: "03" text run at (257,1) width 18: "03"
text run at (275,1) width 40 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} (" text run at (275,1) width 40 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} ("
text run at (315,1) width 29: " fifth" text run at (315,1) width 29: " fifth"
LayoutNGBlockFlow {DIV} at (0,22) size 352x18 LayoutBlockFlow {DIV} at (0,22) size 352x18
LayoutText {#text} at (218,1) size 133x15 LayoutText {#text} at (218,1) size 133x15
text run at (218,1) width 27: "First " text run at (218,1) width 27: "First "
text run at (245,1) width 38: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}" text run at (245,1) width 38 RTL: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA}"
text run at (283,1) width 14: "03" text run at (283,1) width 14: "03"
text run at (297,1) width 28: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} (" text run at (297,1) width 28 RTL: "\x{5E9}\x{5E0}\x{5D9}\x{5D4} ("
text run at (325,1) width 26: " fifth" text run at (325,1) width 26: " fifth"
LayoutMenuList {SELECT} at (0,40) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)] LayoutMenuList {SELECT} at (0,40) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)]
LayoutNGBlockFlow (anonymous) at (1,1) size 348x21 LayoutNGBlockFlow (anonymous) at (1,1) size 348x21
...@@ -147,24 +147,24 @@ layer at (8,399) size 384x320 backgroundClip at (0,0) size 400x559 clip at (0,0) ...@@ -147,24 +147,24 @@ layer at (8,399) size 384x320 backgroundClip at (0,0) size 400x559 clip at (0,0)
text run at (251,1) width 18: "03" text run at (251,1) width 18: "03"
text run at (269,1) width 44 RTL: " \x{5E9}\x{5E0}\x{5D9}\x{5D4} (" text run at (269,1) width 44 RTL: " \x{5E9}\x{5E0}\x{5D9}\x{5D4} ("
text run at (313,1) width 31: "First" text run at (313,1) width 31: "First"
LayoutNGBlockFlow {DIV} at (0,62) size 352x18 LayoutBlockFlow {DIV} at (0,62) size 352x18
LayoutText {#text} at (218,1) size 133x15 LayoutText {#text} at (218,1) size 133x15
text run at (218,1) width 23: "fifth" text run at (218,1) width 23: "fifth"
text run at (241,1) width 41: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} " text run at (241,1) width 41 RTL: ") \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} "
text run at (282,1) width 14: "03" text run at (282,1) width 14: "03"
text run at (296,1) width 31: " \x{5E9}\x{5E0}\x{5D9}\x{5D4} (" text run at (296,1) width 31 RTL: " \x{5E9}\x{5E0}\x{5D9}\x{5D4} ("
text run at (327,1) width 24: "First" text run at (327,1) width 24: "First"
LayoutMenuList {SELECT} at (0,80) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)] LayoutMenuList {SELECT} at (0,80) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)]
LayoutNGBlockFlow (anonymous) at (1,1) size 348x21 LayoutNGBlockFlow (anonymous) at (1,1) size 348x21
LayoutText (anonymous) at (170,1) size 174x18 LayoutText (anonymous) at (170,1) size 174x18
text run at (170,1) width 174 LTR override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" text run at (170,1) width 174 LTR override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth"
LayoutNGBlockFlow {DIV} at (0,102) size 352x18 LayoutBlockFlow {DIV} at (0,102) size 352x18
LayoutText {#text} at (218,1) size 133x15 LayoutText {#text} at (218,1) size 133x15
text run at (218,1) width 133: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" text run at (218,1) width 133 LTR override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth"
LayoutMenuList {SELECT} at (0,120) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)] LayoutMenuList {SELECT} at (0,120) size 350x22 [bgcolor=#C0C0C0] [border: (1px solid #A9A9A9)]
LayoutNGBlockFlow (anonymous) at (1,1) size 348x21 LayoutNGBlockFlow (anonymous) at (1,1) size 348x21
LayoutText (anonymous) at (170,1) size 174x18 LayoutText (anonymous) at (170,1) size 174x18
text run at (170,1) width 174 RTL override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" text run at (170,1) width 174 RTL override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth"
LayoutNGBlockFlow {DIV} at (0,142) size 352x18 LayoutBlockFlow {DIV} at (0,142) size 352x18
LayoutText {#text} at (218,1) size 133x15 LayoutText {#text} at (218,1) size 133x15
text run at (218,1) width 133: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth" text run at (218,1) width 133 RTL override: "First \x{5E9}\x{5E0}\x{5D9}\x{5D4} (03) \x{5E8}\x{5D1}\x{5D9}\x{5E2}\x{5D9}\x{5EA} fifth"
{
"layers": [
{
"name": "LayoutView #document",
"bounds": [800, 600],
"drawsContent": false,
"backgroundColor": "#FFFFFF"
},
{
"name": "Scrolling Layer",
"bounds": [800, 600],
"drawsContent": false
},
{
"name": "Scrolling Contents Layer",
"bounds": [800, 600],
"contentsOpaque": true,
"backgroundColor": "#FFFFFF"
},
{
"name": "LayoutNGBlockFlow DIV id='multicol'",
"bounds": [200, 100],
"transform": 1
}
],
"transforms": [
{
"id": 1,
"transform": [
[1, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 1, 0],
[8, 8, 0, 1]
]
}
]
}
Insert a spanner right after an inner multicol container and before column content, splitting an existing column row.
PASS if no crash or assertion failure.
 
Test that a fixed positioned object inside a transform inside a multicol isn't paginated.
The word "YO" should be seen below, with large letter spacing.
Y
O
PASS
crbug.com/99124: Table rows shouldn't straddle page boundaries.
Text
Text
Text
Text
Text
Text
Text
Text
Text
Text
Text
Text
Text
Text
Text
Text
PASS
layer at (0,0) size 800x600
LayoutView at (0,0) size 1066x799
layer at (0,0) size 1066x40 backgroundClip at (0,0) size 800x600 clip at (0,0) size 800x600
LayoutNGBlockFlow {HTML} at (0,0) size 1066x40
LayoutNGBlockFlow {BODY} at (8,8) size 1050x24
layer at (8,8) size 168x24
LayoutNGBlockFlow {DIV} at (0,0) size 168x24 [color=#FFFFFF] [bgcolor=#000000]
LayoutText {#text} at (0,0) size 160x16
text run at (0,0) width 144: "This text"
text run at (144,0) width 16: "\x{2026}"
Test that an exception is thrown when attempting to set zero page height
On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
PASS internals.numberOfPages(100, 0) threw exception TypeError: Failed to execute 'numberOfPages' on 'Internals': Page width and height must be larger than 0..
PASS internals.pageNumber(document.body, 100, 0) threw exception TypeError: Failed to execute 'pageNumber' on 'Internals': Page width and height must be larger than 0..
PASS successfullyParsed is true
TEST COMPLETE
PASS successfullyParsed is true
TEST COMPLETE
Snapshot width: 800 height: 600
Test 0: canvas should be green
PASS pixel[0] is within 1 of 0
PASS pixel[1] is within 1 of 255
PASS pixel[2] is within 1 of 0
Snapshot width: 800 height: 600
Test 1: canvas should be red
PASS pixel[0] is within 1 of 255
PASS pixel[1] is within 1 of 0
PASS pixel[2] is within 1 of 0
Snapshot width: 800 height: 600
Test 2: canvas should be blue
PASS pixel[0] is within 1 of 0
PASS pixel[1] is within 1 of 0
PASS pixel[2] is within 1 of 255
PASS successfullyParsed is true
TEST COMPLETE
Snapshot width: 800 height: 600
Test 0: canvas should be green
PASS pixel[0] is within 1 of 0
PASS pixel[1] is within 1 of 255
PASS pixel[2] is within 1 of 0
Snapshot width: 800 height: 600
Test 1: canvas should be red
PASS pixel[0] is within 1 of 255
PASS pixel[1] is within 1 of 0
PASS pixel[2] is within 1 of 0
Snapshot width: 800 height: 600
Test 2: canvas should be blue
PASS pixel[0] is within 1 of 0
PASS pixel[1] is within 1 of 0
PASS pixel[2] is within 1 of 255
...@@ -667,22 +667,34 @@ void StyleAdjuster::AdjustComputedStyle(StyleResolverState& state, ...@@ -667,22 +667,34 @@ void StyleAdjuster::AdjustComputedStyle(StyleResolverState& state,
} }
} }
if (RuntimeEnabledFeatures::LayoutNGEnabled() && !style.ForceLegacyLayout()) { if (RuntimeEnabledFeatures::LayoutNGEnabled() && !style.ForceLegacyLayout() &&
// Form controls are not supported yet. element) {
if (element && element->ShouldForceLegacyLayout()) { const Document& document = element->GetDocument();
if (element->ShouldForceLegacyLayout()) {
// Form controls are not supported yet.
style.SetForceLegacyLayout(true); style.SetForceLegacyLayout(true);
} } else if (style.UserModify() != EUserModify::kReadOnly ||
document.InDesignMode()) {
// TODO(layout-dev): Once LayoutNG handles inline content editable, we // TODO(layout-dev): Once LayoutNG handles inline content editable, we
// should get rid of following code fragment. // should get rid of following code fragment.
else if (style.UserModify() != EUserModify::kReadOnly ||
(element && element->GetDocument().InDesignMode())) {
style.SetForceLegacyLayout(true); style.SetForceLegacyLayout(true);
if (style.Display() == EDisplay::kInline && if (style.Display() == EDisplay::kInline &&
parent_style.UserModify() == EUserModify::kReadOnly) { parent_style.UserModify() == EUserModify::kReadOnly) {
style.SetDisplay(EDisplay::kInlineBlock); style.SetDisplay(EDisplay::kInlineBlock);
} }
} else if (!RuntimeEnabledFeatures::LayoutNGBlockFragmentationEnabled()) {
// Disable NG for the entire subtree if we're establishing a block
// fragmentation context.
if (style.SpecifiesColumns() ||
(style.IsOverflowPaged() &&
element != document.ViewportDefiningElement())) {
style.SetForceLegacyLayout(true);
} else if (document.Paginated()) {
// This needs to be discovered on the root element.
DCHECK_EQ(element, document.documentElement());
style.SetForceLegacyLayout(true);
}
} }
} }
......
...@@ -16,6 +16,14 @@ class NGColumnLayoutAlgorithmTest : public NGBaseLayoutAlgorithmTest { ...@@ -16,6 +16,14 @@ class NGColumnLayoutAlgorithmTest : public NGBaseLayoutAlgorithmTest {
void SetUp() override { void SetUp() override {
NGBaseLayoutAlgorithmTest::SetUp(); NGBaseLayoutAlgorithmTest::SetUp();
style_ = ComputedStyle::Create(); style_ = ComputedStyle::Create();
was_block_fragmentation_enabled_ =
RuntimeEnabledFeatures::LayoutNGBlockFragmentationEnabled();
RuntimeEnabledFeatures::SetLayoutNGBlockFragmentationEnabled(true);
}
void TearDown() override {
RuntimeEnabledFeatures::SetLayoutNGBlockFragmentationEnabled(
was_block_fragmentation_enabled_);
} }
scoped_refptr<NGPhysicalBoxFragment> RunBlockLayoutAlgorithm( scoped_refptr<NGPhysicalBoxFragment> RunBlockLayoutAlgorithm(
...@@ -52,6 +60,7 @@ class NGColumnLayoutAlgorithmTest : public NGBaseLayoutAlgorithmTest { ...@@ -52,6 +60,7 @@ class NGColumnLayoutAlgorithmTest : public NGBaseLayoutAlgorithmTest {
} }
scoped_refptr<ComputedStyle> style_; scoped_refptr<ComputedStyle> style_;
bool was_block_fragmentation_enabled_ = false;
}; };
TEST_F(NGColumnLayoutAlgorithmTest, EmptyMulticol) { TEST_F(NGColumnLayoutAlgorithmTest, EmptyMulticol) {
......
...@@ -590,6 +590,10 @@ ...@@ -590,6 +590,10 @@
}, },
{ {
name: "LayoutNG", name: "LayoutNG",
implied_by: ["LayoutNGBlockFragmentation"],
},
{
name: "LayoutNGBlockFragmentation",
}, },
{ {
name: "LayoutNGFragmentCaching", name: "LayoutNGFragmentCaching",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment