/* vim:set ts=2 sw=2 sts=2 et: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
add_task(async
function () {
const TEST_URI =
"http://example.com/browser/dom/tests/browser/test_bug1004814.html";
await BrowserTestUtils.withNewTab(TEST_URI, async aBrowser => {
let duration = await SpecialPowers.spawn(aBrowser, [],
function () {
const ConsoleAPIStorage = Cc[
"@mozilla.org/consoleAPI-storage;1"
].getService(Ci.nsIConsoleAPIStorage);
return new Promise(resolve => {
function observe(aSubject) {
var obj = aSubject.wrappedJSObject;
if (
obj.arguments.length != 1 ||
obj.arguments[0] !=
"bug1004814" ||
obj.level !=
"timeEnd"
) {
return;
}
ConsoleAPIStorage.removeLogEventListener(observe);
resolve(obj.timer.duration);
}
ConsoleAPIStorage.addLogEventListener(
observe,
Cc[
"@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal)
);
var w =
new content.Worker(
"worker_bug1004814.js");
w.postMessage(
true);
});
});
Assert.greater(
duration,
0,
"ConsoleEvent.timer.duration > 0: " + duration +
" ~ 200ms"
);
});
});