already_AddRefed<Promise> CacheStorage::Has(const nsAString& aKey, ErrorResult& aRv) { NS_ASSERT_OWNINGTHREAD(CacheStorage); if (!HasStorageAccess()) { aRv.Throw(NS_ERROR_DOM_SECURITY_ERR); return nullptr; } if (NS_WARN_IF(NS_FAILED(mStatus))) { aRv.Throw(mStatus); return nullptr; } RefPtr<Promise> promise = Promise::Create(mGlobal, aRv); if (NS_WARN_IF(!promise)) { return nullptr; } nsAutoPtr<Entry> entry(new Entry()); entry->mPromise = promise; entry->mArgs = StorageHasArgs(nsString(aKey)); RunRequest(std::move(entry)); return promise.forget(); }
already_AddRefed<Promise> CacheStorage::Has(const nsAString& aKey, ErrorResult& aRv) { NS_ASSERT_OWNINGTHREAD(CacheStorage); if (NS_WARN_IF(mFailedActor)) { aRv.Throw(NS_ERROR_UNEXPECTED); return nullptr; } nsRefPtr<Promise> promise = Promise::Create(mGlobal, aRv); if (NS_WARN_IF(!promise)) { return nullptr; } nsAutoPtr<Entry> entry(new Entry()); entry->mPromise = promise; entry->mArgs = StorageHasArgs(nsString(aKey)); mPendingRequests.AppendElement(entry.forget()); MaybeRunPendingRequests(); return promise.forget(); }