23 lines
777 B
JavaScript
23 lines
777 B
JavaScript
// META: timeout=long
|
|
// META: script=/common/utils.js
|
|
// META: script=/common/get-host-info.sub.js
|
|
// META: script=beacon-common.sub.js
|
|
|
|
'use strict';
|
|
|
|
const {HTTP_REMOTE_ORIGIN} = get_host_info();
|
|
|
|
for (const type of [STRING, ARRAYBUFFER, FORM, BLOB]) {
|
|
parallelPromiseTest(async (t) => {
|
|
const iframe = document.createElement('iframe');
|
|
document.body.appendChild(iframe);
|
|
t.add_cleanup(() => iframe.remove());
|
|
|
|
const payload = makePayload(SMALL, type);
|
|
const id = token();
|
|
const url = `/beacon/resources/beacon.py?cmd=store&id=${id}`;
|
|
assert_true(iframe.contentWindow.navigator.sendBeacon(url, payload));
|
|
|
|
iframe.src = `${HTTP_REMOTE_ORIGIN}/common/blank.html`;
|
|
}, `The frame navigates away after calling sendBeacon[type = ${type}].`);
|
|
}
|