Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: os == 'linux' && os_version == '24.04' && arch == 'x86_64' && display == 'x11' && debug && http3
- Manifest: devtools/client/netmonitor/test/browser_mz.toml
/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* Tests that cached JS files show the expected stacktraces.
*/
add_task(async function () {
const URL = EXAMPLE_URL + "html_cache-test-page-js.html";
const SCRIPT_URL = EXAMPLE_URL + "js_cache-test2.js";
const { monitor } = await initNetMonitor(URL, {
requestCount: 1,
enableCache: true,
});
const { document, store, windowRequire } = monitor.panelWin;
const Actions = windowRequire("devtools/client/netmonitor/src/actions/index");
store.dispatch(Actions.batchEnable(false));
info("Starting test... ");
const allRequestsVisible = waitUntil(
() => document.querySelectorAll(".request-list-item").length == 3
);
await waitForAllNetworkUpdateEvents();
await reloadSelectedTab();
await allRequestsVisible;
const onStackTracesVisible = waitUntil(
() => document.querySelector("#stack-trace-panel .stack-trace .frame-link"),
"Wait for the stacktrace to be rendered"
);
const file = document.querySelector(
`.request-list-item .requests-list-file[title="${SCRIPT_URL}"]`
);
const initiator = file.parentNode.querySelector(".requests-list-initiator");
ok(
initiator.textContent.includes("js_cache-test.js:6"),
"Initiator column should show the source line"
);
// Select the script request initiated by another script.
EventUtils.sendMouseEvent({ type: "mousedown" }, file);
// Wait for the stack trace tab to show
await waitUntil(() =>
document.querySelector(".network-details-bar #stack-trace-tab")
);
clickOnSidebarTab(document, "stack-trace");
await onStackTracesVisible;
const panel = document.querySelector("#stack-trace-panel");
ok(
panel.textContent.includes("scriptInitiatorFunc"),
"Stacktrace should show the enclosing function name"
);
ok(
panel.textContent.includes("js_cache-test.js:6"),
"Stacktrace should show the source line"
);
return teardown(monitor);
});