Bug 1619592 - Replace EnsureStorageAndOriginIsInitialized with EnsurePersistentOriginIsInitialized and EnsureTemporaryOriginIsInitialized in dom/indexedDB; r=dom-workers-and-storage-reviewers,sg

Differential Revision: https://phabricator.services.mozilla.com/D97257
This commit is contained in:
Jan Varga 2020-11-19 15:41:47 +00:00
Родитель a959e7ff80
Коммит fc8f82ce8a
3 изменённых файлов: 30 добавлений и 9 удалений

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

@ -16301,9 +16301,22 @@ nsresult OpenDatabaseOp::DoDatabaseWork() {
QuotaManager* const quotaManager = QuotaManager::Get();
MOZ_ASSERT(quotaManager);
IDB_TRY_INSPECT(const auto& dbDirectory,
quotaManager->EnsureStorageAndOriginIsInitialized(
persistenceType, mQuotaInfo));
IDB_TRY(quotaManager->EnsureStorageIsInitialized());
IDB_TRY_INSPECT(
const auto& dbDirectory,
([persistenceType, &quotaManager, this]()
-> mozilla::Result<std::pair<nsCOMPtr<nsIFile>, bool>, nsresult> {
if (persistenceType == PERSISTENCE_TYPE_PERSISTENT) {
IDB_TRY_RETURN(
quotaManager->EnsurePersistentOriginIsInitialized(mQuotaInfo));
}
IDB_TRY(quotaManager->EnsureTemporaryStorageIsInitialized());
IDB_TRY_RETURN(quotaManager->EnsureTemporaryOriginIsInitialized(
persistenceType, mQuotaInfo));
}()
.map([](const auto& res) { return res.first; })));
IDB_TRY(
dbDirectory->Append(NS_LITERAL_STRING_FROM_CSTRING(IDB_DIRECTORY_NAME)));

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

@ -56,9 +56,12 @@ async function testSteps() {
info("Verifying initialization");
let request = initStorage();
await requestFinished(request);
createTestingEnvironment();
let request = initStorageAndChromeOrigin("persistent");
request = initPersistentOrigin(getSystemPrincipal());
await requestFinished(request);
let testingFiles = getTestingFiles();

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

@ -252,11 +252,12 @@ function setTimeout(fun, timeout) {
return timer;
}
function initStorageAndChromeOrigin(persistence) {
let principal = Cc["@mozilla.org/systemprincipal;1"].createInstance(
Ci.nsIPrincipal
);
return Services.qms.initStorageAndOrigin(principal, persistence, "idb");
function initStorage() {
return Services.qms.init();
}
function initPersistentOrigin(principal) {
return Services.qms.initializePersistentOrigin(principal);
}
function resetOrClearAllDatabases(callback, clear) {
@ -537,6 +538,10 @@ function resetPreprocessing() {
SpecialPowers.clearUserPref("dom.indexedDB.preprocessing");
}
function getSystemPrincipal() {
return Cc["@mozilla.org/systemprincipal;1"].createInstance(Ci.nsIPrincipal);
}
function getPrincipal(url) {
let uri = Services.io.newURI(url);
return Services.scriptSecurityManager.createContentPrincipal(uri, {});