Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
function clickReload(devtoolsDocument) {
devtoolsDocument.querySelector(".qa-reload-button").click();
}
// Test that ensures the remote page is reloaded when the button is clicked
add_task(async function () {
const debug_tab = await addTab("about:home");
const { document, tab, window } = await openAboutDebugging();
// go to This Firefox and inspect the new tab
info("Inspecting a new tab in This Firefox");
await selectThisFirefoxPage(document, window.AboutDebugging.store);
const { devtoolsDocument, devtoolsTab, devtoolsWindow } =
await openAboutDevtoolsToolbox(document, tab, window, "about:home");
info("Clicking reload button and waiting for requests to complete");
const toolbox = getToolbox(devtoolsWindow);
const { onDomCompleteResource } =
await waitForNextTopLevelDomCompleteResource(toolbox.commands);
// Watch for navigation promises.
const refreshes = Promise.all([
onDomCompleteResource,
toolbox.commands.client.waitForRequestsToSettle(),
waitForAboutDebuggingRequests(window.AboutDebugging.store),
]);
// We cannot include this one in the Promise.all array, as it needs to be
// explicitly called after navigation started.
const waitForLoadedPanelsReload = await watchForLoadedPanelsReload(toolbox);
clickReload(devtoolsDocument);
await refreshes;
await waitForLoadedPanelsReload();
ok(true, "Clicked refresh; both page and devtools reloaded");
await closeAboutDevtoolsToolbox(document, devtoolsTab, window);
info("Remove the debugged tab");
await removeTab(debug_tab);
await waitUntil(() => !findDebugTargetByText("about:home", document));
await waitForAboutDebuggingRequests(window.AboutDebugging.store);
info("Remove the about:debugging tab.");
await removeTab(tab);
});