Bug 1575106 Part 4 - Add reftests, crashtests, and adjust test expectations. r=dbaron
authorTing-Yu Lin <tlin@mozilla.com>
Mon, 26 Aug 2019 06:10:34 +0000
changeset 489882 400cbd23462116d9e80ebe1765248da6e60b1fcd
parent 489881 66042c8f7236383f5f4c89832567f359b62e4d32
child 489883 ca594da0c06092265d7b18e4dc24db6bc7bc7280
push id36491
push usermalexandru@mozilla.com
push dateMon, 26 Aug 2019 22:30:36 +0000
treeherdermozilla-central@5c7635de0cb6 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersdbaron
bugs1575106, 1346454
milestone70.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1575106 Part 4 - Add reftests, crashtests, and adjust test expectations. r=dbaron 1346454-1.html and 1346454-2.html are moved to keep the list sorted. Differential Revision: https://phabricator.services.mozilla.com/D43129
layout/base/crashtests/crashtests.list
layout/generic/crashtests/1554824.html
layout/generic/crashtests/1563131.html
layout/generic/crashtests/1571239.html
layout/generic/crashtests/1571598.html
layout/generic/crashtests/1572901.html
layout/generic/crashtests/1573216.html
layout/generic/crashtests/1574993.html
layout/generic/crashtests/crashtests.list
layout/reftests/columns/column-balancing-paged-001-ref.html
layout/reftests/columns/column-balancing-paged-001.html
layout/reftests/columns/reftest.list
testing/web-platform/meta/css/css-multicol/multicol-rule-nested-balancing-004.html.ini
testing/web-platform/meta/css/css-multicol/multicol-span-all-children-height-007.html.ini
testing/web-platform/tests/css/css-multicol/multicol-rule-nested-balancing-004-ref.html
testing/web-platform/tests/css/css-multicol/multicol-rule-nested-balancing-004.html
testing/web-platform/tests/css/css-multicol/multicol-span-all-children-height-007-ref.html
testing/web-platform/tests/css/css-multicol/multicol-span-all-children-height-007.html
--- a/layout/base/crashtests/crashtests.list
+++ b/layout/base/crashtests/crashtests.list
@@ -570,12 +570,12 @@ pref(layout.css.column-span.enabled,true
 load 1539303.html
 pref(layout.css.column-span.enabled,true) load 1541679.html
 load 1547261.html
 pref(layout.css.column-span.enabled,true) load 1547391.html
 pref(layout.css.resizeobserver.enabled,true) load 1548057.html
 pref(layout.css.column-span.enabled,true) load 1549867.html
 load 1553874.html
 load 1560328.html
-asserts(1-1) pref(layout.css.column-span.enabled,true) load 1566672.html # bug 1573759
+pref(layout.css.column-span.enabled,true) load 1566672.html
 load 1574101-1.html
 load 1574101-2.html
 HTTP load 1575908-1.html
new file mode 100644
--- /dev/null
+++ b/layout/generic/crashtests/1554824.html
@@ -0,0 +1,25 @@
+<style>
+* {
+  min-height: 4em;
+  height: 0.238em;
+  white-space: pre;
+  column-width: 0em;
+  -webkit-transform-style: preserve-3d;
+}
+</style>
+<script>
+function go() {
+  a.after("x")
+}
+</script>
+</head>
+<body onload=go()>
+a
+<a style="direction: rtl">
+</a>
+</pre>
+<ul>
+<li id="a">
+</ul>
+</canvas>
+</font>
new file mode 100644
--- /dev/null
+++ b/layout/generic/crashtests/1563131.html
@@ -0,0 +1,17 @@
+<style>
+#c {
+  margin-right: 24vmin;
+}
+#b {
+  column-count: 1;
+  max-width: 18%;
+  writing-mode: tb;
+}
+#a {
+  translate: 0px 9px 0px;
+  white-space: pre-line;
+}
+</style>
+<fieldset id="a">
+<fieldset id="b">
+<select id="c">a</select>
new file mode 100644
--- /dev/null
+++ b/layout/generic/crashtests/1571239.html
@@ -0,0 +1,22 @@
+<style>
+.b {
+  font-size: 0.0136in;
+  writing-mode: tb;
+}
+* {
+  column-count: 7;
+  width: 7pt;
+}
+</style>
+<script>
+function go() {
+  a.style.setProperty("column-span", "all")
+}
+</script>
+<body onload=go()>
+<q>
+<ins class="b">
+<pre></pre>
+<q id="a">A</q>
+</ins>
+<!-- a -->
new file mode 100644
--- /dev/null
+++ b/layout/generic/crashtests/1571598.html
@@ -0,0 +1,14 @@
+<style>
+* {
+  width: 66%;
+  quotes: none;
+  padding-right: 1px;
+  column-width: 0;
+}
+</style>
+<menuitem>A</menu>
+<font style="writing-mode: sideways-rl">
+<link>
+<data>A</command>
+</font>
+<q>
new file mode 100644
--- /dev/null
+++ b/layout/generic/crashtests/1572901.html
@@ -0,0 +1,19 @@
+<style id="a">
+* {
+  font: 0px/0px serif;
+  columns: 0;
+  display: inherit;
+}
+</style>
+<script>
+function go() {
+  a.appendChild(b)
+}
+</script>
+<body onload=go()>
+<details style="height: 1vw; display: inline" open="">
+<summary></br>
+<s dir="">
+<svg>
+</summary>
+<optgroup id="b">
new file mode 100644
--- /dev/null
+++ b/layout/generic/crashtests/1573216.html
@@ -0,0 +1,20 @@
+<style>
+body::first-letter {}
+#c { display: initial }
+* {
+  columns: 0;
+  contain: size layout;
+  writing-mode: vertical-rl
+}
+</style>
+<script>
+function go() {
+  a.size = "0"
+  var x = b.offsetWidth
+  document.title = "a"
+}
+</script>
+<body onload=go()>
+<title id="c">A</title>
+<hr id="b">
+<font id="a">
new file mode 100644
--- /dev/null
+++ b/layout/generic/crashtests/1574993.html
@@ -0,0 +1,21 @@
+<style>
+* {
+  font: 0px/0px serif;
+  columns: 0;
+  display: inherit;
+}
+.x {
+  height: 1vw;
+  display: inline;
+}
+</style>
+<script>
+function go() {
+  a.prepend(null)
+}
+</script>
+<body onload=go()>
+<details class="x" open="">
+<s dir="rtl">
+<table id="a">
+<svg></svg>
--- a/layout/generic/crashtests/crashtests.list
+++ b/layout/generic/crashtests/crashtests.list
@@ -668,16 +668,18 @@ load 1278461-1.html
 load 1278461-2.html
 load 1281102.html
 load 1297427-non-equal-centers.html
 load 1304441.html
 load 1308876-1.html
 load 1316649.html
 load 1343552-1.html
 load 1343552-2.html
