From 6e3969226ab2ce2f6192e0310cf96e276771a183 Mon Sep 17 00:00:00 2001 From: Johann Hofmann Date: Tue, 19 Mar 2019 00:13:36 +0100 Subject: [PATCH] Bug 1524619 - Part 5 - Propagate user interaction through APIs that return ServiceWorkerRegistrations. r=Ehsan This is done to support requiring user interaction when calling PushManager.subscribe(). Because PushManager must usually be accessed with async APIs, this makes for a better developer experience and should reduce breakage. Differential Revision: https://phabricator.services.mozilla.com/D23970 --HG-- extra : rebase_source : 047b28e99d80e1adfe14aaea99bc56800dc4281b --- dom/serviceworkers/ServiceWorkerContainer.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/dom/serviceworkers/ServiceWorkerContainer.cpp b/dom/serviceworkers/ServiceWorkerContainer.cpp index 3d043591a653..09050b82d51c 100644 --- a/dom/serviceworkers/ServiceWorkerContainer.cpp +++ b/dom/serviceworkers/ServiceWorkerContainer.cpp @@ -368,7 +368,8 @@ already_AddRefed ServiceWorkerContainer::Register( window->NoteCalledRegisterForServiceWorkerScope(cleanedScopeURL); - RefPtr outer = Promise::Create(global, aRv); + RefPtr outer = + Promise::Create(global, aRv, Promise::ePropagateUserInteraction); if (aRv.Failed()) { return nullptr; } @@ -417,7 +418,8 @@ already_AddRefed ServiceWorkerContainer::GetRegistrations( return nullptr; } - RefPtr outer = Promise::Create(global, aRv); + RefPtr outer = + Promise::Create(global, aRv, Promise::ePropagateUserInteraction); if (aRv.Failed()) { return nullptr; } @@ -492,7 +494,8 @@ already_AddRefed ServiceWorkerContainer::GetRegistration( return nullptr; } - RefPtr outer = Promise::Create(global, aRv); + RefPtr outer = + Promise::Create(global, aRv, Promise::ePropagateUserInteraction); if (aRv.Failed()) { return nullptr; } @@ -543,7 +546,8 @@ Promise* ServiceWorkerContainer::GetReady(ErrorResult& aRv) { return nullptr; } - mReadyPromise = Promise::Create(global, aRv); + mReadyPromise = + Promise::Create(global, aRv, Promise::ePropagateUserInteraction); if (aRv.Failed()) { return nullptr; }