Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-request-child-nodes-traverse-frames.html |
| diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-request-child-nodes-traverse-frames.html b/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-request-child-nodes-traverse-frames.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..005e194ddeb2fe2a31e6fc6ebeebce2ad361ebff |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/inspector-protocol/dom/dom-request-child-nodes-traverse-frames.html |
| @@ -0,0 +1,80 @@ |
| +<html> |
| +<head> |
| +<script type="text/javascript" src="../../http/tests/inspector-protocol/inspector-protocol-test.js"></script> |
| +<script type="text/javascript"> |
| + |
| +function test() |
| +{ |
| + getDocument(); |
| + |
| + function getDocument() |
| + { |
| + InspectorTest.sendCommand("DOM.getDocument", {}, function(messageObject) { |
| + if (messageObject.hasOwnProperty("error")) |
| + InspectorTest.log("Backend error: " + messageObject.error.message + " (" + messageObject.error.code + ")\n"); |
| + |
| + var bodyId = messageObject.result.root.children[0].children[1].nodeId; |
| + requestChildNodes(bodyId); |
| + }); |
| + }; |
| + |
| + function requestChildNodes(bodyId) |
| + { |
| + InspectorTest.sendCommand("DOM.requestChildNodes", {"nodeId": bodyId, "depth": -1}, function(messageObject) { |
| + if (messageObject.hasOwnProperty("error")) |
| + InspectorTest.log("Backend error: " + messageObject.error.message + " (" + messageObject.error.code + ")\n"); |
| + }); |
| + |
| + InspectorTest.eventHandler["DOM.setChildNodes"] = function(messageObject) |
| + { |
| + var iframeContentDocument = messageObject.params.nodes[0].children[0].children[0].children[0].contentDocument; |
| + if (iframeContentDocument.children) { |
| + InspectorTest.log("Error IFrame node should not include children: " + JSON.stringify(iframeContentDocument, null, " ")); |
| + InspectorTest.completeTest(); |
| + } else { |
| + requestAllChildNodesIncludingIframe(bodyId); |
| + } |
| + }; |
| + }; |
| + |
| + function requestAllChildNodesIncludingIframe(bodyId) |
| + { |
| + InspectorTest.sendCommand("DOM.requestChildNodes", {"nodeId": bodyId, "depth": -1, "traverseFrames": true}, function(messageObject) { |
| + if (messageObject.hasOwnProperty("error")) |
| + InspectorTest.log("Backend error: " + messageObject.error.message + " (" + messageObject.error.code + ")\n"); |
| + }); |
| + |
| + InspectorTest.eventHandler["DOM.setChildNodes"] = function(messageObject) |
| + { |
| + // FrameIds change every time, so replace them. |
| + messageObject.params.nodes[0].children[0].children[0].children[0].frameId = "???"; |
|
pfeldman
2016/10/12 18:45:26
Could you replace frameIds recursively in the resp
alex clarke (OOO till 29th)
2016/10/13 15:31:05
Done.
|
| + messageObject.params.nodes[0].children[0].children[0].children[0].contentDocument.children[0].frameId = "???"; |
| + |
| + // The contentDocument's documentURL & baseURL are absolute paths. |
| + messageObject.params.nodes[0].children[0].children[0].children[0].contentDocument.documentURL = "???"; |
| + messageObject.params.nodes[0].children[0].children[0].children[0].contentDocument.baseURL = "???"; |
| + |
| + InspectorTest.log(JSON.stringify(messageObject, null, " ")); |
| + InspectorTest.completeTest(); |
| + }; |
| + }; |
| +}; |
| + |
| +window.addEventListener("DOMContentLoaded", function () { |
| + runTest(); |
| +}, false); |
| + |
| +</script> |
| +</head> |
| +<body> |
| + |
| +<div id="depth-1"> |
| + <div id="depth-2"> |
| + <div id="depth-3"> |
| + <iframe src="resources/iframe.html"></iframe> |
| + </div> |
| + </div> |
| +</div> |
| + |
| +</body> |
| +</html> |