forked from mirrors/gecko-dev
55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
"use strict";
|
|
|
|
// Test that an extension page which is sandboxed may load resources
|
|
// from itself without relying on web acessible resources.
|
|
add_task(async function test_webext_background_sandbox_privileges() {
|
|
function backgroundSubframeScript() {
|
|
window.parent.postMessage(typeof browser, "*");
|
|
}
|
|
|
|
function backgroundScript() {
|
|
/* eslint-disable-next-line mozilla/balanced-listeners */
|
|
window.addEventListener("message", event => {
|
|
if (event.data == "undefined") {
|
|
browser.test.notifyPass("webext-background-sandbox-privileges");
|
|
} else {
|
|
browser.test.notifyFail("webext-background-sandbox-privileges");
|
|
}
|
|
});
|
|
}
|
|
|
|
let extensionData = {
|
|
manifest: {
|
|
background: {
|
|
page: "background.html",
|
|
},
|
|
},
|
|
files: {
|
|
"background.html": `<!DOCTYPE>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
</head>
|
|
<body>
|
|
<script src="background.js"><\/script>
|
|
<iframe src="background-subframe.html" sandbox="allow-scripts"></iframe>
|
|
</body>
|
|
</html>`,
|
|
"background-subframe.html": `<!DOCTYPE>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<script src="background-subframe.js"><\/script>
|
|
</head>
|
|
</html>`,
|
|
"background-subframe.js": backgroundSubframeScript,
|
|
"background.js": backgroundScript,
|
|
},
|
|
};
|
|
let extension = ExtensionTestUtils.loadExtension(extensionData);
|
|
|
|
await extension.startup();
|
|
|
|
await extension.awaitFinish("webext-background-sandbox-privileges");
|
|
await extension.unload();
|
|
});
|