| 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 "name": "Content Root Layer", | 5 "layers": [ |
| 6 "bounds": [800, 600], | |
| 7 "children": [ | |
| 8 { | 6 { |
| 9 "name": "LayoutView #document", | 7 "name": "LayoutView #document", |
| 10 "bounds": [800, 600], | 8 "bounds": [800, 600], |
| 11 "contentsOpaque": true, | 9 "contentsOpaque": true, |
| 10 "drawsContent": true |
| 11 }, |
| 12 { |
| 13 "name": "Squashing Containment Layer", |
| 14 "shouldFlattenTransform": false |
| 15 }, |
| 16 { |
| 17 "name": "LayoutBlockFlow (positioned) DIV class='composited'", |
| 18 "position": [60, 60], |
| 19 "bounds": [400, 400], |
| 20 "contentsOpaque": true, |
| 12 "drawsContent": true, | 21 "drawsContent": true, |
| 13 "children": [ | 22 "backgroundColor": "#808080" |
| 14 { | 23 }, |
| 15 "name": "Squashing Containment Layer", | 24 { |
| 16 "shouldFlattenTransform": false, | 25 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (positione
d) DIV id='A' class='overlap1')", |
| 17 "children": [ | 26 "position": [140, 140], |
| 18 { | 27 "bounds": [180, 180], |
| 19 "name": "LayoutBlockFlow (positioned) DIV class='composited'", | 28 "drawsContent": true |
| 20 "position": [60, 60], | |
| 21 "bounds": [400, 400], | |
| 22 "contentsOpaque": true, | |
| 23 "drawsContent": true, | |
| 24 "backgroundColor": "#808080" | |
| 25 }, | |
| 26 { | |
| 27 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (p
ositioned) DIV id='A' class='overlap1')", | |
| 28 "position": [140, 140], | |
| 29 "bounds": [180, 180], | |
| 30 "drawsContent": true | |
| 31 } | |
| 32 ] | |
| 33 } | |
| 34 ] | |
| 35 } | 29 } |
| 36 ] | 30 ] |
| 37 } | 31 } |
| 38 CASE 2, overlap3 gets added: | 32 CASE 2, overlap3 gets added: |
| 39 { | 33 { |
| 40 "name": "Content Root Layer", | 34 "layers": [ |
| 41 "bounds": [800, 600], | |
| 42 "children": [ | |
| 43 { | 35 { |
| 44 "name": "LayoutView #document", | 36 "name": "LayoutView #document", |
| 45 "bounds": [800, 600], | 37 "bounds": [800, 600], |
| 46 "contentsOpaque": true, | 38 "contentsOpaque": true, |
| 39 "drawsContent": true |
| 40 }, |
| 41 { |
| 42 "name": "Squashing Containment Layer", |
| 43 "shouldFlattenTransform": false |
| 44 }, |
| 45 { |
| 46 "name": "LayoutBlockFlow (positioned) DIV class='composited'", |
| 47 "position": [60, 60], |
| 48 "bounds": [400, 400], |
| 49 "contentsOpaque": true, |
| 47 "drawsContent": true, | 50 "drawsContent": true, |
| 48 "children": [ | 51 "backgroundColor": "#808080" |
| 52 }, |
| 53 { |
| 54 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (positione
d) DIV id='A' class='overlap1')", |
| 55 "position": [140, 140], |
| 56 "bounds": [260, 260], |
| 57 "drawsContent": true, |
| 58 "paintInvalidations": [ |
| 49 { | 59 { |
| 50 "name": "Squashing Containment Layer", | 60 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 51 "shouldFlattenTransform": false, | 61 "rect": [160, 160, 100, 100], |
| 52 "children": [ | 62 "reason": "layoutObject insertion" |
| 53 { | |
| 54 "name": "LayoutBlockFlow (positioned) DIV class='composited'", | |
| 55 "position": [60, 60], | |
| 56 "bounds": [400, 400], | |
| 57 "contentsOpaque": true, | |
| 58 "drawsContent": true, | |
| 59 "backgroundColor": "#808080" | |
| 60 }, | |
| 61 { | |
| 62 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (p
ositioned) DIV id='A' class='overlap1')", | |
| 63 "position": [140, 140], | |
| 64 "bounds": [260, 260], | |
| 65 "drawsContent": true, | |
| 66 "paintInvalidations": [ | |
| 67 { | |
| 68 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", | |
| 69 "rect": [160, 160, 100, 100], | |
| 70 "reason": "layoutObject insertion" | |
| 71 } | |
| 72 ] | |
| 73 } | |
| 74 ] | |
| 75 } | 63 } |
| 76 ] | 64 ] |
| 77 } | 65 } |
| 78 ], | 66 ], |
| 79 "objectPaintInvalidations": [ | 67 "objectPaintInvalidations": [ |
| 80 { | 68 { |
| 81 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", | 69 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 82 "reason": "subtree" | 70 "reason": "subtree" |
| 83 }, | 71 }, |
| 84 { | 72 { |
| 85 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", | 73 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 86 "reason": "layoutObject insertion" | 74 "reason": "layoutObject insertion" |
| 87 } | 75 } |
| 88 ] | 76 ] |
| 89 } | 77 } |
| 90 CASE 3, overlap2 gets removed. Since this does not resize the layer, there shoul
d only be a repaint of overlap2: | 78 CASE 3, overlap2 gets removed. Since this does not resize the layer, there shoul
d only be a repaint of overlap2: |
| 91 { | 79 { |
| 92 "name": "Content Root Layer", | 80 "layers": [ |
| 93 "bounds": [800, 600], | |
| 94 "children": [ | |
| 95 { | 81 { |
| 96 "name": "LayoutView #document", | 82 "name": "LayoutView #document", |
| 97 "bounds": [800, 600], | 83 "bounds": [800, 600], |
| 98 "contentsOpaque": true, | 84 "contentsOpaque": true, |
| 85 "drawsContent": true |
| 86 }, |
| 87 { |
| 88 "name": "Squashing Containment Layer", |
| 89 "shouldFlattenTransform": false |
| 90 }, |
| 91 { |
| 92 "name": "LayoutBlockFlow (positioned) DIV class='composited'", |
| 93 "position": [60, 60], |
| 94 "bounds": [400, 400], |
| 95 "contentsOpaque": true, |
| 99 "drawsContent": true, | 96 "drawsContent": true, |
| 100 "children": [ | 97 "backgroundColor": "#808080" |
| 98 }, |
| 99 { |
| 100 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (positione
d) DIV id='A' class='overlap1')", |
| 101 "position": [140, 140], |
| 102 "bounds": [260, 260], |
| 103 "drawsContent": true, |
| 104 "paintInvalidations": [ |
| 101 { | 105 { |
| 102 "name": "Squashing Containment Layer", | 106 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", |
| 103 "shouldFlattenTransform": false, | 107 "rect": [80, 80, 100, 100], |
| 104 "children": [ | 108 "reason": "layoutObject removal" |
| 105 { | |
| 106 "name": "LayoutBlockFlow (positioned) DIV class='composited'", | |
| 107 "position": [60, 60], | |
| 108 "bounds": [400, 400], | |
| 109 "contentsOpaque": true, | |
| 110 "drawsContent": true, | |
| 111 "backgroundColor": "#808080" | |
| 112 }, | |
| 113 { | |
| 114 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (p
ositioned) DIV id='A' class='overlap1')", | |
| 115 "position": [140, 140], | |
| 116 "bounds": [260, 260], | |
| 117 "drawsContent": true, | |
| 118 "paintInvalidations": [ | |
| 119 { | |
| 120 "object": "LayoutBlockFlow (positioned) DIV id='B' class='over
lap2'", | |
| 121 "rect": [80, 80, 100, 100], | |
| 122 "reason": "layoutObject removal" | |
| 123 } | |
| 124 ] | |
| 125 } | |
| 126 ] | |
| 127 } | 109 } |
| 128 ] | 110 ] |
| 129 } | 111 } |
| 130 ], | 112 ], |
| 131 "objectPaintInvalidations": [ | 113 "objectPaintInvalidations": [ |
| 132 { | 114 { |
| 133 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", | 115 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", |
| 134 "reason": "layoutObject removal" | 116 "reason": "layoutObject removal" |
| 135 } | 117 } |
| 136 ] | 118 ] |
| 137 } | 119 } |
| 138 CASE 4, overlap1 gets removed: | 120 CASE 4, overlap1 gets removed: |
| 139 { | 121 { |
| 140 "name": "Content Root Layer", | 122 "layers": [ |
| 141 "bounds": [800, 600], | |
| 142 "children": [ | |
| 143 { | 123 { |
| 144 "name": "LayoutView #document", | 124 "name": "LayoutView #document", |
| 145 "bounds": [800, 600], | 125 "bounds": [800, 600], |
| 146 "contentsOpaque": true, | 126 "contentsOpaque": true, |
| 127 "drawsContent": true |
| 128 }, |
| 129 { |
| 130 "name": "Squashing Containment Layer", |
| 131 "shouldFlattenTransform": false |
| 132 }, |
| 133 { |
| 134 "name": "LayoutBlockFlow (positioned) DIV class='composited'", |
| 135 "position": [60, 60], |
| 136 "bounds": [400, 400], |
| 137 "contentsOpaque": true, |
| 147 "drawsContent": true, | 138 "drawsContent": true, |
| 148 "children": [ | 139 "backgroundColor": "#808080" |
| 140 }, |
| 141 { |
| 142 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (positione
d) DIV id='C' class='overlap3')", |
| 143 "position": [300, 300], |
| 144 "bounds": [100, 100], |
| 145 "drawsContent": true, |
| 146 "paintInvalidations": [ |
| 149 { | 147 { |
| 150 "name": "Squashing Containment Layer", | 148 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 151 "shouldFlattenTransform": false, | 149 "rect": [160, 160, 100, 100], |
| 152 "children": [ | 150 "reason": "subtree" |
| 153 { | 151 }, |
| 154 "name": "LayoutBlockFlow (positioned) DIV class='composited'", | 152 { |
| 155 "position": [60, 60], | 153 "object": "LayoutBlockFlow (positioned) DIV id='A' class='overlap1'", |
| 156 "bounds": [400, 400], | 154 "rect": [0, 0, 100, 100], |
| 157 "contentsOpaque": true, | 155 "reason": "layoutObject removal" |
| 158 "drawsContent": true, | 156 }, |
| 159 "backgroundColor": "#808080" | 157 { |
| 160 }, | 158 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 161 { | 159 "rect": [0, 0, 100, 100], |
| 162 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (p
ositioned) DIV id='C' class='overlap3')", | 160 "reason": "compositing update" |
| 163 "position": [300, 300], | |
| 164 "bounds": [100, 100], | |
| 165 "drawsContent": true, | |
| 166 "paintInvalidations": [ | |
| 167 { | |
| 168 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", | |
| 169 "rect": [160, 160, 100, 100], | |
| 170 "reason": "subtree" | |
| 171 }, | |
| 172 { | |
| 173 "object": "LayoutBlockFlow (positioned) DIV id='A' class='over
lap1'", | |
| 174 "rect": [0, 0, 100, 100], | |
| 175 "reason": "layoutObject removal" | |
| 176 }, | |
| 177 { | |
| 178 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", | |
| 179 "rect": [0, 0, 100, 100], | |
| 180 "reason": "compositing update" | |
| 181 } | |
| 182 ] | |
| 183 } | |
| 184 ] | |
| 185 } | 161 } |
| 186 ] | 162 ] |
| 187 } | 163 } |
| 188 ], | 164 ], |
| 189 "objectPaintInvalidations": [ | 165 "objectPaintInvalidations": [ |
| 190 { | 166 { |
| 191 "object": "LayoutBlockFlow (positioned) DIV id='A' class='overlap1'", | 167 "object": "LayoutBlockFlow (positioned) DIV id='A' class='overlap1'", |
| 192 "reason": "layoutObject removal" | 168 "reason": "layoutObject removal" |
| 193 }, | 169 }, |
| 194 { | 170 { |
| 195 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", | 171 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 196 "reason": "subtree" | 172 "reason": "subtree" |
| 197 }, | 173 }, |
| 198 { | 174 { |
| 199 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", | 175 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 200 "reason": "compositing update" | 176 "reason": "compositing update" |
| 201 } | 177 } |
| 202 ] | 178 ] |
| 203 } | 179 } |
| 204 CASE 5, overlap2 gets added back: | 180 CASE 5, overlap2 gets added back: |
| 205 { | 181 { |
| 206 "name": "Content Root Layer", | 182 "layers": [ |
| 207 "bounds": [800, 600], | |
| 208 "children": [ | |
| 209 { | 183 { |
| 210 "name": "LayoutView #document", | 184 "name": "LayoutView #document", |
| 211 "bounds": [800, 600], | 185 "bounds": [800, 600], |
| 212 "contentsOpaque": true, | 186 "contentsOpaque": true, |
| 187 "drawsContent": true |
| 188 }, |
| 189 { |
| 190 "name": "Squashing Containment Layer", |
| 191 "shouldFlattenTransform": false |
| 192 }, |
| 193 { |
| 194 "name": "LayoutBlockFlow (positioned) DIV class='composited'", |
| 195 "position": [60, 60], |
| 196 "bounds": [400, 400], |
| 197 "contentsOpaque": true, |
| 213 "drawsContent": true, | 198 "drawsContent": true, |
| 214 "children": [ | 199 "backgroundColor": "#808080" |
| 200 }, |
| 201 { |
| 202 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (positione
d) DIV id='B' class='overlap2')", |
| 203 "position": [220, 220], |
| 204 "bounds": [180, 180], |
| 205 "drawsContent": true, |
| 206 "paintInvalidations": [ |
| 215 { | 207 { |
| 216 "name": "Squashing Containment Layer", | 208 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 217 "shouldFlattenTransform": false, | 209 "rect": [80, 80, 100, 100], |
| 218 "children": [ | 210 "reason": "compositing update" |
| 219 { | 211 }, |
| 220 "name": "LayoutBlockFlow (positioned) DIV class='composited'", | 212 { |
| 221 "position": [60, 60], | 213 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", |
| 222 "bounds": [400, 400], | 214 "rect": [0, 0, 100, 100], |
| 223 "contentsOpaque": true, | 215 "reason": "layoutObject insertion" |
| 224 "drawsContent": true, | 216 }, |
| 225 "backgroundColor": "#808080" | 217 { |
| 226 }, | 218 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 227 { | 219 "rect": [0, 0, 100, 100], |
| 228 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (p
ositioned) DIV id='B' class='overlap2')", | 220 "reason": "subtree" |
| 229 "position": [220, 220], | |
| 230 "bounds": [180, 180], | |
| 231 "drawsContent": true, | |
| 232 "paintInvalidations": [ | |
| 233 { | |
| 234 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", | |
| 235 "rect": [80, 80, 100, 100], | |
| 236 "reason": "compositing update" | |
| 237 }, | |
| 238 { | |
| 239 "object": "LayoutBlockFlow (positioned) DIV id='B' class='over
lap2'", | |
| 240 "rect": [0, 0, 100, 100], | |
| 241 "reason": "layoutObject insertion" | |
| 242 }, | |
| 243 { | |
| 244 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", | |
| 245 "rect": [0, 0, 100, 100], | |
| 246 "reason": "subtree" | |
| 247 } | |
| 248 ] | |
| 249 } | |
| 250 ] | |
| 251 } | 221 } |
| 252 ] | 222 ] |
| 253 } | 223 } |
| 254 ], | 224 ], |
| 255 "objectPaintInvalidations": [ | 225 "objectPaintInvalidations": [ |
| 256 { | 226 { |
| 257 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", | 227 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", |
| 258 "reason": "subtree" | 228 "reason": "subtree" |
| 259 }, | 229 }, |
| 260 { | 230 { |
| 261 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", | 231 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 262 "reason": "subtree" | 232 "reason": "subtree" |
| 263 }, | 233 }, |
| 264 { | 234 { |
| 265 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", | 235 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 266 "reason": "subtree" | 236 "reason": "subtree" |
| 267 }, | 237 }, |
| 268 { | 238 { |
| 269 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", | 239 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", |
| 270 "reason": "layoutObject insertion" | 240 "reason": "layoutObject insertion" |
| 271 }, | 241 }, |
| 272 { | 242 { |
| 273 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", | 243 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 274 "reason": "compositing update" | 244 "reason": "compositing update" |
| 275 } | 245 } |
| 276 ] | 246 ] |
| 277 } | 247 } |
| 278 CASE 6, overlap1 gets added back, and overlap3 gets removed: | 248 CASE 6, overlap1 gets added back, and overlap3 gets removed: |
| 279 { | 249 { |
| 280 "name": "Content Root Layer", | 250 "layers": [ |
| 281 "bounds": [800, 600], | |
| 282 "children": [ | |
| 283 { | 251 { |
| 284 "name": "LayoutView #document", | 252 "name": "LayoutView #document", |
| 285 "bounds": [800, 600], | 253 "bounds": [800, 600], |
| 286 "contentsOpaque": true, | 254 "contentsOpaque": true, |
| 255 "drawsContent": true |
| 256 }, |
| 257 { |
| 258 "name": "Squashing Containment Layer", |
| 259 "shouldFlattenTransform": false |
| 260 }, |
| 261 { |
| 262 "name": "LayoutBlockFlow (positioned) DIV class='composited'", |
| 263 "position": [60, 60], |
| 264 "bounds": [400, 400], |
| 265 "contentsOpaque": true, |
| 287 "drawsContent": true, | 266 "drawsContent": true, |
| 288 "children": [ | 267 "backgroundColor": "#808080" |
| 268 }, |
| 269 { |
| 270 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (positione
d) DIV id='A' class='overlap1')", |
| 271 "position": [140, 140], |
| 272 "bounds": [180, 180], |
| 273 "drawsContent": true, |
| 274 "paintInvalidations": [ |
| 289 { | 275 { |
| 290 "name": "Squashing Containment Layer", | 276 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", |
| 291 "shouldFlattenTransform": false, | 277 "rect": [80, 80, 100, 100], |
| 292 "children": [ | 278 "reason": "compositing update" |
| 293 { | 279 }, |
| 294 "name": "LayoutBlockFlow (positioned) DIV class='composited'", | 280 { |
| 295 "position": [60, 60], | 281 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 296 "bounds": [400, 400], | 282 "rect": [80, 80, 100, 100], |
| 297 "contentsOpaque": true, | 283 "reason": "layoutObject removal" |
| 298 "drawsContent": true, | 284 }, |
| 299 "backgroundColor": "#808080" | 285 { |
| 300 }, | 286 "object": "LayoutBlockFlow (positioned) DIV id='A' class='overlap1'", |
| 301 { | 287 "rect": [0, 0, 100, 100], |
| 302 "name": "Squashing Layer (first squashed layer: LayoutBlockFlow (p
ositioned) DIV id='A' class='overlap1')", | 288 "reason": "layoutObject insertion" |
| 303 "position": [140, 140], | 289 }, |
| 304 "bounds": [180, 180], | 290 { |
| 305 "drawsContent": true, | 291 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", |
| 306 "paintInvalidations": [ | 292 "rect": [0, 0, 100, 100], |
| 307 { | 293 "reason": "subtree" |
| 308 "object": "LayoutBlockFlow (positioned) DIV id='B' class='over
lap2'", | |
| 309 "rect": [80, 80, 100, 100], | |
| 310 "reason": "compositing update" | |
| 311 }, | |
| 312 { | |
| 313 "object": "LayoutBlockFlow (positioned) DIV id='C' class='over
lap3'", | |
| 314 "rect": [80, 80, 100, 100], | |
| 315 "reason": "layoutObject removal" | |
| 316 }, | |
| 317 { | |
| 318 "object": "LayoutBlockFlow (positioned) DIV id='A' class='over
lap1'", | |
| 319 "rect": [0, 0, 100, 100], | |
| 320 "reason": "layoutObject insertion" | |
| 321 }, | |
| 322 { | |
| 323 "object": "LayoutBlockFlow (positioned) DIV id='B' class='over
lap2'", | |
| 324 "rect": [0, 0, 100, 100], | |
| 325 "reason": "subtree" | |
| 326 } | |
| 327 ] | |
| 328 } | |
| 329 ] | |
| 330 } | 294 } |
| 331 ] | 295 ] |
| 332 } | 296 } |
| 333 ], | 297 ], |
| 334 "objectPaintInvalidations": [ | 298 "objectPaintInvalidations": [ |
| 335 { | 299 { |
| 336 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", | 300 "object": "LayoutBlockFlow (positioned) DIV id='C' class='overlap3'", |
| 337 "reason": "layoutObject removal" | 301 "reason": "layoutObject removal" |
| 338 }, | 302 }, |
| 339 { | 303 { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 352 "object": "LayoutBlockFlow (positioned) DIV id='A' class='overlap1'", | 316 "object": "LayoutBlockFlow (positioned) DIV id='A' class='overlap1'", |
| 353 "reason": "layoutObject insertion" | 317 "reason": "layoutObject insertion" |
| 354 }, | 318 }, |
| 355 { | 319 { |
| 356 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", | 320 "object": "LayoutBlockFlow (positioned) DIV id='B' class='overlap2'", |
| 357 "reason": "compositing update" | 321 "reason": "compositing update" |
| 358 } | 322 } |
| 359 ] | 323 ] |
| 360 } | 324 } |
| 361 | 325 |
| OLD | NEW |