55 lines
1.7 KiB
HTML
55 lines
1.7 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Tests for Cu.isRemoteProxy</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
|
|
async function addFrame(url) {
|
|
let frame = document.createElement("iframe");
|
|
frame.src = url;
|
|
document.body.appendChild(frame);
|
|
|
|
await new Promise(resolve => {
|
|
frame.addEventListener("load", resolve, { once: true });
|
|
});
|
|
|
|
return frame;
|
|
}
|
|
|
|
add_task(async function() {
|
|
const { Cu } = SpecialPowers;
|
|
|
|
let localFrame = await addFrame("file_empty.html");
|
|
let remoteFrame = await addFrame(
|
|
SimpleTest.getTestFileURL("file_empty.html")
|
|
.replace("mochi.test:8888", "example.com"));
|
|
|
|
ok(frames[0] === localFrame.contentWindow, "frames[0] is localFrame");
|
|
ok(frames[1] === remoteFrame.contentWindow, "frames[1] is remoteFrame");
|
|
|
|
ok(!Cu.isRemoteProxy(window), "window is not a remote proxy");
|
|
ok(!Cu.isRemoteProxy(location), "location is not a remote proxy");
|
|
|
|
ok(!Cu.isRemoteProxy(frames[0]), "frames[0] is not a remote proxy");
|
|
ok(
|
|
!Cu.isRemoteProxy(frames[0].location),
|
|
"frames[0].location is not a remote proxy"
|
|
);
|
|
|
|
// The processes will be remote only with isolateEverything strategy
|
|
const expected = SpecialPowers.effectiveIsolationStrategy() == SpecialPowers.ISOLATION_STRATEGY.IsolateEverything;
|
|
|
|
is(Cu.isRemoteProxy(frames[1]), expected,
|
|
"frames[1] is a remote proxy if Fission is enabled and strategy is isolateEverything");
|
|
is(Cu.isRemoteProxy(frames[1].location), expected,
|
|
"frames[1].location is a remote proxy if Fission is enabled and strategy is isolateEverything");
|
|
});
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|