| OLD | NEW |
| (Empty) | |
| 1 (async function(testRunner) { |
| 2 let {page, session, dp} = await testRunner.startURL('../resources/get-layers.h
tml', ''); |
| 3 |
| 4 function layerMutations(oldLayers, newLayers) { |
| 5 var oldLayerIds = oldLayers.map(layer => layer.layerId); |
| 6 var newLayerIds = newLayers.map(layer => layer.layerId); |
| 7 return { |
| 8 additions: newLayers.filter(layer => oldLayerIds.indexOf(layer.layerId) ==
= -1), |
| 9 removals: oldLayers.filter(layer => newLayerIds.indexOf(layer.layerId) ===
-1) |
| 10 }; |
| 11 } |
| 12 |
| 13 function attributesFromArray(attributes) { |
| 14 var map = new Map(); |
| 15 for (var i = 0, count = attributes.length; i < count; i += 2) |
| 16 map.set(attributes[i], attributes[i + 1]); |
| 17 return map; |
| 18 } |
| 19 |
| 20 function dumpLayers(layers) { |
| 21 function replacer(key, value) { |
| 22 if (['layerId', 'parentLayerId', 'backendNodeId', 'paintCount'].indexOf(ke
y) >= 0) |
| 23 return typeof(value); |
| 24 // some values differ based on port, but the ones we most |
| 25 // care about will always be less or equal 100. |
| 26 if ((key === 'width' || key === 'height') && value > 100) |
| 27 return typeof(value); |
| 28 return value; |
| 29 } |
| 30 |
| 31 // Keep 'internal' layers out for better stability. |
| 32 layers = layers.filter(layer => !!layer.backendNodeId); |
| 33 testRunner.log('\n' + JSON.stringify(layers, replacer, ' ')); |
| 34 } |
| 35 |
| 36 await dp.DOM.getDocument(); |
| 37 dp.LayerTree.enable(); |
| 38 var initialLayers = (await dp.LayerTree.onceLayerTreeDidChange()).params.layer
s; |
| 39 |
| 40 dp.Runtime.evaluate({expression: 'addCompositedLayer()'}); |
| 41 var modifiedLayers = (await dp.LayerTree.onceLayerTreeDidChange()).params.laye
rs; |
| 42 |
| 43 var mutations = layerMutations(initialLayers, modifiedLayers); |
| 44 var newLayer = mutations.additions[0]; |
| 45 |
| 46 var nodeResponse = await dp.DOM.pushNodesByBackendIdsToFrontend({backendNodeId
s: [newLayer.backendNodeId]}); |
| 47 var attributesResponse = await dp.DOM.getAttributes({nodeId: nodeResponse.resu
lt.nodeIds[0]}); |
| 48 var attributes = attributesFromArray(attributesResponse.result.attributes); |
| 49 if (attributes.get('id') !== 'last-element') |
| 50 testRunner.log('FAIL: Did not obtain the expected element for the last inser
ted layer.'); |
| 51 |
| 52 dumpLayers(initialLayers); |
| 53 dumpLayers(modifiedLayers); |
| 54 testRunner.log('DONE!'); |
| 55 testRunner.completeTest(); |
| 56 }) |
| OLD | NEW |