| OLD | NEW |
| (Empty) |
| 1 <html> | |
| 2 <head> | |
| 3 <script type="text/javascript" src="../../http/tests/inspector-protocol/resource
s/protocol-test.js"></script> | |
| 4 <script> | |
| 5 if (window.testRunner) { | |
| 6 testRunner.dumpAsText(); | |
| 7 testRunner.waitUntilDone(); | |
| 8 } | |
| 9 | |
| 10 function createDetachedDomTreeAndRunTest() | |
| 11 { | |
| 12 window.retaining_wrapper = document.createElement("div"); | |
| 13 var t = document.createElement("div"); | |
| 14 retaining_wrapper.appendChild(t); | |
| 15 t.appendChild(document.createElement("div")); | |
| 16 | |
| 17 runTest(); | |
| 18 } | |
| 19 | |
| 20 function test() | |
| 21 { | |
| 22 InspectorTest.importScript("../../../../inspector-protocol/heap-profiler/res
ources/heap-snapshot-common.js"); | |
| 23 | |
| 24 function checkHeapSnapshot(snapshot) { | |
| 25 var node; | |
| 26 for (var it = snapshot._allNodes(); it.hasNext(); it.next()) { | |
| 27 if (it.node.name() === "(Detached DOM trees)") { | |
| 28 node = it.node; | |
| 29 break; | |
| 30 } | |
| 31 } | |
| 32 if (node) | |
| 33 InspectorTest.log("SUCCESS: found " + node.name()); | |
| 34 else | |
| 35 return InspectorTest.fail("cannot find detached DOM trees root"); | |
| 36 | |
| 37 var detachedDOMTreeRE = /^Detached DOM tree/; | |
| 38 var detachedDomTreeFound = false; | |
| 39 for (var iter = node.edges(); iter.hasNext(); iter.next()) { | |
| 40 var node = iter.edge.node(); | |
| 41 if (detachedDOMTreeRE.test(node.className())) { | |
| 42 if ("Detached DOM tree / 4 entries" === node.name()) { | |
| 43 if (detachedDomTreeFound) | |
| 44 return InspectorTest.fail("second " + node.name()); | |
| 45 detachedDomTreeFound = true; | |
| 46 InspectorTest.log("SUCCESS: found " + node.name()); | |
| 47 checkDetachedDOMTreeNodes(node); | |
| 48 } else | |
| 49 return InspectorTest.fail("unexpected detached DOM tree: " +
node.name()); | |
| 50 } | |
| 51 } | |
| 52 InspectorTest.sendCommand("HeapProfiler.clearProfiles", {}); | |
| 53 } | |
| 54 | |
| 55 function checkDetachedDOMTreeNodes(treeNode) | |
| 56 { | |
| 57 var divCount = 0; | |
| 58 for (var iter = treeNode.edges(); iter.hasNext(); iter.next()) { | |
| 59 var node = iter.edge.node(); | |
| 60 if (node.name() === "HTMLDivElement") | |
| 61 ++divCount; | |
| 62 else | |
| 63 return InspectorTest.fail("unexpected DOM wrapper: " + node.name
()); | |
| 64 } | |
| 65 if (divCount === 3) | |
| 66 InspectorTest.log("SUCCESS: found " + divCount + " DIVs in " + treeN
ode.name()); | |
| 67 else | |
| 68 return InspectorTest.fail("unexpected DIV count: " + divCount); | |
| 69 | |
| 70 } | |
| 71 | |
| 72 InspectorTest.takeHeapSnapshot(checkHeapSnapshot); | |
| 73 } | |
| 74 </script> | |
| 75 </head> | |
| 76 <body onload="createDetachedDomTreeAndRunTest()"> | |
| 77 <p>Test that all nodes from the detached DOM tree will get into one group in the
heap snapshot. <a href="https://bugs.webkit.org/show_bug.cgi?id=107819">Bug 107
819.</p> | |
| 78 </body> | |
| 79 </html> | |
| OLD | NEW |