Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

/* Any copyright is dedicated to the Public Domain.
"use strict";
// Test that even when the cache is disabled, the inspector/styleeditor don't fetch again
// stylesheets from the server to display them in devtools, but use the cached version.
const TEST_CSS = URL_ROOT + "browser_toolbox_options_disable_cache.css.sjs";
const TEST_PAGE = `<html>
<head>
<meta charset="utf-8"/>
<link href="${TEST_CSS}" rel="stylesheet" type="text/css"/>
</head>
<body></body>
</html>`;
add_task(async function () {
info("Setup preferences for testing");
// Disable rcwn to make cache behavior deterministic.
await pushPref("network.http.rcwn.enabled", false);
// Disable the cache.
await pushPref("devtools.cache.disabled", true);
info("Open inspector");
const toolbox = await openNewTabAndToolbox(
`data:text/html;charset=UTF-8,${encodeURIComponent(TEST_PAGE)}`,
"inspector"
);
const inspector = toolbox.getPanel("inspector");
info(
"Check that the CSS content loaded in the page " +
"and the one shown in the inspector are the same"
);
const webContent = await getWebContent();
const inspectorContent = await getInspectorContent(inspector);
is(
webContent,
inspectorContent,
"The contents of both web and DevTools are same"
);
await closeTabAndToolbox();
});
async function getInspectorContent(inspector) {
const ruleView = inspector.getPanel("ruleview").view;
const valueEl = await waitFor(() =>
ruleView.styleDocument.querySelector(".ruleview-propertyvalue")
);
return valueEl.textContent;
}
async function getWebContent() {
return SpecialPowers.spawn(gBrowser.selectedBrowser, [], () => {
const doc = content.document;
return doc.ownerGlobal.getComputedStyle(doc.body, "::before").content;
});
}