/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; Services.scriptloader.loadSubScript( "chrome://mochitests/content/browser/devtools/server/tests/browser/inspector-helpers.js", this ); add_task(async function loadNewChild() { const { target, walker } = await initInspectorFront( MAIN_DOMAIN + "inspector-traversal-data.html" ); let originalOwnershipSize = 0; let longlist = null; let firstChild = null; const list = await walker.querySelectorAll(walker.rootNode, "#longlist div"); // Make sure we have the 26 children of longlist in our ownership tree. is(list.length, 26, "Expect 26 div children."); // Make sure we've read in all those children and incorporated them // in our ownership tree. const items = await list.items(); originalOwnershipSize = await assertOwnershipTrees(walker); // Here is how the ownership tree is summed up: // #document 1 // 1 // 1 //
1 //
a
26*2 (each child plus it's singleTextChild) // ... //
z
// ----- // 56 is(originalOwnershipSize, 56, "Correct number of items in ownership tree"); firstChild = items[0].actorID; // Now get the longlist and release it from the ownership tree. const node = await walker.querySelector(walker.rootNode, "#longlist"); longlist = node.actorID; await walker.releaseNode(node); // Our ownership size should now be 53 fewer // (we forgot about #longlist + 26 children + 26 singleTextChild nodes) const newOwnershipSize = await assertOwnershipTrees(walker); is( newOwnershipSize, originalOwnershipSize - 53, "Ownership tree should be lower" ); // Now verify that some nodes have gone away await checkMissing(target, longlist); await checkMissing(target, firstChild); });