| <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", {"depth": -1}, function(messageObject) { |
| if (messageObject.hasOwnProperty("error")) |
| InspectorTest.log("Backend error: " + messageObject.error.message + " (" + messageObject.error.code + ")\n"); |
| |
| var iframeOwner = messageObject.result.root.children[0].children[1].children[0].children[0].children[0].children[0]; |
| if (iframeOwner.contentDocument.children) { |
| InspectorTest.log("Error IFrame node should not include children: " + JSON.stringify(iframeOwner, null, " ")); |
| InspectorTest.completeTest(); |
| } else { |
| getDocumentPlusIframe(); |
| } |
| }); |
| }; |
| |
| function replacePropertyRecursive(object, propertyNameToReplace) |
| { |
| for (var propertyName in object) { |
| if (!object.hasOwnProperty(propertyName)) |
| continue; |
| if (propertyName === propertyNameToReplace) { |
| object[propertyName] = "???"; |
| } else if (typeof object[propertyName] === "object") { |
| replacePropertyRecursive(object[propertyName], propertyNameToReplace); |
| } |
| } |
| } |
| |
| function getDocumentPlusIframe() |
| { |
| InspectorTest.sendCommand("DOM.getDocument", {"depth": -1, "traverseFrames": true}, function(messageObject) { |
| if (messageObject.hasOwnProperty("error")) |
| InspectorTest.log("Backend error: " + messageObject.error.message + " (" + messageObject.error.code + ")\n"); |
| |
| var iframeOwner = messageObject.result.root.children[0].children[1].children[0].children[0].children[0].children[0]; |
| |
| // Replace properties that tend to change every run. |
| replacePropertyRecursive(messageObject, "frameId"); |
| replacePropertyRecursive(messageObject, "documentURL"); |
| replacePropertyRecursive(messageObject, "baseURL"); |
| |
| var bodyId = messageObject.result.root.children[0].children[1]; |
| function stabilize(key, value) { |
| var unstableKeys = ["backendNodeId"]; |
| if (unstableKeys.indexOf(key) !== -1) |
| return "<" + typeof(value) + ">"; |
| return value; |
| } |
| InspectorTest.log(JSON.stringify(bodyId, stabilize, " ")); |
| 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> |