| OLD | NEW |
| 1 Test that layers can be nicely added or removed from a squashed layer, without u
nnecessary repaints on any layer. Click anywhere to test interactively; keep cli
cking to proceed through the test. | 1 Test that layers can be nicely added or removed from a squashed layer, without u
nnecessary repaints on any layer. Click anywhere to test interactively; keep cli
cking to proceed through the test. |
| 2 | 2 |
| 3 CASE 1, original layer tree with overlap1 and overlap2: | 3 CASE 1, original layer tree with overlap1 and overlap2: |
| 4 { | 4 { |
| 5 "bounds": [800, 600], | 5 "bounds": [800, 600], |
| 6 "children": [ | 6 "children": [ |
| 7 { | 7 { |
| 8 "bounds": [800, 600], | 8 "bounds": [800, 600], |
| 9 "contentsOpaque": true, | 9 "contentsOpaque": true, |
| 10 "drawsContent": true, | 10 "drawsContent": true, |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 { | 34 { |
| 35 "bounds": [800, 600], | 35 "bounds": [800, 600], |
| 36 "children": [ | 36 "children": [ |
| 37 { | 37 { |
| 38 "bounds": [800, 600], | 38 "bounds": [800, 600], |
| 39 "contentsOpaque": true, | 39 "contentsOpaque": true, |
| 40 "drawsContent": true, | 40 "drawsContent": true, |
| 41 "paintInvalidations": [ | 41 "paintInvalidations": [ |
| 42 { | 42 { |
| 43 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", | 43 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 44 "reason": "layer" | 44 "reason": "subtree" |
| 45 } | 45 } |
| 46 ], | 46 ], |
| 47 "children": [ | 47 "children": [ |
| 48 { | 48 { |
| 49 "shouldFlattenTransform": false, | 49 "shouldFlattenTransform": false, |
| 50 "children": [ | 50 "children": [ |
| 51 { | 51 { |
| 52 "position": [60, 60], | 52 "position": [60, 60], |
| 53 "bounds": [400, 400], | 53 "bounds": [400, 400], |
| 54 "contentsOpaque": true, | 54 "contentsOpaque": true, |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 "backgroundColor": "#808080" | 130 "backgroundColor": "#808080" |
| 131 }, | 131 }, |
| 132 { | 132 { |
| 133 "position": [300, 300], | 133 "position": [300, 300], |
| 134 "bounds": [100, 100], | 134 "bounds": [100, 100], |
| 135 "drawsContent": true, | 135 "drawsContent": true, |
| 136 "paintInvalidations": [ | 136 "paintInvalidations": [ |
| 137 { | 137 { |
| 138 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", | 138 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", |
| 139 "rect": [160, 160, 100, 100], | 139 "rect": [160, 160, 100, 100], |
| 140 "reason": "layer" | 140 "reason": "subtree" |
| 141 }, | 141 }, |
| 142 { | 142 { |
| 143 "object": "LayoutBlockFlow (positioned) DIV id='A' class='over
lap1'", | 143 "object": "LayoutBlockFlow (positioned) DIV id='A' class='over
lap1'", |
| 144 "rect": [0, 0, 100, 100], | 144 "rect": [0, 0, 100, 100], |
| 145 "reason": "layoutObject removal" | 145 "reason": "layoutObject removal" |
| 146 }, | 146 }, |
| 147 { | 147 { |
| 148 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", | 148 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", |
| 149 "rect": [0, 0, 100, 100], | 149 "rect": [0, 0, 100, 100], |
| 150 "reason": "compositing update" | 150 "reason": "compositing update" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 161 { | 161 { |
| 162 "bounds": [800, 600], | 162 "bounds": [800, 600], |
| 163 "children": [ | 163 "children": [ |
| 164 { | 164 { |
| 165 "bounds": [800, 600], | 165 "bounds": [800, 600], |
| 166 "contentsOpaque": true, | 166 "contentsOpaque": true, |
| 167 "drawsContent": true, | 167 "drawsContent": true, |
| 168 "paintInvalidations": [ | 168 "paintInvalidations": [ |
| 169 { | 169 { |
| 170 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", | 170 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", |
| 171 "reason": "layer" | 171 "reason": "subtree" |
| 172 } | 172 } |
| 173 ], | 173 ], |
| 174 "children": [ | 174 "children": [ |
| 175 { | 175 { |
| 176 "shouldFlattenTransform": false, | 176 "shouldFlattenTransform": false, |
| 177 "children": [ | 177 "children": [ |
| 178 { | 178 { |
| 179 "position": [60, 60], | 179 "position": [60, 60], |
| 180 "bounds": [400, 400], | 180 "bounds": [400, 400], |
| 181 "contentsOpaque": true, | 181 "contentsOpaque": true, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 193 "reason": "compositing update" | 193 "reason": "compositing update" |
| 194 }, | 194 }, |
| 195 { | 195 { |
| 196 "object": "LayoutBlockFlow (positioned) DIV id='B' class='over
lap2'", | 196 "object": "LayoutBlockFlow (positioned) DIV id='B' class='over
lap2'", |
| 197 "rect": [0, 0, 100, 100], | 197 "rect": [0, 0, 100, 100], |
| 198 "reason": "layoutObject insertion" | 198 "reason": "layoutObject insertion" |
| 199 }, | 199 }, |
| 200 { | 200 { |
| 201 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", | 201 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", |
| 202 "rect": [0, 0, 100, 100], | 202 "rect": [0, 0, 100, 100], |
| 203 "reason": "layer" | 203 "reason": "subtree" |
| 204 } | 204 } |
| 205 ] | 205 ] |
| 206 } | 206 } |
| 207 ] | 207 ] |
| 208 } | 208 } |
| 209 ] | 209 ] |
| 210 } | 210 } |
| 211 ] | 211 ] |
| 212 } | 212 } |
| 213 CASE 6, overlap1 gets added back, and overlap3 gets removed: | 213 CASE 6, overlap1 gets added back, and overlap3 gets removed: |
| 214 { | 214 { |
| 215 "bounds": [800, 600], | 215 "bounds": [800, 600], |
| 216 "children": [ | 216 "children": [ |
| 217 { | 217 { |
| 218 "bounds": [800, 600], | 218 "bounds": [800, 600], |
| 219 "contentsOpaque": true, | 219 "contentsOpaque": true, |
| 220 "drawsContent": true, | 220 "drawsContent": true, |
| 221 "paintInvalidations": [ | 221 "paintInvalidations": [ |
| 222 { | 222 { |
| 223 "object": "LayoutBlockFlow (positioned) DIV id='A' class='overlap1'", | 223 "object": "LayoutBlockFlow (positioned) DIV id='A' class='overlap1'", |
| 224 "reason": "layer" | 224 "reason": "subtree" |
| 225 } | 225 } |
| 226 ], | 226 ], |
| 227 "children": [ | 227 "children": [ |
| 228 { | 228 { |
| 229 "shouldFlattenTransform": false, | 229 "shouldFlattenTransform": false, |
| 230 "children": [ | 230 "children": [ |
| 231 { | 231 { |
| 232 "position": [60, 60], | 232 "position": [60, 60], |
| 233 "bounds": [400, 400], | 233 "bounds": [400, 400], |
| 234 "contentsOpaque": true, | 234 "contentsOpaque": true, |
| (...skipping 16 matching lines...) Expand all Loading... |
| 251 "reason": "layoutObject removal" | 251 "reason": "layoutObject removal" |
| 252 }, | 252 }, |
| 253 { | 253 { |
| 254 "object": "LayoutBlockFlow (positioned) DIV id='A' class='over
lap1'", | 254 "object": "LayoutBlockFlow (positioned) DIV id='A' class='over
lap1'", |
| 255 "rect": [0, 0, 100, 100], | 255 "rect": [0, 0, 100, 100], |
| 256 "reason": "layoutObject insertion" | 256 "reason": "layoutObject insertion" |
| 257 }, | 257 }, |
| 258 { | 258 { |
| 259 "object": "LayoutBlockFlow (positioned) DIV id='B' class='over
lap2'", | 259 "object": "LayoutBlockFlow (positioned) DIV id='B' class='over
lap2'", |
| 260 "rect": [0, 0, 100, 100], | 260 "rect": [0, 0, 100, 100], |
| 261 "reason": "layer" | 261 "reason": "subtree" |
| 262 } | 262 } |
| 263 ] | 263 ] |
| 264 } | 264 } |
| 265 ] | 265 ] |
| 266 } | 266 } |
| 267 ] | 267 ] |
| 268 } | 268 } |
| 269 ] | 269 ] |
| 270 } | 270 } |
| 271 | 271 |
| OLD | NEW |