function get_file() {
return new Promise(resolve => {
let xhr = new XMLHttpRequest();
xhr.open("GET", "/dynamic/getMyDirectory.sjs", false);
xhr.send();
let basePath = xhr.responseText;
function unregister_and_done(registration) {
return registration.unregister().then(() => {
ok(true, "Will find leaks of nsPipe in BloatView without fix.");
SimpleTest.finish;
});
}
add_task(async function send_file_to_serviceworker() {
let registration = await navigator.serviceWorker
.register("worker_bug1742540.js", { scope: "./" })
.then(() => {
return navigator.serviceWorker.ready;
});
ok(registration.active, "ServiceWorker is activated");
let file = await get_file();
ok(file.size > 100000, "File size is big enough.");
let message = "ServiceWorker receives a file and did not reference it.";
let channel = new MessageChannel();
let received = wait_for_message(channel.port1, message);
registration.active.postMessage({ port: channel.port2, message, file }, [
channel.port2,
]);
await received;
let finish = await unregister_and_done(registration);
});
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 und die Messung sind noch experimentell.