Bug 1888878 - Extract background actor creation into a separate function; r=dom-storage-reviewers,asuth

Differential Revision: https://phabricator.services.mozilla.com/D206228
This commit is contained in:
Jan Varga 2024-06-20 11:15:46 +00:00
Родитель 5cd42456f3
Коммит e284e670c3
2 изменённых файлов: 27 добавлений и 15 удалений

Просмотреть файл

@ -351,6 +351,30 @@ void IndexedDatabaseManager::Destroy() {
delete this;
}
nsresult IndexedDatabaseManager::EnsureBackgroundActor() {
if (mBackgroundActor) {
return NS_OK;
}
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;
}
}
return NS_OK;
}
// static
bool IndexedDatabaseManager::ResolveSandboxBinding(JSContext* aCx) {
MOZ_ASSERT(NS_IsMainThread());
@ -603,21 +627,7 @@ nsresult IndexedDatabaseManager::BlockAndGetFileReferences(
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;
}
QM_TRY(MOZ_TO_RESULT(EnsureBackgroundActor()));
if (!mBackgroundActor->SendGetFileReferences(
aPersistenceType, nsCString(aOrigin), nsString(aDatabaseName),

Просмотреть файл

@ -153,6 +153,8 @@ class IndexedDatabaseManager final : public nsIIndexedDatabaseManager {
void Destroy();
nsresult EnsureBackgroundActor();
static void LoggingModePrefChangedCallback(const char* aPrefName,
void* aClosure);