Bug 961049 - Part 7: QuotaManager on PBackground indexedDB changes; r=baku

This commit is contained in:
Jan Varga 2015-11-22 10:44:24 +01:00
parent 945dffa14f
commit e52ccb9b1e
6 changed files with 306 additions and 568 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,20 +2,22 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
const nsIQuotaManager = Components.interfaces.nsIQuotaManager;
const nsIQuotaManagerService = Components.interfaces.nsIQuotaManagerService;
var gURI = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService).newURI("http://localhost", null, null);
function onUsageCallback(principal, usage, fileUsage) {}
function onUsageCallback(request) {}
function onLoad()
{
var quotaManager = Components.classes["@mozilla.org/dom/quota/manager;1"]
.getService(nsIQuotaManager);
var quotaManagerService =
Components.classes["@mozilla.org/dom/quota-manager-service;1"]
.getService(nsIQuotaManagerService);
let principal = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
.getService(Components.interfaces.nsIScriptSecurityManager)
.createCodebasePrincipal(gURI, {});
var quotaRequest = quotaManager.getUsageForPrincipal(principal, onUsageCallback);
var quotaRequest = quotaManagerService.getUsageForPrincipal(principal,
onUsageCallback);
quotaRequest.cancel();
Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService)

View File

@ -182,14 +182,17 @@ function verifyMutableFile(mutableFile1, file2)
});
}
function grabFileUsageAndContinueHandler(usage, fileUsage)
function grabFileUsageAndContinueHandler(request)
{
testGenerator.send(fileUsage);
testGenerator.send(request.fileUsage);
}
function getUsage(usageHandler)
{
SpecialPowers.getStorageUsageForDoc(SpecialPowers.wrap(document), usageHandler);
let qms = SpecialPowers.Services.qms;
let principal = SpecialPowers.wrap(document).nodePrincipal;
let cb = SpecialPowers.wrapCallback(usageHandler);
qms.getUsageForPrincipal(principal, cb);
}
function getFileId(file)

View File

@ -34,7 +34,11 @@ function executeSoon(aFun)
}
function clearAllDatabases(callback) {
SpecialPowers.clearStorageForDoc(SpecialPowers.wrap(document), callback);
let qms = SpecialPowers.Services.qms;
let principal = SpecialPowers.wrap(document).nodePrincipal;
let request = qms.clearStoragesForPrincipal(principal);
let cb = SpecialPowers.wrapCallback(callback);
request.callback = cb;
}
var testHarnessGenerator = testHarnessSteps();

View File

@ -32,8 +32,8 @@ function testSteps()
info("Creating databases");
let quotaManager =
Cc["@mozilla.org/dom/quota/manager;1"].getService(Ci.nsIQuotaManager);
let quotaManagerService = Cc["@mozilla.org/dom/quota-manager-service;1"].
getService(Ci.nsIQuotaManagerService);
let dbCount = 0;
@ -92,16 +92,16 @@ function testSteps()
let usageBeforeMaintenance;
quotaManager.getUsageForPrincipal(principal, (principal, usage) => {
ok(usage > 0, "Usage is non-zero");
usageBeforeMaintenance = usage;
quotaManagerService.getUsageForPrincipal(principal, (request) => {
ok(request.usage > 0, "Usage is non-zero");
usageBeforeMaintenance = request.usage;
continueToNextStep();
});
yield undefined;
info("Sending fake 'idle-daily' notification to QuotaManager");
let observer = quotaManager.QueryInterface(Ci.nsIObserver);
let observer = quotaManagerService.QueryInterface(Ci.nsIObserver);
observer.observe(null, "idle-daily", "");
info("Waiting for maintenance to start");
@ -118,9 +118,9 @@ function testSteps()
let usageAfterMaintenance;
quotaManager.getUsageForPrincipal(principal, (principal, usage) => {
ok(usage > 0, "Usage is non-zero");
usageAfterMaintenance = usage;
quotaManagerService.getUsageForPrincipal(principal, (request) => {
ok(request.usage > 0, "Usage is non-zero");
usageAfterMaintenance = request.usage;
continueToNextStep();
});
yield undefined;

View File

@ -231,8 +231,8 @@ function resetOrClearAllDatabases(callback, clear) {
throw new Error("clearAllDatabases not implemented for child processes!");
}
let quotaManager = Cc["@mozilla.org/dom/quota/manager;1"]
.getService(Ci.nsIQuotaManager);
let quotaManagerService = Cc["@mozilla.org/dom/quota-manager-service;1"]
.getService(Ci.nsIQuotaManagerService);
const quotaPref = "dom.quotaManager.testing";
@ -243,11 +243,13 @@ function resetOrClearAllDatabases(callback, clear) {
SpecialPowers.setBoolPref(quotaPref, true);
let request;
try {
if (clear) {
quotaManager.clear();
request = quotaManagerService.clear();
} else {
quotaManager.reset();
request = quotaManagerService.reset();
}
} catch(e) {
if (oldPrefValue !== undefined) {
@ -258,15 +260,7 @@ function resetOrClearAllDatabases(callback, clear) {
throw e;
}
let uri = Cc["@mozilla.org/network/io-service;1"]
.getService(Ci.nsIIOService)
.newURI("http://foo.com", null, null);
let principal = Cc["@mozilla.org/scriptsecuritymanager;1"]
.getService(Ci.nsIScriptSecurityManager)
.createCodebasePrincipal(uri, {});
quotaManager.getUsageForPrincipal(principal, function(principal, usage, fileUsage) {
callback();
});
request.callback = callback;
}
function resetAllDatabases(callback) {