mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-17 15:25:52 +00:00
Bug 1469882 Don't consult child process ServiceWorkerManager when populating MessageEvent.source with the e10s pref flipped. r=mrbkap
This commit is contained in:
parent
06ae64dde8
commit
9258565483
@ -611,21 +611,29 @@ ClientSource::PostMessage(const ClientPostMessageArgs& aArgs)
|
||||
CopyUTF8toUTF16(origin, init.mOrigin);
|
||||
}
|
||||
|
||||
RefPtr<ServiceWorkerManager> swm = ServiceWorkerManager::GetInstance();
|
||||
if (!swm) {
|
||||
// Shutting down. Just don't deliver this message.
|
||||
ref = ClientOpPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
return ref.forget();
|
||||
RefPtr<ServiceWorker> instance;
|
||||
|
||||
if (ServiceWorkerParentInterceptEnabled()) {
|
||||
instance = globalObject->GetOrCreateServiceWorker(source);
|
||||
} else {
|
||||
// If we are in legacy child-side intercept mode then we need to verify
|
||||
// this registration exists in the current process.
|
||||
RefPtr<ServiceWorkerManager> swm = ServiceWorkerManager::GetInstance();
|
||||
if (!swm) {
|
||||
// Shutting down. Just don't deliver this message.
|
||||
ref = ClientOpPromise::CreateAndReject(NS_ERROR_FAILURE, __func__);
|
||||
return ref.forget();
|
||||
}
|
||||
|
||||
RefPtr<ServiceWorkerRegistrationInfo> reg =
|
||||
swm->GetRegistration(principal, source.Scope());
|
||||
if (reg) {
|
||||
instance = globalObject->GetOrCreateServiceWorker(source);
|
||||
}
|
||||
}
|
||||
|
||||
RefPtr<ServiceWorkerRegistrationInfo> reg =
|
||||
swm->GetRegistration(principal, source.Scope());
|
||||
if (reg) {
|
||||
RefPtr<ServiceWorker> instance =
|
||||
globalObject->GetOrCreateServiceWorker(source);
|
||||
if (instance) {
|
||||
init.mSource.SetValue().SetAsServiceWorker() = instance;
|
||||
}
|
||||
if (instance) {
|
||||
init.mSource.SetValue().SetAsServiceWorker() = instance;
|
||||
}
|
||||
|
||||
RefPtr<MessageEvent> event =
|
||||
|
Loading…
Reference in New Issue
Block a user