mirror of
https://github.com/roytam1/palemoon27.git
synced 2026-06-02 22:59:56 +00:00
58 lines
1.5 KiB
JavaScript
58 lines
1.5 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/**
|
|
* Tests whether the profiler actor correctly handles the case where the
|
|
* built-in module was already started.
|
|
*/
|
|
|
|
const Profiler = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
|
|
const WAIT_TIME = 1000; // ms
|
|
|
|
function connect_client(callback)
|
|
{
|
|
let client = new DebuggerClient(DebuggerServer.connectPipe());
|
|
client.connect(() => {
|
|
client.listTabs(response => {
|
|
callback(client, response.profilerActor);
|
|
});
|
|
});
|
|
}
|
|
|
|
function run_test()
|
|
{
|
|
// Ensure the profiler is already running when the test starts.
|
|
Profiler.StartProfiler(1000000, 1, ["js"], 1);
|
|
|
|
DevToolsUtils.waitForTime(WAIT_TIME).then(() => {
|
|
DebuggerServer.init();
|
|
DebuggerServer.addBrowserActors();
|
|
|
|
connect_client((client, actor) => {
|
|
test_start_time(client, actor, () => {
|
|
client.close(do_test_finished);
|
|
});
|
|
});
|
|
});
|
|
|
|
do_test_pending();
|
|
}
|
|
|
|
function test_start_time(client, actor, callback) {
|
|
// Profiler should already be active at this point.
|
|
client.request({ to: actor, type: "isActive" }, firstResponse => {
|
|
do_check_true(Profiler.IsActive());
|
|
do_check_true(firstResponse.isActive);
|
|
do_check_true(firstResponse.currentTime > 0);
|
|
|
|
client.request({ to: actor, type: "getProfile" }, secondResponse => {
|
|
do_check_true("profile" in secondResponse);
|
|
do_check_true(secondResponse.currentTime > firstResponse.currentTime);
|
|
|
|
callback();
|
|
});
|
|
});
|
|
}
|