зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1228277 P2 Make skipWaiting() check the evaluating service worker script. r=asuth
This commit is contained in:
Родитель
cc9a82558b
Коммит
c8cef10a01
|
@ -2836,7 +2836,7 @@ ServiceWorkerManager::ClaimClients(nsIPrincipal* aPrincipal,
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
void
|
||||
ServiceWorkerManager::SetSkipWaitingFlag(nsIPrincipal* aPrincipal,
|
||||
const nsCString& aScope,
|
||||
uint64_t aServiceWorkerID)
|
||||
|
@ -2844,24 +2844,21 @@ ServiceWorkerManager::SetSkipWaitingFlag(nsIPrincipal* aPrincipal,
|
|||
RefPtr<ServiceWorkerRegistrationInfo> registration =
|
||||
GetRegistration(aPrincipal, aScope);
|
||||
if (NS_WARN_IF(!registration)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (registration->GetInstalling() &&
|
||||
(registration->GetInstalling()->ID() == aServiceWorkerID)) {
|
||||
registration->GetInstalling()->SetSkipWaitingFlag();
|
||||
} else if (registration->GetWaiting() &&
|
||||
(registration->GetWaiting()->ID() == aServiceWorkerID)) {
|
||||
registration->GetWaiting()->SetSkipWaitingFlag();
|
||||
if (registration->GetWaiting()->State() == ServiceWorkerState::Installed) {
|
||||
registration->TryToActivateAsync();
|
||||
}
|
||||
} else {
|
||||
NS_WARNING("Failed to set skipWaiting flag, no matching worker.");
|
||||
return NS_ERROR_FAILURE;
|
||||
RefPtr<ServiceWorkerInfo> worker =
|
||||
registration->GetServiceWorkerInfoById(aServiceWorkerID);
|
||||
|
||||
if (NS_WARN_IF(!worker)) {
|
||||
return;
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
worker->SetSkipWaitingFlag();
|
||||
|
||||
if (worker->State() == ServiceWorkerState::Installed) {
|
||||
registration->TryToActivateAsync();
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -255,7 +255,7 @@ public:
|
|||
nsresult
|
||||
ClaimClients(nsIPrincipal* aPrincipal, const nsCString& aScope, uint64_t aId);
|
||||
|
||||
nsresult
|
||||
void
|
||||
SetSkipWaitingFlag(nsIPrincipal* aPrincipal, const nsCString& aScope,
|
||||
uint64_t aServiceWorkerID);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче