mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-09 11:25:00 +00:00
Bug 961049 - Part 7: QuotaManager on PBackground indexedDB changes; r=baku
This commit is contained in:
parent
945dffa14f
commit
e52ccb9b1e
File diff suppressed because it is too large
Load Diff
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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();
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user