| (async function(testRunner) { |
| var {page, session, dp} = await testRunner.startURL('../resources/stacking_context.html', 'Tests DOMSnapshot.getSnapshot method returning paint order indexes.'); |
| |
| await session.evaluate(` |
| var host = document.querySelector('#shadow-host').attachShadow({mode: 'open'}); |
| var template = document.querySelector('#shadow-template'); |
| host.appendChild(template.content); |
| template.remove(); |
| document.body.offsetWidth; |
| `); |
| |
| function logPaintOrderList(result) { |
| let entries = []; |
| |
| for (const layout_node of result.layoutTreeNodes) { |
| let attrs = result.domNodes[layout_node.domNodeIndex].attributes; |
| if (!attrs) continue; |
| for (const attr of attrs) { |
| if (attr.name === 'id') { |
| entries.push({ |
| 'id': attr.value, |
| 'paintOrder': layout_node.paintOrder |
| }); |
| break; |
| } |
| } |
| } |
| |
| entries.sort(function(a, b) { |
| return a['paintOrder'] - b['paintOrder']; |
| }).forEach(function(e) { |
| testRunner.log(e['id'] + ' - ' + e['paintOrder']); |
| }); |
| } |
| |
| const response = await dp.DOMSnapshot.getSnapshot({'computedStyleWhitelist': [], 'includePaintOrder': true}); |
| if (response.error) |
| testRunner.log(response); |
| else |
| logPaintOrderList(response.result); |
| testRunner.completeTest(); |
| }) |