OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
| 4 <script src="../../resources/run-after-display.js"></script> |
4 <style> | 5 <style> |
5 .composited { | 6 .composited { |
6 -webkit-transform: translatez(0); | 7 -webkit-transform: translatez(0); |
7 } | 8 } |
8 | 9 |
9 .background { | 10 .background { |
10 position: fixed; | 11 position: fixed; |
11 background-color: lightgray; | 12 background-color: lightgray; |
12 width: 300px; | 13 width: 300px; |
13 height: 300px; | 14 height: 300px; |
(...skipping 26 matching lines...) Expand all Loading... |
40 #testResults { | 41 #testResults { |
41 display: none; | 42 display: none; |
42 } | 43 } |
43 | 44 |
44 body { | 45 body { |
45 margin: 0px; | 46 margin: 0px; |
46 } | 47 } |
47 </style> | 48 </style> |
48 | 49 |
49 <script> | 50 <script> |
50 if (window.testRunner) | 51 if (window.testRunner) { |
| 52 testRunner.waitUntilDone(); |
51 testRunner.dumpAsText(); | 53 testRunner.dumpAsText(); |
| 54 } |
52 | 55 |
53 if (window.internals) { | 56 if (window.internals) { |
54 internals.settings.setAcceleratedCompositingForFixedPositionEnabled(true
); | 57 internals.settings.setAcceleratedCompositingForFixedPositionEnabled(true
); |
55 internals.settings.setLayerSquashingEnabled(true); | 58 internals.settings.setLayerSquashingEnabled(true); |
56 } | 59 } |
57 | 60 |
58 function runTest() | 61 function runTest() |
59 { | 62 { |
60 if (!window.internals) | 63 if (!window.internals) |
61 return; | 64 return; |
62 | 65 |
63 // Case 1 | 66 (function() { |
64 document.getElementById('Case1').textContent = window.internals.layerTre
eAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); | |
65 | 67 |
66 // Case 2 | 68 return new Promise(function(resolve) { |
67 window.internals.startTrackingRepaints(document); | 69 // Case 1 |
68 window.scrollTo(0, 80); | 70 document.getElementById('Case1').textContent = window.internals.la
yerTreeAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); |
69 document.getElementById('Case2').textContent = window.internals.layerTre
eAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); | |
70 window.internals.stopTrackingRepaints(document); | |
71 | 71 |
72 // Case 3 | 72 resolve(); |
73 window.internals.startTrackingRepaints(document); | 73 }); |
74 window.scrollTo(0, 120); | |
75 document.getElementById('Case3').textContent = window.internals.layerTre
eAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); | |
76 window.internals.stopTrackingRepaints(document); | |
77 | 74 |
78 // Case 4 | 75 })().then(function() { |
79 window.internals.startTrackingRepaints(document); | |
80 window.scrollTo(0, 170); | |
81 document.getElementById('Case4').textContent = window.internals.layerTre
eAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); | |
82 window.internals.stopTrackingRepaints(document); | |
83 | 76 |
84 // Display the test results only after test is done so that it does not
affect repaint rect results. | 77 return new Promise(function(resolve) { |
85 document.getElementById('testResults').style.display = "block"; | 78 |
| 79 // Case 2 |
| 80 window.internals.startTrackingRepaints(document); |
| 81 window.scrollTo(0, 80); |
| 82 runAfterDisplay(function() { |
| 83 document.getElementById('Case2').textContent = window.intern
als.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); |
| 84 window.internals.stopTrackingRepaints(document); |
| 85 |
| 86 resolve(); |
| 87 }); |
| 88 |
| 89 }); |
| 90 |
| 91 }).then(function() { |
| 92 |
| 93 return new Promise(function(resolve) { |
| 94 |
| 95 // Case 3 |
| 96 window.internals.startTrackingRepaints(document); |
| 97 window.scrollTo(0, 120); |
| 98 runAfterDisplay(function() { |
| 99 document.getElementById('Case3').textContent = window.intern
als.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); |
| 100 window.internals.stopTrackingRepaints(document); |
| 101 |
| 102 resolve(); |
| 103 }); |
| 104 |
| 105 }); |
| 106 |
| 107 }).then(function() { |
| 108 |
| 109 return new Promise(function(resolve) { |
| 110 |
| 111 // Case 4 |
| 112 window.internals.startTrackingRepaints(document); |
| 113 window.scrollTo(0, 170); |
| 114 runAfterDisplay(function() { |
| 115 document.getElementById('Case4').textContent = window.intern
als.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); |
| 116 window.internals.stopTrackingRepaints(document); |
| 117 |
| 118 resolve(); |
| 119 }); |
| 120 |
| 121 }); |
| 122 |
| 123 }).then(function() { |
| 124 |
| 125 // Display the test results only after test is done so that it does no
t affect repaint rect results. |
| 126 document.getElementById('testResults').style.display = "block"; |
| 127 |
| 128 if (window.testRunner) |
| 129 testRunner.notifyDone(); |
| 130 |
| 131 }).catch(function(e) { |
| 132 |
| 133 console.error(e); |
| 134 |
| 135 }); |
86 } | 136 } |
87 </script> | 137 </script> |
88 </head> | 138 </head> |
89 | 139 |
90 <body onload="runTest()"> | 140 <body onload="runTest()"> |
91 | 141 |
92 <div id="description"> | 142 <div id="description"> |
93 <p>The gray div is a composited fixed-position element, and the cyan/lime | 143 <p>The gray div is a composited fixed-position element, and the cyan/lime |
94 elements should be squashed together on top. When scrolling, paragraphs may | 144 elements should be squashed together on top. When scrolling, paragraphs may |
95 pop in-and-out of the squashing layer when they change overlapping status | 145 pop in-and-out of the squashing layer when they change overlapping status |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 CASE 3, scrolling y to 120, no repaints expected: | 178 CASE 3, scrolling y to 120, no repaints expected: |
129 <pre id="Case3"></pre> | 179 <pre id="Case3"></pre> |
130 | 180 |
131 CASE 4, scrolling y to 170 new layers will be squashed, so things repaint: | 181 CASE 4, scrolling y to 170 new layers will be squashed, so things repaint: |
132 <pre id="Case4"></pre> | 182 <pre id="Case4"></pre> |
133 </div> | 183 </div> |
134 | 184 |
135 </body> | 185 </body> |
136 | 186 |
137 </html> | 187 </html> |
OLD | NEW |