blob: 0e3e69afa1b2b28c3b8ae4844ddd102917ed8717 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../resources/get-host-info.js"></script>
<body>
<script>
var other_origin = get_host_info().UNAUTHENTICATED_ORIGIN + "wasm_streaming/resources/blank.html";
promise_test(() => {
return new Promise((resolve, reject) => {
frame = document.body.appendChild(document.createElement("iframe"));
frame.src = other_origin;
frame.onload = () => {
var wnd = frame.contentWindow;
var promise = WebAssembly.compileStreaming.call(wnd);
var objConstructor = promise.__proto__.__proto__.constructor;
var promiseConstructor = Promise.__proto__.__proto__.constructor;
promise.catch(e => {
assert_true(e instanceof TypeError);
if (objConstructor === promiseConstructor) {
resolve();
} else {
reject();
};
});
}
});
}, "wasm compileStreaming does not leak foreign contexts");
promise_test(() => {
return new Promise((resolve, reject) => {
frame = document.body.appendChild(document.createElement("iframe"));
frame.src = other_origin;
frame.onload = () => {
var wnd = frame.contentWindow;
var promise = WebAssembly.instantiateStreaming.call(wnd);
var objConstructor = promise.__proto__.__proto__.constructor;
var promiseConstructor = Promise.__proto__.__proto__.constructor;
promise.catch(e => {
assert_true(e instanceof TypeError);
if (objConstructor === promiseConstructor) {
resolve();
} else {
reject();
};
});
}
});
}, "wasm instantiateStreaming does not leak foreign contexts");
</script>
</body>