| OLD | NEW |
| 1 <!DOCTYPE html> |
| 2 <html> |
| 3 <head> |
| 1 <script> | 4 <script> |
| 2 if (window.testRunner) | 5 if (window.testRunner) |
| 3 window.testRunner.dumpAsText(); | 6 testRunner.dumpAsText(); |
| 7 |
| 8 if (window.internals) |
| 9 internals.runtimeFlags.compositeOpaqueScrollersEnabled = true; |
| 4 | 10 |
| 5 function hasOpaqueCompositedScrollingContentsLayer(layer) { | 11 function hasOpaqueCompositedScrollingContentsLayer(layer) { |
| 6 if (layer.name == "Scrolling Contents Layer") | 12 if (layer.name == "Scrolling Contents Layer") |
| 7 return layer.contentsOpaque; | 13 return layer.contentsOpaque; |
| 8 if (layer.children) { | 14 if (layer.children) { |
| 9 for (var i = 0; i < layer.children.length; i++) { | 15 for (var i = 0; i < layer.children.length; i++) { |
| 10 if (hasOpaqueCompositedScrollingContentsLayer(layer.children[i])) | 16 if (hasOpaqueCompositedScrollingContentsLayer(layer.children[i])) |
| 11 return true; | 17 return true; |
| 12 } | 18 } |
| 13 } | 19 } |
| 14 return false; | 20 return false; |
| 15 } | 21 } |
| 16 | 22 |
| 17 onload = function() { | 23 onload = function() { |
| 18 if (!window.testRunner || !window.internals) | 24 if (!window.testRunner || !window.internals) |
| 19 return; | 25 return; |
| 20 | 26 |
| 21 var result = ""; | 27 var result = ""; |
| 22 result += "Should have opaque composited scrolling contents layer: "; | 28 result += "Should have opaque composited scrolling contents layer: "; |
| 23 if (hasOpaqueCompositedScrollingContentsLayer(JSON.parse(window.internals.la
yerTreeAsText(document)))) | 29 if (hasOpaqueCompositedScrollingContentsLayer(JSON.parse(window.internals.la
yerTreeAsText(document)))) |
| 24 result += "Pass.\n"; | 30 result += "Pass.\n"; |
| 25 else | 31 else |
| 26 result += "Fail.\n"; | 32 result += "Fail.\n"; |
| 27 window.testRunner.setCustomTextOutput(result); | 33 testRunner.setCustomTextOutput(result); |
| 28 } | 34 } |
| 29 </script> | 35 </script> |
| 30 <style> | 36 <style> |
| 31 #scroller { | 37 #scroller { |
| 32 background: white local content-box; | 38 background: white local content-box; |
| 33 border: 10px solid rgba(0, 255, 0, 0.5); | 39 border: 10px solid rgba(0, 255, 0, 0.5); |
| 34 overflow: scroll; | 40 overflow: scroll; |
| 35 width: 200px; | 41 width: 200px; |
| 36 height: 200px; | 42 height: 200px; |
| 37 will-change: transform; | |
| 38 } | 43 } |
| 39 .spacer { | 44 .spacer { |
| 40 height: 300px; | 45 height: 300px; |
| 41 } | 46 } |
| 42 </style> | 47 </style> |
| 48 </head> |
| 49 <body> |
| 43 <!-- The scroller's Scrolling Contents Layer should be opaque due to the opaque | 50 <!-- The scroller's Scrolling Contents Layer should be opaque due to the opaque |
| 44 color background. Even though the background has a content-box clip there | 51 color background. Even though the background has a content-box clip there |
| 45 is no gap because the scroller has no padding. This means that we will be | 52 is no gap because the scroller has no padding. This means that we will be |
| 46 able to draw text with subpixel anti-aliasing. | 53 able to draw text with subpixel anti-aliasing. |
| 47 --> | 54 --> |
| 48 <div id="scroller"><div class="spacer"></div></div> | 55 <div id="scroller"><div class="spacer"></div></div> |
| 56 </body></html> |
| OLD | NEW |