| 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..d5b92584dd48c2779a64fa024bd9fe7004e7e7f8
|
| --- /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) {
|
| + 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 nodeResponse = await dp.DOM.pushNodesByBackendIdsToFrontend({backendNodeIds: [newLayer.backendNodeId]});
|
| + var attributesResponse = await dp.DOM.getAttributes({nodeId: nodeResponse.result.nodeIds[0]});
|
| + var attributes = attributesFromArray(attributesResponse.result.attributes);
|
| + 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();
|
| +})
|
|
|