Files
sousa-gecko/devtools/server/tests/chrome/memory-helpers.js
T
Alexandre Poirot 3af4a6d2ad Bug 1622857 - [devtools] Use MOZ_LOG to trace RDP packets in tests. r=devtools-reviewers,nchevobbe
Also remove disabled/commented logging.
You may use "--env MOZ_LOG=devtools_rdp:3" to trace RDP packets on try runs.
Some tests are still toggling the old preference as they may want to
trace other usages of dumpn/dumpv.

Differential Revision: https://phabricator.services.mozilla.com/D299055
2026-05-18 09:12:29 +00:00

66 lines
1.8 KiB
JavaScript

/* exported Task, startServerAndGetSelectedTabMemory, destroyServerAndFinish,
waitForTime, waitUntil */
"use strict";
const { require } = ChromeUtils.importESModule(
"resource://devtools/shared/loader/Loader.sys.mjs"
);
const {
CommandsFactory,
} = require("resource://devtools/shared/commands/commands-factory.js");
// Always log packets when running tests.
Services.prefs.setIntPref("logging.devtools_rdp", 5);
var gReduceTimePrecision = Services.prefs.getBoolPref(
"privacy.reduceTimerPrecision"
);
Services.prefs.setBoolPref("privacy.reduceTimerPrecision", false);
SimpleTest.registerCleanupFunction(function () {
Services.prefs.clearUserPref("logging.devtools_rdp");
Services.prefs.setBoolPref(
"privacy.reduceTimerPrecision",
gReduceTimePrecision
);
});
async function getTargetForSelectedTab() {
const browserWindow = Services.wm.getMostRecentBrowserWindow();
const commands = await CommandsFactory.forTab(
browserWindow.gBrowser.selectedTab
);
await commands.targetCommand.startListening();
// Retrieve the target of the test document
const targets = await commands.targetCommand.getAllTargets([
commands.targetCommand.TYPES.FRAME,
]);
return targets.find(t => t.url !== "chrome://mochikit/content/harness.xhtml");
}
async function startServerAndGetSelectedTabMemory() {
const target = await getTargetForSelectedTab();
const memory = await target.getFront("memory");
return { memory, target };
}
async function destroyServerAndFinish(target) {
await target.destroy();
SimpleTest.finish();
}
function waitForTime(ms) {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
}
function waitUntil(predicate) {
if (predicate()) {
return Promise.resolve(true);
}
return new Promise(resolve =>
setTimeout(() => waitUntil(predicate).then(() => resolve(true)), 10)
);
}