зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
5cd42456f3
Коммит
e284e670c3
|
@ -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);
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче