// static bool IndexedDatabaseManager::TabContextMayAccessOrigin(const TabContext& aContext, const nsACString& aOrigin) { NS_ASSERTION(!aOrigin.IsEmpty(), "Empty origin!"); // If aContext is for a browser element, it's allowed only to access other // browser elements. But if aContext is not for a browser element, it may // access both browser and non-browser elements. nsAutoCString pattern; QuotaManager::GetOriginPatternStringMaybeIgnoreBrowser( aContext.OwnOrContainingAppId(), aContext.IsBrowserElement(), pattern); return PatternMatchesOrigin(pattern, aOrigin); }
void GroupInfo::LockedRemoveOriginInfosForPattern(const nsACString& aPattern) { AssertCurrentThreadOwnsQuotaMutex(); for (uint32_t index = mOriginInfos.Length(); index > 0; index--) { if (PatternMatchesOrigin(aPattern, mOriginInfos[index - 1]->mOrigin)) { 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); } } }