blob: f94e1f1a9e600941c999d8a701d7ce135124ec6a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
/* exported Task, startServerAndGetSelectedTabMemory, destroyServerAndFinish,
waitForTime, waitUntil */
"use strict";
const { require } = ChromeUtils.import("resource://devtools/shared/Loader.jsm");
const Services = require("Services");
const { TargetFactory } = require("devtools/client/framework/target");
// Always log packets when running tests.
Services.prefs.setBoolPref("devtools.debugger.log", true);
var gReduceTimePrecision = Services.prefs.getBoolPref(
"privacy.reduceTimerPrecision"
);
Services.prefs.setBoolPref("privacy.reduceTimerPrecision", false);
SimpleTest.registerCleanupFunction(function() {
Services.prefs.clearUserPref("devtools.debugger.log");
Services.prefs.setBoolPref(
"privacy.reduceTimerPrecision",
gReduceTimePrecision
);
});
async function getTargetForSelectedTab() {
const browserWindow = Services.wm.getMostRecentWindow("navigator:browser");
const target = await TargetFactory.forTab(browserWindow.gBrowser.selectedTab);
return target;
}
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, reject) => {
setTimeout(resolve, ms);
});
}
function waitUntil(predicate) {
if (predicate()) {
return Promise.resolve(true);
}
return new Promise(resolve =>
setTimeout(() => waitUntil(predicate).then(() => resolve(true)), 10)
);
}
|