nsresult IndexedDatabaseManager::FlushPendingFileDeletions() { MOZ_ASSERT(NS_IsMainThread()); if (NS_WARN_IF(!InTestingMode())) { return NS_ERROR_UNEXPECTED; } if (IsMainProcess()) { nsresult rv = mDeleteTimer->Cancel(); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } rv = Notify(mDeleteTimer); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } } else { PBackgroundChild* bgActor = BackgroundChild::GetForCurrentThread(); if (NS_WARN_IF(!bgActor)) { return NS_ERROR_FAILURE; } if (!bgActor->SendFlushPendingFileDeletions()) { return NS_ERROR_FAILURE; } } return NS_OK; }
nsresult IndexedDatabaseManager::FlushPendingFileDeletions() { MOZ_ASSERT(NS_IsMainThread()); if (NS_WARN_IF(!InTestingMode())) { return NS_ERROR_UNEXPECTED; } if (IsMainProcess()) { nsresult rv = mDeleteTimer->Cancel(); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } rv = Notify(mDeleteTimer); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } } else { ContentChild* contentChild = ContentChild::GetSingleton(); if (NS_WARN_IF(!contentChild)) { return NS_ERROR_FAILURE; } if (!contentChild->SendFlushPendingFileDeletions()) { return NS_ERROR_FAILURE; } } return NS_OK; }
nsresult IndexedDatabaseManager::BlockAndGetFileReferences( PersistenceType aPersistenceType, const nsACString& aOrigin, const nsAString& aDatabaseName, int64_t aFileId, int32_t* aRefCnt, int32_t* aDBRefCnt, int32_t* aSliceRefCnt, bool* aResult) { MOZ_ASSERT(NS_IsMainThread()); if (NS_WARN_IF(!InTestingMode())) { return NS_ERROR_UNEXPECTED; } if (IsMainProcess()) { nsRefPtr<GetFileReferencesHelper> helper = new GetFileReferencesHelper(aPersistenceType, aOrigin, aDatabaseName, aFileId); nsresult rv = helper->DispatchAndReturnFileReferences(aRefCnt, aDBRefCnt, aSliceRefCnt, aResult); if (NS_WARN_IF(NS_FAILED(rv))) { return rv; } } else { ContentChild* contentChild = ContentChild::GetSingleton(); if (NS_WARN_IF(!contentChild)) { return NS_ERROR_FAILURE; } if (!contentChild->SendGetFileReferences(aPersistenceType, nsCString(aOrigin), nsString(aDatabaseName), aFileId, aRefCnt, aDBRefCnt, aSliceRefCnt, aResult)) { return NS_ERROR_FAILURE; } } return NS_OK; }
nsresult IndexedDatabaseManager::BlockAndGetFileReferences( PersistenceType aPersistenceType, const nsACString& aOrigin, const nsAString& aDatabaseName, int64_t aFileId, int32_t* aRefCnt, int32_t* aDBRefCnt, int32_t* aSliceRefCnt, bool* aResult) { MOZ_ASSERT(NS_IsMainThread()); if (NS_WARN_IF(!InTestingMode())) { return NS_ERROR_UNEXPECTED; } if (!mBackgroundActor) { PBackgroundChild* bgActor = BackgroundChild::GetForCurrentThread(); if (NS_WARN_IF(!bgActor)) { return NS_ERROR_FAILURE; } BackgroundUtilsChild* actor = new BackgroundUtilsChild(this); mBackgroundActor = static_cast<BackgroundUtilsChild*>( bgActor->SendPBackgroundIndexedDBUtilsConstructor(actor)); } if (NS_WARN_IF(!mBackgroundActor)) { return NS_ERROR_FAILURE; } if (!mBackgroundActor->SendGetFileReferences(aPersistenceType, nsCString(aOrigin), nsString(aDatabaseName), aFileId, aRefCnt, aDBRefCnt, aSliceRefCnt, aResult)) { return NS_ERROR_FAILURE; } return NS_OK; }