Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / third_party / WebKit / LayoutTests / compositing / overflow / scrolling-neg-z-index-descendants-should-cause-repaint.html
blobfcb03f4561a9ce61718a6a34a3ce8525a81a33fb
1 <!DOCTYPE HTML>
2 <html>
3 <head>
4 <script>
5 if (window.testRunner)
6 window.testRunner.dumpAsText();
8 if (window.internals) {
9 window.internals.settings.setPreferCompositingToLCDTextEnabled(false);
12 function hasScrollbarRepaint(layerTree)
14 return hasScrollbarRepaintHelper(JSON.parse(layerTree));
17 function hasScrollbarRepaintHelper(jsonLayerTree) {
18 var repaintRects = jsonLayerTree["repaintRects"];
19 if (repaintRects) {
20 for (var i = 0; i < repaintRects.length; ++i) {
21 var width = repaintRects[i][2];
22 var height = repaintRects[i][3];
23 if (width == 15 && height == 285)
24 return true;
27 var children = jsonLayerTree["children"];
28 if (children) {
29 for (var i = 0; i < children.length; i++) {
30 if (hasScrollbarRepaintHelper(children[i]))
31 return true;
34 return false;
37 function testRepaint() {
38 var result = "";
39 var container = document.getElementById("container");
41 document.body.offsetTop;
43 if (window.internals)
44 window.internals.startTrackingRepaints(document);
46 container.scrollTop = 100;
48 if (window.internals) {
49 if (hasScrollbarRepaint(window.internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS)))
50 result += "PASS repainted when expected\n";
51 else
52 result += "FAIL did not repaint when expected\n";
53 window.internals.stopTrackingRepaints(document);
56 var pre = document.createElement('pre');
57 document.body.appendChild(pre);
58 pre.innerHTML = result;
59 if (!window.internals)
60 document.getElementById("description").style.display = "block";
63 window.onload = testRepaint;
64 </script>
65 <style>
66 #container {
67 width: 100px;
68 height: 300px;
69 box-shadow: inset 3px 3px 10px grey;
70 overflow: auto;
71 border: 1px black solid;
72 overflow: scroll;
73 position: relative;
74 -webkit-backface-visibility: hidden;
77 #neg-z {
78 position: relative;
79 z-index: -1;
82 .scrolled {
83 width: 50px;
84 height: 50px;
85 margin: 10px;
86 position: relative;
87 background-color: green;
90 #description {
91 display: none;
93 </style>
94 </head>
95 <body>
96 <pre id="description">
97 This test ensures that the logic for ensuring that we don't repaint when
98 scrolling composited layers works correctly in the face of neg z-order
99 descendants.
100 </pre>
101 <div id="container">
102 <div id="neg-z">
103 <div class="scrolled"></div>
104 <div class="scrolled"></div>
105 <div class="scrolled"></div>
106 <div class="scrolled"></div>
107 <div class="scrolled"></div>
108 <div class="scrolled"></div>
109 <div class="scrolled"></div>
110 </div>
111 </div>
112 </body>
113 </html>