Index: third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-relayout-boundary.js |
diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-relayout-boundary.js b/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-relayout-boundary.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..147ffa90f4451c23a76c2aac8707c3eab4d9d51a |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-relayout-boundary.js |
@@ -0,0 +1,57 @@ |
+(async function(testRunner) { |
+ var {page, session, dp} = await testRunner.startHTML(` |
+ <head> |
+ <style> |
+ .relayout-boundary { |
+ width: 200px; |
+ height: 40px; |
+ overflow: hidden; |
+ } |
+ </style> |
+ </head> |
+ <body> |
+ <div id='outer'></div> |
+ <div class='relayout-boundary' id='boundary'> |
+ <div id='inner'></div> |
+ <div style='display: none'> |
+ <div id='hidden'></div> |
+ </div> |
+ </div> |
+ </body> |
+ `, ''); |
+ |
+ var DOMHelper = await testRunner.loadScript('../resources/dom-helper.js'); |
+ var NodeTracker = await testRunner.loadScript('../resources/node-tracker.js'); |
+ var nodeTracker = new NodeTracker(dp); |
+ var response = await dp.DOM.getDocument(); |
+ nodeTracker.addDocumentNode(response.result.root); |
+ await dp.DOM.requestChildNodes({nodeId: response.result.root.nodeId, depth: -1}); |
+ |
+ var nodeByIdAttribute = {}; |
+ for (var node of nodeTracker.nodes()) |
+ nodeByIdAttribute[DOMHelper.attributes(node).get('id')] = node; |
+ |
+ await dumpRelayoutBoundary(nodeByIdAttribute['outer']); |
+ await dumpRelayoutBoundary(nodeByIdAttribute['boundary']); |
+ await dumpRelayoutBoundary(nodeByIdAttribute['inner']); |
+ await dumpRelayoutBoundary(nodeByIdAttribute['hidden']); |
+ testRunner.completeTest(); |
+ |
+ function nodeLabel(node) { |
+ var result = node.localName; |
+ var id = DOMHelper.attributes(node).get('id'); |
+ return result + (id ? '#' + id : ''); |
+ } |
+ |
+ async function dumpRelayoutBoundary(node) { |
+ var response = await dp.DOM.getRelayoutBoundary({nodeId: node.nodeId}); |
+ var text; |
+ if (response.error) { |
+ text = response.error.message; |
+ } else { |
+ var boundaryNode = nodeTracker.nodeForId(response.result.nodeId); |
+ text = boundaryNode ? nodeLabel(boundaryNode) : 'null'; |
+ } |
+ testRunner.log('Relayout boundary for ' + nodeLabel(node) + ' is: ' + text); |
+ } |
+}); |