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' && tsan
- Manifest: devtools/client/performance-new/test/browser/browser.toml
/* 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
"use strict";
add_task(async function test_external_recording_left_running() {
info(
"Test that closing DevTools leaves a profiler recording it did not start running."
);
const { startProfiler, stopProfiler } = ChromeUtils.importESModule(
"resource://devtools/client/performance-new/shared/background.sys.mjs"
);
info("Start the profiler outside of DevTools.");
startProfiler("aboutprofiling");
ok(
Services.profiler.IsActive(),
"The profiler is running before opening DevTools."
);
await withDevToolsPanel(async document => {
info("Wait until the panel reflects the externally started recording.");
await getActiveButtonFromText(document, "Cancel recording");
});
ok(
Services.profiler.IsActive(),
"The externally started profiler is still running after closing DevTools."
);
info("Stop the externally started profiler.");
stopProfiler();
});
add_task(async function test_devtools_recording_stopped_on_close() {
info("Test that closing DevTools stops a recording it started itself.");
ok(
!Services.profiler.IsActive(),
"The profiler is not running before the test."
);
await withDevToolsPanel(async document => {
const button = await getActiveButtonFromText(document, "Start recording");
info("Click the button to start recording from the panel.");
button.click();
await getActiveButtonFromText(document, "Capture recording");
ok(Services.profiler.IsActive(), "The profiler was started by the panel.");
});
await TestUtils.waitForCondition(
() => !Services.profiler.IsActive(),
"Waiting for the panel-started profiler to stop after closing DevTools."
);
ok(
!Services.profiler.IsActive(),
"The panel-started profiler is stopped after closing DevTools."
);
});