/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ "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 = ` `; 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; }); }