Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(451)

Side by Side Diff: LayoutTests/compositing/overflow/do-not-opt-in-with-out-of-flow-descendant.html

Issue 13913013: Only update composited scrolling state when necessary (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Adding more tests. Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <style>
5 #container {
6 width: 200px;
7 height: 200px;
8 overflow: scroll;
9 margin: 20px;
10 border: 1px solid black;
11 }
12
13 #abs-pos-ancestor {
14 width: 500px;
15 height: 500px;
16 position: absolute;
17 z-index: 0;
18 }
19
20 #positioned-ancestor {
21 width: 150px;
22 height: 300px;
23 position: relative;
24 }
25
26 #descendant {
27 left: 10px;
28 top: 10px;
29 width: 50px;
30 height: 50px;
31 background-color: blue;
32 position: absolute;
33 z-index: -20;
34 }
35 </style>
36 <script>
37 var debugMode = false;
38
39 if (window.testRunner)
40 testRunner.dumpAsText();
41
42 if (window.internals)
43 window.internals.settings.setAcceleratedCompositingForOverflowScrollEnable d(true);
44
45 function write(str)
46 {
47 var pre = document.getElementById('console');
48 var text = document.createTextNode(str + '\n');
49 pre.appendChild(text);
50 }
51
52 var iteration = 0;
53 function printResult(expectedResult)
54 {
55 // Force a style recalc.
56 document.body.offsetTop;
57
58 if (window.internals) {
59 var layerTree = window.internals.layerTreeAsText(document);
60
61 if (!layerTree == !expectedResult)
62 write('Iteration ' + iteration.toString() + ': Passed')
63 else
64 write('Iteration ' + iteration.toString() + ': FAILED')
65
66 if (layerTree) {
67 write('Iteration ' + iteration.toString() + ', layer tree');
68 if (debugMode)
69 write(layerTree);
Julien - ping for review 2013/04/18 00:42:34 The FAILED output could be improved. Ideally you w
Ian Vollick 2013/04/18 20:55:52 Done.
70 } else
71 write('Iteration ' + iteration.toString() + ', no layer tree');
72 }
73 iteration++;
74 }
75
76 function doTest()
77 {
78 var container = document.getElementById('container');
79 var positionedAncestor = document.getElementById('positioned-ancestor');
80 var descendant = document.getElementById('descendant');
81
82 // Initial configuration should opt in.
83 printResult(true);
84
85 // If positioned ancestor ceases to be positioned, the containing
86 // will become the abs-pos-ancestor. We should opt out.
87 positionedAncestor.style.position = 'static';
88 printResult(false);
89
90 // If we get rid of the out-of-flow positioned descendant at this point,
91 // it should be ok to opt back in.
92 descendant.style.display = 'none';
93 printResult(true);
94
95 // This should return us to our previous state.
96 descendant.style.display = '';
97 printResult(false);
98
99 // If the descendant ceases to be out-of-flow-positioned, then we should
100 // opt in.
101 descendant.style.position = 'static';
102 printResult(true);
103
104 // This should return us to our previous state.
105 descendant.style.position = '';
106 printResult(false);
107
108 // If the positionedAncestor again becomes positioned, it will become the
109 // containing block for the descendant and we should opt in.
110 positionedAncestor.style.position = 'relative';
111 printResult(true);
112 } // function doTest
113
114 window.addEventListener('load', doTest, false);
115 </script>
116 </head>
117
118 <body>
119 <div id="abs-pos-ancestor">
120 <div id="container">
121 <div id="positioned-ancestor">
122 <div id="descendant"></div>
123 </div>
124 </div>
125 </div>
126 <pre id="console"></pre>
127 </body>
128 </html>
129
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698