mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-11 05:39:41 +02:00
These tests were using chrome mochitest which forces the test page to be running in chrome and in parent process. This doesn't reflect typical setup where the page runs unprivileged in content process. Also, with the current bug, the pages running in system principal will be debugged with a special setup. Actors will be run with modules loaded in a distinct loader in order to be executed in a distinct compartment, distinct from the shared system principal compartment. That a prerequisite for the Debugger API. It has to run in a distinct compartment than its debuggee. Depends on D16825 Differential Revision: https://phabricator.services.mozilla.com/D16826 --HG-- rename : devtools/server/tests/mochitest/animation-data.html => devtools/server/tests/browser/animation-data.html rename : devtools/server/tests/mochitest/test_inspector-mutations-childlist.html => devtools/server/tests/browser/browser_inspector-mutations-childlist.js rename : devtools/server/tests/mochitest/inspector-helpers.js => devtools/server/tests/browser/inspector-helpers.js extra : moz-landing-system : lando
49 lines
2.1 KiB
JavaScript
49 lines
2.1 KiB
JavaScript
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
|
|
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/* import-globals-from inspector-helpers.js */
|
|
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
|
|
// <html> 1
|
|
// <body> 1
|
|
// <div id=longlist> 1
|
|
// <div id=a>a</div> 26*2 (each child plus it's singleTextChild)
|
|
// ...
|
|
// <div id=z>z</div>
|
|
// -----
|
|
// 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);
|
|
});
|