Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/inspector-protocol/layers/get-layers.js |
| diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/layers/get-layers.js b/third_party/WebKit/LayoutTests/inspector-protocol/layers/get-layers.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5ce48119b108a85f1612a5ba4454b84704d6bbd5 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/inspector-protocol/layers/get-layers.js |
| @@ -0,0 +1,56 @@ |
| +(async function(testRunner) { |
| + let {page, session, dp} = await testRunner.startURL('../resources/get-layers.html', ''); |
| + |
| + function layerMutations(oldLayers, newLayers) { |
| + var oldLayerIds = oldLayers.map(layer => layer.layerId); |
| + var newLayerIds = newLayers.map(layer => layer.layerId); |
| + return { |
| + additions: newLayers.filter(layer => oldLayerIds.indexOf(layer.layerId) === -1), |
| + removals: oldLayers.filter(layer => newLayerIds.indexOf(layer.layerId) === -1) |
| + }; |
| + } |
| + |
| + function attributesFromArray(attributes) { |
|
caseq
2017/06/28 17:19:53
Let's drop it.
dgozman
2017/06/28 19:58:21
Done.
|
| + var map = new Map(); |
| + for (var i = 0, count = attributes.length; i < count; i += 2) |
| + map.set(attributes[i], attributes[i + 1]); |
| + return map; |
| + } |
| + |
| + function dumpLayers(layers) { |
| + function replacer(key, value) { |
| + if (['layerId', 'parentLayerId', 'backendNodeId', 'paintCount'].indexOf(key) >= 0) |
| + return typeof(value); |
| + // some values differ based on port, but the ones we most |
| + // care about will always be less or equal 100. |
| + if ((key === 'width' || key === 'height') && value > 100) |
| + return typeof(value); |
| + return value; |
| + } |
| + |
| + // Keep 'internal' layers out for better stability. |
| + layers = layers.filter(layer => !!layer.backendNodeId); |
| + testRunner.log('\n' + JSON.stringify(layers, replacer, ' ')); |
| + } |
| + |
| + await dp.DOM.getDocument(); |
| + dp.LayerTree.enable(); |
| + var initialLayers = (await dp.LayerTree.onceLayerTreeDidChange()).params.layers; |
| + |
| + dp.Runtime.evaluate({expression: 'addCompositedLayer()'}); |
| + var modifiedLayers = (await dp.LayerTree.onceLayerTreeDidChange()).params.layers; |
| + |
| + var mutations = layerMutations(initialLayers, modifiedLayers); |
| + var newLayer = mutations.additions[0]; |
| + |
| + var response = await dp.DOM.pushNodesByBackendIdsToFrontend({backendNodeIds: [newLayer.backendNodeId]}); |
| + response = await dp.DOM.getAttributes({nodeId: response.result.nodeIds[0]}); |
|
caseq
2017/06/28 17:19:53
Let's not reuse vairables. This could be
var node
dgozman
2017/06/28 19:58:21
Done.
|
| + var attributes = attributesFromArray(response.result.attributes); |
|
caseq
2017/06/28 17:19:53
var attributesMap = new Map(response.result.attrib
dgozman
2017/06/28 19:58:21
Done.
|
| + if (attributes.get('id') !== 'last-element') |
| + testRunner.log('FAIL: Did not obtain the expected element for the last inserted layer.'); |
| + |
| + dumpLayers(initialLayers); |
| + dumpLayers(modifiedLayers); |
| + testRunner.log('DONE!'); |
| + testRunner.completeTest(); |
| +}) |