Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* 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";
// Test that iframe blocked because of CSP doesn't cause the browser to freeze.
<h1>Test expanding CSP-blocked iframe</h1>
`)}&headers=content-security-policy:default-src 'self'`;
<frameset>
</frameset>
`)}&headers=content-security-policy:default-src 'self'`;
const BYPASS_WALKERFRONT_CHILDREN_IFRAME_GUARD_PREF =
"devtools.testing.bypass-walker-children-iframe-guard";
add_task(async function () {
await pushPref(BYPASS_WALKERFRONT_CHILDREN_IFRAME_GUARD_PREF, true);
const { inspector } = await openInspectorForURL(IFRAME_TEST_URI);
await testElementBlockedByCSP("iframe", inspector);
// Don't wait for the load event as it doesn't happen because the frame is blocked.
await navigateTo(FRAME_TEST_URI, { waitForLoad: false });
await testElementBlockedByCSP("frame", inspector);
});
async function testElementBlockedByCSP(selector, inspector) {
await inspector.markup.expandAll();
info(`Check that markup node for "${selector}" can't be expanded`);
let container = await getContainerForSelector(selector, inspector);
is(
container.expander.style.visibility,
"hidden",
"Expand icon is hidden, even without the safe guard in WalkerFront#children"
);
info("Reload the page and do same assertion with the guard");
Services.prefs.clearUserPref(BYPASS_WALKERFRONT_CHILDREN_IFRAME_GUARD_PREF);
await reloadBrowser();
await inspector.markup.expandAll();
container = await getContainerForSelector(selector, inspector);
is(
container.expander.style.visibility,
"hidden",
"Expand icon is still hidden"
);
}