Commit 99d2ea06 authored by Vladimir Levin's avatar Vladimir Levin Committed by Commit Bot

content-visibility: Add a (failing) test for composited descendant bug.

This patch lands a test and marks it as failing. Since the solution
to this bug doesn't seem obvious yet (see the referenced bug), we
should land the test so any of the potential fixes can be verified on
the bots.

R=chrishtr@chromium.org, wangxianzhu@chromium.org

Bug: 1113838
Change-Id: I410766ce8294309840ca21945c3b231c018825aa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2341356
Commit-Queue: vmpstr <vmpstr@chromium.org>
Reviewed-by: default avatarXianzhu Wang <wangxianzhu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#795770}
parent f492d16b
...@@ -41,6 +41,7 @@ crbug.com/802915 css3/blending/isolation-should-include-non-local-background.htm ...@@ -41,6 +41,7 @@ crbug.com/802915 css3/blending/isolation-should-include-non-local-background.htm
crbug.com/918155 virtual/prefer_compositing_to_lcd_text/scrollbars/overlay-scrollbar-over-child-layer-nested-2.html [ Pass ] crbug.com/918155 virtual/prefer_compositing_to_lcd_text/scrollbars/overlay-scrollbar-over-child-layer-nested-2.html [ Pass ]
crbug.com/918155 virtual/prefer_compositing_to_lcd_text/scrollbars/overlay-scrollbar-over-child-layer-nested.html [ Pass ] crbug.com/918155 virtual/prefer_compositing_to_lcd_text/scrollbars/overlay-scrollbar-over-child-layer-nested.html [ Pass ]
paint/invalidation/compositing/subpixel-offset-scaled-transform-composited.html [ Pass ] paint/invalidation/compositing/subpixel-offset-scaled-transform-composited.html [ Pass ]
crbug.com/1113838 external/wpt/css/css-contain/content-visibility/content-visibility-074.html [ Pass ]
# With CompositeAfterPaint and LayoutNGFragmentItem enabled # With CompositeAfterPaint and LayoutNGFragmentItem enabled
crbug.com/1103138 paint/invalidation/compositing/float-under-composited-inline.html [ Pass Crash ] crbug.com/1103138 paint/invalidation/compositing/float-under-composited-inline.html [ Pass Crash ]
......
...@@ -271,6 +271,7 @@ crbug.com/936084 external/wpt/css/css-sizing/max-content-input-001.html [ Failur ...@@ -271,6 +271,7 @@ crbug.com/936084 external/wpt/css/css-sizing/max-content-input-001.html [ Failur
crbug.com/1102803 external/wpt/svg/extensibility/foreignObject/isolation-with-svg.html [ Failure ] crbug.com/1102803 external/wpt/svg/extensibility/foreignObject/isolation-with-svg.html [ Failure ]
# Display locking failures # Display locking failures
crbug.com/1113838 external/wpt/css/css-contain/content-visibility/content-visibility-074.html [ Failure ]
crbug.com/849459 fragmentation/repeating-thead-under-repeating-thead.html [ Failure ] crbug.com/849459 fragmentation/repeating-thead-under-repeating-thead.html [ Failure ]
......
<!doctype HTML>
<html>
<meta charset="utf8">
<title>CSS Content Visibility: toggling auto with composited descedant (reference)</title>
<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-contain/#content-visibility">
<style>
#a { will-change: transform; }
#b { height: 15000px; }
#c {
width: 800px;
height: 600px;
}
#d {
will-change: transform;
top: 0px;
width: 500px;
height: 500px;
background: green;
}
.contain {
contain: layout style paint;
}
</style>
<div id="a">
</div>
<div id="b">
<div id="c" class=contain>
<div id="d"></div>
</div>
</div>
</div>
<!doctype HTML>
<html class="reftest-wait">
<meta charset="utf8">
<title>CSS Content Visibility: toggling auto with composited descedant</title>
<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-contain/#content-visibility">
<link rel="match" href="content-visibility-074-ref.html">
<meta name="assert" content="after toggling content-visibility auto a few times, composited descedant is visible.">
<script src="/common/reftest-wait.js"></script>
<style>
#a { will-change: transform; }
#b { height: 15000px; }
#c {
width: 800px;
height: 600px;
}
#d {
will-change: transform;
top: 0px;
width: 500px;
height: 500px;
background: green;
}
.auto {
content-visibility: auto;
}
</style>
<div id="a">
</div>
<div id="b">
<div id="c" class=auto>
<div id="d"></div>
</div>
</div>
</div>
<script>
function runTest(step) {
if (step % 2 == 0) {
requestAnimationFrame(() => runTest(step + 1));
return;
}
switch(step) {
case 1:
document.getElementById("c").classList.remove("auto");
break;
case 3:
document.getElementById("c").classList.add("auto");
break;
case 5:
document.getElementById("c").classList.remove("auto");
break;
case 7:
document.getElementById("c").classList.add("auto");
break;
case 9:
takeScreenshot();
return;
}
requestAnimationFrame(() => runTest(step + 1));
}
window.onload = () => requestAnimationFrame(() => runTest(0));
</script>
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