async function assertScriptsAllowed(bc, expectAllowed, desc) {
let actor = bc.currentWindowGlobal.getActor(ACTOR);
let allowed = await actor.sendQuery("CheckScriptsAllowed");
equal(
allowed,
expectAllowed,
`Scripts should be ${expectAllowed ? "" : "dis"}allowed for ${desc}`
);
}
async function assertLoadFired(bc, expectFired, desc) {
let actor = bc.currentWindowGlobal.getActor(ACTOR);
let fired = await actor.sendQuery("CheckFiredLoadEvent");
equal(
fired,
expectFired,
`Should ${expectFired ? "" : "not "}have fired load for ${desc}`
);
}
function createSubframe(bc, url) {
let actor = bc.currentWindowGlobal.getActor(ACTOR); return actor.sendQuery("CreateIframe", { url });
}
let oopFrame1OopSub = await createSubframe(
oopFrame1, "http://example.com/"
);
let inprocFrame1OopSub = await createSubframe(
inprocFrame1, "http://example.org/"
);
equal(
oopFrame1.allowJavascript, true, "OOP BC should inherit allowJavascript from parent"
);
equal(
inprocFrame1.allowJavascript, true, "In-process BC should inherit allowJavascript from parent"
);
equal(
oopFrame1OopSub.allowJavascript, true, "OOP BC child should inherit allowJavascript from parent"
);
equal(
inprocFrame1OopSub.allowJavascript, true, "In-process child BC should inherit allowJavascript from parent"
);
bc.allowJavascript = false;
await assertScriptsAllowed(bc, false, "top BC with scripts disallowed");
await assertScriptsAllowed(
oopFrame1, false, "OOP frame 1 with top BC with scripts disallowed"
);
await assertScriptsAllowed(
inprocFrame1, false, "In-process frame 1 with top BC with scripts disallowed"
);
await assertScriptsAllowed(
oopFrame1OopSub, false, "OOP frame 1 subframe with top BC with scripts disallowed"
);
await assertScriptsAllowed(
inprocFrame1OopSub, false, "In-process frame 1 subframe with top BC with scripts disallowed"
);
equal(
oopFrame2.allowJavascript, false, "OOP BC 2 should inherit allowJavascript from parent"
);
equal(
inprocFrame2.allowJavascript, false, "In-process BC 2 should inherit allowJavascript from parent"
);
await assertLoadFired(
oopFrame2,
undefined, "OOP frame 2 with top BC with scripts disallowed"
);
await assertScriptsAllowed(
oopFrame2, false, "OOP frame 2 with top BC with scripts disallowed"
);
await assertLoadFired(
inprocFrame2,
undefined, "In-process frame 2 with top BC with scripts disallowed"
);
await assertScriptsAllowed(
inprocFrame2, false, "In-process frame 2 with top BC with scripts disallowed"
);
equal(
oopFrame1.currentWindowGlobal.allowJavascript, true, "WindowContext.allowJavascript does not persist after navigation for OOP frame 1"
);
equal(
inprocFrame1.currentWindowGlobal.allowJavascript, true, "WindowContext.allowJavascript does not persist after navigation for in-process frame 1"
);
await assertLoadFired(
bc,
undefined, "top BC with scripts disabled after reload"
);
await assertScriptsAllowed(
bc, false, "top BC with scripts disabled after reload"
);
await assertLoadFired(
bc,
undefined, "top BC with scripts disabled after navigation"
);
await assertScriptsAllowed(
bc, false, "top BC with scripts disabled after navigation"
);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.