diff --git a/extensions/permissions/nsPermissionManager.cpp b/extensions/permissions/nsPermissionManager.cpp index f102d54ef215..5ca9d0622605 100644 --- a/extensions/permissions/nsPermissionManager.cpp +++ b/extensions/permissions/nsPermissionManager.cpp @@ -3149,7 +3149,7 @@ nsPermissionManager::SetPermissionsWithKey(const nsACString& aPermissionKey, return NS_ERROR_NOT_AVAILABLE; } - RefPtr promise; + RefPtr promise; bool foundKey = mPermissionKeyPromiseMap.Get(aPermissionKey, getter_AddRefs(promise)); if (promise) { @@ -3310,7 +3310,7 @@ bool nsPermissionManager::PermissionAvailable(nsIPrincipal* aPrincipal, // If we have a pending promise for the permission key in question, we don't // have the permission available, so report a warning and return false. - RefPtr promise; + RefPtr promise; if (!mPermissionKeyPromiseMap.Get(permissionKey, getter_AddRefs(promise)) || promise) { // Emit a useful diagnostic warning with the permissionKey for the process @@ -3335,17 +3335,17 @@ nsPermissionManager::WhenPermissionsAvailable(nsIPrincipal* aPrincipal, return NS_OK; } - nsTArray> promises; + nsTArray> promises; for (auto& key : GetAllKeysForPrincipal(aPrincipal)) { - RefPtr promise; + RefPtr promise; if (!mPermissionKeyPromiseMap.Get(key, getter_AddRefs(promise))) { // In this case we have found a permission which isn't available in the // content process and hasn't been requested yet. We need to create a new // promise, and send the request to the parent (if we have not already // done so). - promise = new GenericPromise::Private(__func__); + promise = new GenericNonExclusivePromise::Private(__func__); mPermissionKeyPromiseMap.Put( - key, RefPtr(promise).forget()); + key, RefPtr(promise).forget()); } if (promise) { @@ -3364,7 +3364,7 @@ nsPermissionManager::WhenPermissionsAvailable(nsIPrincipal* aPrincipal, auto* thread = SystemGroup::AbstractMainThreadFor(TaskCategory::Other); RefPtr runnable = aRunnable; - GenericPromise::All(thread, promises) + GenericNonExclusivePromise::All(thread, promises) ->Then( thread, __func__, [runnable]() { runnable->Run(); }, []() { diff --git a/extensions/permissions/nsPermissionManager.h b/extensions/permissions/nsPermissionManager.h index b8e9143a7069..ab90e0d8c7ff 100644 --- a/extensions/permissions/nsPermissionManager.h +++ b/extensions/permissions/nsPermissionManager.h @@ -529,7 +529,8 @@ class nsPermissionManager final : public nsIPermissionManager, */ bool PermissionAvailable(nsIPrincipal* aPrincipal, const nsACString& aType); - nsRefPtrHashtable + nsRefPtrHashtable mPermissionKeyPromiseMap; nsCOMPtr mDBConn;