+load 1346454-1.html
+load 1346454-2.html
 load 1349650.html
 asserts-if(browserIsRemote,0-5) load 1349816-1.html # bug 1350352
 load 1350372.html
 load 1364361-1.html
 load 1367413-1.html
 load 1368617-1.html
 load 1373586.html
 load 1375858.html
@@ -726,17 +728,22 @@ pref(layout.css.column-span.enabled,true
 pref(layout.css.column-span.enabled,true) load 1517297.html
 load chrome://reftest/content/crashtests/layout/generic/crashtests/1520798-1.xul
 load 1520798-2.html
 load 1539656.html
 load 1544060-1.html
 load 1544060-2.html
 load 1542441.html
 pref(layout.css.grid-template-subgrid-value.enabled,true) load 1553824.html
-load 1346454-1.html
-load 1346454-2.html
+pref(layout.css.column-span.enabled,true) load 1554824.html
 load 1555142.html
 load 1562105.html
+pref(layout.css.column-span.enabled,true) load 1563131.html
 pref(layout.css.column-span.enabled,true) load 1568001-1.html
 pref(layout.css.column-span.enabled,true) load 1568001-2.html
+pref(layout.css.column-span.enabled,true) load 1571239.html
 load 1571460.html
+pref(layout.css.column-span.enabled,true) load 1571598.html
 pref(layout.css.column-span.enabled,true) load 1571897.html
+pref(layout.css.column-span.enabled,true) load 1572901.html
+pref(layout.css.column-span.enabled,true) load 1573216.html
 load 1574552.html
+pref(layout.css.column-span.enabled,true) load 1574993.html
new file mode 100644
--- /dev/null
+++ b/layout/reftests/columns/column-balancing-paged-001-ref.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+  <meta charset="utf-8">
+  <title>CSS Multi-column Layout Test Reference: Test fragmentation for a nested multi-column container with column-span in paginated context</title>
+  <link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
+  <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+  <style>
+  .inner {
+    column-count: 2;
+    column-rule: 3px solid green;
+    background-color: lightgreen;
+  }
+  .block1 {
+    background-color: yellow;
+    height: 3in;
+  }
+  .spanner {
+    column-span: all;
+    height: 2in;
+    background-color: lightblue;
+  }
+  .block2 {
+    background-color: pink;
+    height: 3in;
+  }
+  </style>
+
+  <article class="inner">
+    <div class="block1">block1</div>
+  </article>
+  <div class="spanner">spanner</div>
+  <article class="inner">
+    <div class="block2">block2</div>
+  </article>
+</html>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/columns/column-balancing-paged-001.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html class="reftest-paged">
+  <meta charset="utf-8">
+  <title>CSS Multi-column Layout Test: Test fragmentation for a nested multi-column container with column-span in paginated context</title>
+  <link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
+  <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
+  <link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-span">
+  <link rel="help" href="https://drafts.csswg.org/css-break/#breaking-rules">
+
+  <style>
+  .outer {
+    column-count: 1;
+    column-rule: 6px solid black;
+  }
+  .inner {
+    column-count: 2;
+    column-rule: 3px solid green;
+    background-color: lightgreen;
+  }
+  .block1 {
+    background-color: yellow;
+    height: 3in;
+  }
+  .spanner {
+    column-span: all;
+    height: 2in;
+    background-color: lightblue;
+  }
+  .block2 {
+    background-color: pink;
+    height: 3in
+  }
+  </style>
+
+  <article class="outer">
+    <article class="inner">
+      <div class="block1">block1</div>
+      <div class="spanner">spanner</div>
+      <div class="block2">block2</div>
+    </article>
+  </article>
+</html>
--- a/layout/reftests/columns/reftest.list
+++ b/layout/reftests/columns/reftest.list
@@ -12,16 +12,17 @@
 == column-balancing-overflow-003.html column-balancing-overflow-003.ref.html
 == column-balancing-overflow-004.html column-balancing-overflow-004.ref.html
 fuzzy-if(webrender,0-126,0-364) == column-balancing-overflow-005.html column-balancing-overflow-005.ref.html
 == column-balancing-000.html column-balancing-000.ref.html
 == column-balancing-001.html column-balancing-000.ref.html
 == column-balancing-002.html column-balancing-002.ref.html
 == column-balancing-003.html column-balancing-000.ref.html
 == column-balancing-004.html column-balancing-004.ref.html
+pref(layout.css.column-span.enabled,true) == column-balancing-paged-001.html column-balancing-paged-001-ref.html
 == column-box-alignment-rtl.html column-box-alignment-rtl-ref.html
 == columnfill-balance.html columnfill-balance-ref.html
 fuzzy-if(OSX,0-32,0-1000) == columnfill-auto.html columnfill-auto-ref.html
 == columnfill-auto-2.html columnfill-auto-2-ref.html
 == columnfill-auto-3.html columnfill-auto-2-ref.html
 == columnrule-basic.html columnrule-basic-ref.html
 == columnrule-complex.html columnrule-complex-ref.html
 != columnrule-linestyles.html columnrule-linestyles-notref.html
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/css/css-multicol/multicol-rule-nested-balancing-004.html.ini
@@ -0,0 +1,2 @@
+[multicol-rule-nested-balancing-004.html]
+  prefs: [layout.css.column-span.enabled:true]
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/meta/css/css-multicol/multicol-span-all-children-height-007.html.ini
@@ -0,0 +1,2 @@
+[multicol-span-all-children-height-007.html]
+  prefs: [layout.css.column-span.enabled:true]
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-multicol/multicol-rule-nested-balancing-004-ref.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+  <meta charset="utf-8">
+  <title>CSS Multi-column Layout Test Reference: Test the column rules' block-size with nested balancing multicol container</title>
+  <link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
+  <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+  <style>
+  .outer {
+    column-count: 1;
+    column-rule: 6px solid black;
+    column-fill: auto;
+    background-color: rgba(0, 0, 255, 0.3);
+    width: 200px;
+    height: 300px;
+  }
+  .inner {
+    column-count: 1;
+    column-rule: 3px solid gray;
+    column-fill: auto;
+    background-color: rgba(255, 0, 255, 0.3);
+  }
+  .inner-block {
+    background-color: rgba(0, 255, 0, 0.3);
+  }
+  .space {
+    height: 100px;
+  }
+  </style>
+
+  <article class="outer">
+    <article class="inner">
+      <div class="inner-block" style="height: 300px;"></div>
+    </article>
+    <article class="inner" style="height: 200px;">
+      <div class="inner-block" style="height: 200px;"></div>
+      <div class="inner-block" style="height: 100px;"></div>
+      <div class="space"></div>
+    </article>
+  </article>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-multicol/multicol-rule-nested-balancing-004.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html>
+  <meta charset="utf-8">
+  <title>CSS Multi-column Layout Test: Test the column rules' block-size with nested balancing multicol container</title>
+  <link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
+  <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+  <link rel="help" href="https://drafts.csswg.org/css-multicol-1/#cf">
+  <link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-gaps-and-rules">
+  <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2309">
+  <link rel="match" href="multicol-rule-nested-balancing-004-ref.html">
+  <meta name="assert" content="This test verifies that the column-rules are extended to the content block-end edges of their corresponding inner and outer multicol container.">
+
+  <style>
+  .outer {
+    column-count: 1;
+    column-rule: 6px solid black;
+    background-color: rgba(0, 0, 255, 0.3);
+    width: 200px;
+    height: 300px;
+  }
+  .inner {
+    column-count: 1;
+    column-rule: 3px solid gray;
+    background-color: rgba(255, 0, 255, 0.3);
+    height: 500px;
+  }
+  .inner-block {
+    background-color: rgba(0, 255, 0, 0.3);
+    height: 600px;
+  }
+  </style>
+
+  <!-- It is deliberate that the inner column's block-size is greater than
+       outer column's, and the inner-block's block-size is also greater than
+       inner column's. -->
+  <article class="outer">
+    <article class="inner">
+      <div class="inner-block"></div>
+    </article>
+  </article>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-multicol/multicol-span-all-children-height-007-ref.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html>
+  <meta charset="utf-8">
+  <title>CSS Multi-column Layout Test Reference: Test fragmentation for a nested multi-column container with column-span</title>
+  <link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
+  <link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+
+  <style>
+  .outer {
+    column-count: 2;
+    column-fill: auto;
+    column-rule: 6px solid black;
+    width: 400px;
+    height: 110px;
+  }
+  .inner {
+    column-count: 2;
+    column-rule: 3px solid green;
+    box-sizing: border-box;
+    height: 110px;
+    background-color: lightgreen;
+    border: solid purple;
+  }
+  .block1 {
+    background-color: yellow;
+    height: 200px;
+  }
+  .spanner {
+    column-span: all;
+    height: 50px;
+    background-color: lightblue;
+  }
+  .block2 {
+    background-color: yellow;
+    height: 120px;
+  }
+  </style>
+
+  <article class="outer">
+    <article class="inner" style="border-width: 10px 10px 0;">
+      <div class="block1">block1</div>
+    </article>
+    <article class="inner" style="border-width: 0 10px;">
+      <div class="spanner">spanner</div>
+      <div class="block2">block2</div>
+    </article>
+    <article class="inner" style="border-width: 0 10px 10px; height:auto;">
+      <div class="block2"></div>
+    </article>
+  </article>
+</html>
new file mode 100644
--- /dev/null
+++ b/testing/web-platform/tests/css/css-multicol/multicol-span-all-children-height-007.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html>
+  <meta charset="utf-8">
+  <title>CSS Multi-column Layout Test: Test fragmentation for a nested multi-column container with column-span</title>
+  <link rel="author" title="Ting-Yu Lin" href="tlin@mozilla.com">
+  <link rel="author" title="Mozilla" href="http://www.mozilla.org/">
+  <link rel="help" href="https://drafts.csswg.org/css-multicol-1/#column-span">
+  <link rel="help" href="https://drafts.csswg.org/css-break/#breaking-rules">
+  <link rel="match" href="multicol-span-all-children-height-007-ref.html">
+  <meta name="assert" content="This test verifies a nested multi-column container with non-auto height and column-span child can be fragmented.">
+
+  <style>
+  .outer {
+    column-count: 2;
+    column-rule: 6px solid black;
+    width: 400px;
+    height: 110px;
+  }
+  .inner {
+    column-count: 2;
+    column-rule: 3px solid green;
+    height: 270px;
+    background-color: lightgreen;
+    border: 10px solid purple;
+  }
+  .block1 {
+    background-color: yellow;
+    height: 200px;
+  }
+  .spanner {
+    column-span: all;
+    height: 50px;
+    background-color: lightblue;
+  }
+  .block2 {
+    background-color: yellow;
+    height: 240px;
+  }
+  </style>
+
+  <article class="outer">
+    <article class="inner">
+      <div class="block1">block1</div>
+      <div class="spanner">spanner</div>
+      <div class="block2">block2</div>
+    </article>
+  </article>
+</html>