зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1465670 P3 Fix dom/cache service worker test harness to call importScripts() during install. r=asuth
This commit is contained in:
Родитель
ba44f4c92d
Коммит
3e9f410d33
|
@ -4,8 +4,10 @@
|
|||
function serviceWorkerTestExec(testFile) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
function setupSW(registration) {
|
||||
var worker = registration.waiting ||
|
||||
var worker = registration.installing ||
|
||||
registration.waiting ||
|
||||
registration.active;
|
||||
var iframe;
|
||||
|
||||
window.addEventListener("message",function onMessage(event) {
|
||||
if (event.data.context != "ServiceWorker") {
|
||||
|
@ -13,6 +15,7 @@ function serviceWorkerTestExec(testFile) {
|
|||
}
|
||||
if (event.data.type == 'finish') {
|
||||
window.removeEventListener("message", onMessage);
|
||||
iframe.remove();
|
||||
registration.unregister()
|
||||
.then(resolve)
|
||||
.catch(reject);
|
||||
|
@ -23,7 +26,7 @@ function serviceWorkerTestExec(testFile) {
|
|||
|
||||
worker.onerror = reject;
|
||||
|
||||
var iframe = document.createElement("iframe");
|
||||
iframe = document.createElement("iframe");
|
||||
iframe.src = "message_receiver.html";
|
||||
iframe.onload = function() {
|
||||
worker.postMessage({ script: testFile });
|
||||
|
@ -31,7 +34,7 @@ function serviceWorkerTestExec(testFile) {
|
|||
document.body.appendChild(iframe);
|
||||
}
|
||||
|
||||
navigator.serviceWorker.ready.then(setupSW);
|
||||
navigator.serviceWorker.register("worker_wrapper.js", {scope: "."});
|
||||
navigator.serviceWorker.register("worker_wrapper.js", {scope: "."})
|
||||
.then(setupSW);
|
||||
});
|
||||
}
|
||||
|
|
|
@ -92,6 +92,8 @@ function workerTestGetUserAgent(cb) {
|
|||
});
|
||||
}
|
||||
|
||||
var completeInstall = null;
|
||||
|
||||
addEventListener('message', function workerWrapperOnMessage(e) {
|
||||
removeEventListener('message', workerWrapperOnMessage);
|
||||
var data = e.data;
|
||||
|
@ -108,7 +110,7 @@ addEventListener('message', function workerWrapperOnMessage(e) {
|
|||
}
|
||||
}
|
||||
if ("ServiceWorker" in self) {
|
||||
self.clients.matchAll().then(function(clients) {
|
||||
self.clients.matchAll({ includeUncontrolled: true }).then(function(clients) {
|
||||
for (var i = 0; i < clients.length; ++i) {
|
||||
if (clients[i].url.indexOf("message_receiver.html") > -1) {
|
||||
client = clients[i];
|
||||
|
@ -120,6 +122,7 @@ addEventListener('message', function workerWrapperOnMessage(e) {
|
|||
}
|
||||
context = "ServiceWorker";
|
||||
runScript();
|
||||
completeInstall();
|
||||
});
|
||||
} else {
|
||||
client = self;
|
||||
|
@ -127,3 +130,7 @@ addEventListener('message', function workerWrapperOnMessage(e) {
|
|||
runScript();
|
||||
}
|
||||
});
|
||||
|
||||
addEventListener("install", e => {
|
||||
e.waitUntil(new Promise(resolve => completeInstall = resolve));
|
||||
})
|
||||
|
|
Загрузка…
Ссылка в новой задаче