mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-27 21:00:50 +00:00
Bug 1220740 - nsIServiceWorkerRegistrationInfo should emit an event when its worker properties change;r=amarchesini
This commit is contained in:
parent
f2221b7a7f
commit
d9c0acb19f
@ -1193,6 +1193,7 @@ public:
|
||||
|
||||
mRegistration->mInstallingWorker = mUpdateAndInstallInfo.forget();
|
||||
mRegistration->mInstallingWorker->UpdateState(ServiceWorkerState::Installing);
|
||||
mRegistration->NotifyListenersOnChange();
|
||||
|
||||
Succeed();
|
||||
// The job should NOT call fail from this point on.
|
||||
@ -1360,6 +1361,7 @@ private:
|
||||
|
||||
mRegistration->mWaitingWorker = mRegistration->mInstallingWorker.forget();
|
||||
mRegistration->mWaitingWorker->UpdateState(ServiceWorkerState::Installed);
|
||||
mRegistration->NotifyListenersOnChange();
|
||||
swm->InvalidateServiceWorkerRegistrationWorker(mRegistration,
|
||||
WhichServiceWorker::INSTALLING_WORKER | WhichServiceWorker::WAITING_WORKER);
|
||||
|
||||
@ -1679,6 +1681,7 @@ ServiceWorkerRegistrationInfo::Activate()
|
||||
mActiveWorker = activatingWorker.forget();
|
||||
mWaitingWorker = nullptr;
|
||||
mActiveWorker->UpdateState(ServiceWorkerState::Activating);
|
||||
NotifyListenersOnChange();
|
||||
|
||||
// FIXME(nsm): Unlink appcache if there is one.
|
||||
|
||||
|
@ -41,11 +41,32 @@
|
||||
"listeners when its state changes.");
|
||||
promise = waitForRegister(EXAMPLE_URL, function (registration) {
|
||||
is(registration.scriptSpec, "");
|
||||
ok(registration.installingWorker === null);
|
||||
ok(registration.waitingWorker === null);
|
||||
ok(registration.activeWorker === null);
|
||||
|
||||
return waitForServiceWorkerRegistrationChange(registration, function () {
|
||||
is(registration.scriptSpec, EXAMPLE_URL + "worker.js");
|
||||
|
||||
return registration;
|
||||
return waitForServiceWorkerRegistrationChange(registration, function () {
|
||||
ok(registration.installingWorker !== null);
|
||||
ok(registration.waitingWorker === null);
|
||||
ok(registration.activeWorker === null);
|
||||
|
||||
return waitForServiceWorkerRegistrationChange(registration, function () {
|
||||
ok(registration.installingWorker === null);
|
||||
ok(registration.waitingWorker !== null);
|
||||
ok(registration.activeWorker === null);
|
||||
|
||||
return waitForServiceWorkerRegistrationChange(registration, function () {
|
||||
ok(registration.installingWorker === null);
|
||||
ok(registration.waitingWorker === null);
|
||||
ok(registration.activeWorker !== null);
|
||||
|
||||
return registration;
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
iframe.contentWindow.postMessage("register", "*");
|
||||
@ -54,7 +75,26 @@
|
||||
promise = waitForServiceWorkerRegistrationChange(registration, function () {
|
||||
is(registration.scriptSpec, EXAMPLE_URL + "worker2.js");
|
||||
|
||||
return registration;
|
||||
return waitForServiceWorkerRegistrationChange(registration, function () {
|
||||
ok(registration.installingWorker !== null);
|
||||
ok(registration.waitingWorker === null);
|
||||
ok(registration.activeWorker !== null);
|
||||
|
||||
return waitForServiceWorkerRegistrationChange(registration, function () {
|
||||
ok(registration.installingWorker === null);
|
||||
ok(registration.waitingWorker !== null);
|
||||
ok(registration.activeWorker !== null);
|
||||
|
||||
return waitForServiceWorkerRegistrationChange(registration, function () {
|
||||
ok(registration.installingWorker === null);
|
||||
ok(registration.waitingWorker === null);
|
||||
ok(registration.activeWorker !== null);
|
||||
|
||||
return registration;
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
iframe.contentWindow.postMessage("register", "*");
|
||||
yield promise;
|
||||
|
Loading…
x
Reference in New Issue
Block a user