Bug 1224251 patch 1 - Add reftests. r=mattwoodrow
☠☠ backed out by 196f2f131c70 ☠ ☠
authorL. David Baron <dbaron@dbaron.org>
Sun, 29 Nov 2015 23:15:00 -0800
changeset 274550 52f9c007281d973138d8b91a1a5fe6a3af717cd0
parent 274549 b181b44bfeeba4e1115d8eedebbfe267226d9b65
child 274551 5c4a581885e47d0d5a0a864525298ffd3c4c29e0
push id68626
push userdbaron@mozilla.com
push dateMon, 30 Nov 2015 07:16:42 +0000
treeherdermozilla-inbound@4a3c509bcb25 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmattwoodrow
bugs1224251
milestone45.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 1224251 patch 1 - Add reftests. r=mattwoodrow Locally, these tests fail reliably for me without the patch. I'm not, however, confident that they would continue to do so, across future mutations in the code, were the bug to be reintroduced, given the amount of fiddling I had to go through to get them to fail without the patch. That is, without the patch: table-row-opacity-dynamic-1.html shows the area of the row that's not behind the text as a much more opaque blue than it should be (while the area of the row that is behind the text is correct) table-row-opacity-dynamic-2.html shows the area of the row that's not behind the text as the white background showing through (while the area of the row that is behind the text is correct)
layout/reftests/table-background/reftest.list
layout/reftests/table-background/table-row-opacity-dynamic-1-ref.html
layout/reftests/table-background/table-row-opacity-dynamic-1.html
layout/reftests/table-background/table-row-opacity-dynamic-2-ref.html
layout/reftests/table-background/table-row-opacity-dynamic-2.html
--- a/layout/reftests/table-background/reftest.list
+++ b/layout/reftests/table-background/reftest.list
@@ -53,8 +53,10 @@ fails == border-separate-opacity-table-c
 skip-if(B2G||Mulet) == border-separate-opacity-table-row.html border-separate-opacity-table-row-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
 skip-if(B2G||Mulet) == border-separate-opacity-table.html border-separate-opacity-table-ref.html # bug 773482 # Initial mulet triage: parity with B2G/B2G Desktop
 != scrollable-rowgroup-collapse-background.html scrollable-rowgroup-collapse-notref.html 
 != scrollable-rowgroup-collapse-border.html scrollable-rowgroup-collapse-notref.html     
 != scrollable-rowgroup-separate-background.html scrollable-rowgroup-separate-notref.html
 == scrollable-rowgroup-separate-border.html scrollable-rowgroup-separate-notref.html # scrolling rowgroups were removed in bug 28800
 == empty-cells-default-1.html empty-cells-default-1-ref.html
 == empty-cells-default-2.html empty-cells-default-2-ref.html
+fails == table-row-opacity-dynamic-1.html table-row-opacity-dynamic-1-ref.html # bug 1224253
+fails == table-row-opacity-dynamic-2.html table-row-opacity-dynamic-2-ref.html # bug 1224251
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-background/table-row-opacity-dynamic-1-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML>
+<html>
+<title>Test for bug 1224253</title>
+<style>
+
+body { background: white; color: black }
+
+table {
+  padding: 0;
+  border-spacing: 0;
+  border: none;
+  width: 15em;
+}
+
+tr {
+  background: rgba(0, 0, 255, 0.8);
+}
+
+td {
+  border: none;
+}
+
+</style>
+
+
+<table>
+  <tr style="opacity: 0.8"><td>cell</td></tr>
+</table>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-background/table-row-opacity-dynamic-1.html
@@ -0,0 +1,55 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<title>Test for bug 1224253</title>
+<style>
+
+body { background: white; color: black }
+
+table {
+  padding: 0;
+  border-spacing: 0;
+  border: none;
+  width: 15em;
+}
+
+tr {
+  background: rgba(0, 0, 255, 0.8);
+}
+
+td {
+  border: none;
+}
+
+</style>
+
+
+<table>
+  <tr><td>cell</td></tr>
+</table>
+
+<script>
+
+var tr = document.getElementsByTagName("tr")[0];
+
+document.addEventListener("MozReftestInvalidate", step1, false);
+
+function step1(event) {
+  requestAnimationFrame(step2);
+}
+
+function step2(now) {
+  tr.style.opacity = "0.8";
+  setTimeout(step3, 0);
+}
+
+function step3() {
+  tr.style.opacity = "0.8";
+  setTimeout(step4, 0);
+}
+
+function step4() {
+  tr.style.opacity = "0.8";
+  document.documentElement.classList.remove("reftest-wait");
+}
+
+</script>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-background/table-row-opacity-dynamic-2-ref.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML>
+<html>
+<title>Test for bug 1224253</title>
+<style>
+
+body { background: white; color: black }
+
+table {
+  padding: 0;
+  border-spacing: 0;
+  border: none;
+  width: 15em;
+}
+
+tr {
+  background: rgba(0, 0, 255, 0.8);
+}
+
+td {
+  border: none;
+}
+
+</style>
+
+
+<table>
+  <tr><td>cell</td></tr>
+</table>
new file mode 100644
--- /dev/null
+++ b/layout/reftests/table-background/table-row-opacity-dynamic-2.html
@@ -0,0 +1,54 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<title>Test for bug 1224251</title>
+<style>
+
+body { background: white; color: black }
+
+table {
+  padding: 0;
+  border-spacing: 0;
+  border: none;
+  width: 15em;
+}
+
+tr {
+  background: rgba(0, 0, 255, 0.8);
+}
+
+td {
+  border: none;
+}
+
+</style>
+
+
+<table>
+  <tr style="opacity: 0.8"><td>cell</td></tr>
+</table>
+
+<script>
+
+var tr = document.getElementsByTagName("tr")[0];
+
+// Not sure why, but to make this test fail without the patch, this has to
+// be a setTimeout(0) rather than waiting for MozReftestInvalidate.
+setTimeout(step1, 0);
+
+function step1() {
+  tr.style.opacity = "0.8";
+  setTimeout(step2, 0);
+}
+
+function step2() {
+  tr.style.opacity = "0.8";
+  setTimeout(step3, 0);
+}
+
+function step3() {
+  tr.style.opacity = "";
+
+  document.documentElement.classList.remove("reftest-wait");
+}
+
+</script>