already_AddRefed<OriginInfo> GroupInfo::LockedGetOriginInfo(const nsACString& aOrigin) { AssertCurrentThreadOwnsQuotaMutex(); for (uint32_t index = 0; index < mOriginInfos.Length(); index++) { nsRefPtr<OriginInfo>& originInfo = mOriginInfos[index]; if (originInfo->mOrigin == aOrigin) { nsRefPtr<OriginInfo> result = originInfo; return result.forget(); } } return nullptr; }
void OriginInfo::LockedDecreaseUsage(int64_t aSize) { AssertCurrentThreadOwnsQuotaMutex(); mUsage -= aSize; mGroupInfo->mUsage -= aSize; if (mGroupInfo->IsForTemporaryStorage()) { QuotaManager* quotaManager = QuotaManager::Get(); NS_ASSERTION(quotaManager, "Shouldn't be null!"); quotaManager->mTemporaryStorageUsage -= aSize; } }
void OriginInfo::LockedDecreaseUsage(int64_t aSize) { AssertCurrentThreadOwnsQuotaMutex(); AssertNoUnderflow(mUsage, aSize); mUsage -= aSize; AssertNoUnderflow(mGroupInfo->mUsage, aSize); mGroupInfo->mUsage -= aSize; QuotaManager* quotaManager = QuotaManager::Get(); MOZ_ASSERT(quotaManager); AssertNoUnderflow(quotaManager->mTemporaryStorageUsage, aSize); quotaManager->mTemporaryStorageUsage -= aSize; }
void GroupInfo::LockedRemoveOriginInfos() { AssertCurrentThreadOwnsQuotaMutex(); for (uint32_t index = mOriginInfos.Length(); index > 0; index--) { mUsage -= mOriginInfos[index - 1]->mUsage; if (IsForTemporaryStorage()) { QuotaManager* quotaManager = QuotaManager::Get(); NS_ASSERTION(quotaManager, "Shouldn't be null!"); quotaManager->mTemporaryStorageUsage -= mOriginInfos[index - 1]->mUsage; } mOriginInfos.RemoveElementAt(index - 1); } }
void GroupInfo::LockedAddOriginInfo(OriginInfo* aOriginInfo) { AssertCurrentThreadOwnsQuotaMutex(); NS_ASSERTION(!mOriginInfos.Contains(aOriginInfo), "Replacing an existing entry!"); mOriginInfos.AppendElement(aOriginInfo); mUsage += aOriginInfo->mUsage; if (IsForTemporaryStorage()) { QuotaManager* quotaManager = QuotaManager::Get(); NS_ASSERTION(quotaManager, "Shouldn't be null!"); quotaManager->mTemporaryStorageUsage += aOriginInfo->mUsage; } }
void GroupInfo::LockedAddOriginInfo(OriginInfo* aOriginInfo) { AssertCurrentThreadOwnsQuotaMutex(); NS_ASSERTION(!mOriginInfos.Contains(aOriginInfo), "Replacing an existing entry!"); mOriginInfos.AppendElement(aOriginInfo); AssertNoOverflow(mUsage, aOriginInfo->mUsage); mUsage += aOriginInfo->mUsage; QuotaManager* quotaManager = QuotaManager::Get(); MOZ_ASSERT(quotaManager); AssertNoOverflow(quotaManager->mTemporaryStorageUsage, aOriginInfo->mUsage); quotaManager->mTemporaryStorageUsage += aOriginInfo->mUsage; }
void GroupInfo::LockedRemoveOriginInfos() { AssertCurrentThreadOwnsQuotaMutex(); QuotaManager* quotaManager = QuotaManager::Get(); MOZ_ASSERT(quotaManager); for (uint32_t index = mOriginInfos.Length(); index > 0; index--) { OriginInfo* originInfo = mOriginInfos[index - 1]; AssertNoUnderflow(mUsage, originInfo->mUsage); mUsage -= originInfo->mUsage; AssertNoUnderflow(quotaManager->mTemporaryStorageUsage, originInfo->mUsage); quotaManager->mTemporaryStorageUsage -= originInfo->mUsage; mOriginInfos.RemoveElementAt(index - 1); } }
void GroupInfo::LockedRemoveOriginInfo(const nsACString& aOrigin) { AssertCurrentThreadOwnsQuotaMutex(); for (uint32_t index = 0; index < mOriginInfos.Length(); index++) { if (mOriginInfos[index]->mOrigin == aOrigin) { mUsage -= mOriginInfos[index]->mUsage; if (IsForTemporaryStorage()) { QuotaManager* quotaManager = QuotaManager::Get(); NS_ASSERTION(quotaManager, "Shouldn't be null!"); quotaManager->mTemporaryStorageUsage -= mOriginInfos[index]->mUsage; } mOriginInfos.RemoveElementAt(index); return; } } }
void GroupInfo::LockedRemoveOriginInfo(const nsACString& aOrigin) { AssertCurrentThreadOwnsQuotaMutex(); for (uint32_t index = 0; index < mOriginInfos.Length(); index++) { if (mOriginInfos[index]->mOrigin == aOrigin) { AssertNoUnderflow(mUsage, mOriginInfos[index]->mUsage); mUsage -= mOriginInfos[index]->mUsage; QuotaManager* quotaManager = QuotaManager::Get(); MOZ_ASSERT(quotaManager); AssertNoUnderflow(quotaManager->mTemporaryStorageUsage, mOriginInfos[index]->mUsage); quotaManager->mTemporaryStorageUsage -= mOriginInfos[index]->mUsage; mOriginInfos.RemoveElementAt(index); return; } } }