Bug 1749504 - Make sure storage is initialized before clearing storage; r=dom-storage-reviewers,jstutte

LoadArchivedOrigins (called from QuotaClient::AboutToClearOrigins) currently
ensures that storage is initialized which eventually creates the archive from
webappsstore.sqlite. Conceptually, storage should be always initialized before
QuotaClient::AboutToClearOrigins is called.

Changes done in this patch:
- removed QuotaManager::EnsureStorageIsInitializedInternal call from
  LoadArchivedOrigins
- added QuotaManger::EnsureStorageIsInitializedInternal call to
  ClearStorageOp::DoDirectoryWork

Differential Revision: https://phabricator.services.mozilla.com/D186115
This commit is contained in:
Jan Varga 2023-09-14 04:04:29 +00:00
parent 264e43bd13
commit e048ae910a
2 changed files with 2 additions and 3 deletions

View File

@ -2846,9 +2846,6 @@ nsresult LoadArchivedOrigins() {
QuotaManager* quotaManager = QuotaManager::Get();
MOZ_ASSERT(quotaManager);
// Ensure that the webappsstore.sqlite is moved to new place.
QM_TRY(MOZ_TO_RESULT(quotaManager->EnsureStorageIsInitializedInternal()));
QM_TRY_INSPECT(const auto& connection, CreateArchiveStorageConnection(
quotaManager->GetStoragePath()));

View File

@ -1609,6 +1609,8 @@ nsresult ClearStorageOp::DoDirectoryWork(QuotaManager& aQuotaManager) {
AUTO_PROFILER_LABEL("ClearStorageOp::DoDirectoryWork", OTHER);
QM_TRY(MOZ_TO_RESULT(aQuotaManager.EnsureStorageIsInitializedInternal()));
DeleteFiles(aQuotaManager);
aQuotaManager.RemoveQuota();