Bug 1429701 - Enable ESLint rule mozilla/use-services for dom/indexedDB. r=bevis

MozReview-Commit-ID: 9OgcN56ziip

--HG--
extra : rebase_source : ca4e88e8bd9bd20888659b095c62c30161279ed0
This commit is contained in:
Mark Banner 2018-01-10 17:25:52 +00:00
parent 73a4eebfe6
commit d2eba76015
18 changed files with 66 additions and 176 deletions

View File

@ -32,7 +32,6 @@ module.exports = {
"browser/extensions/shield-recipe-client/test/browser/head.js",
"browser/modules/offlineAppCache.jsm",
"devtools/**",
"dom/indexedDB/**",
"extensions/pref/**",
"mobile/android/**",
"testing/**",

View File

@ -4,7 +4,9 @@
const nsIQuotaManagerService = Components.interfaces.nsIQuotaManagerService;
var gURI = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService).newURI("http://localhost");
Components.utils.import("resource://gre/modules/Services.jsm");
var gURI = Services.io.newURI("http://localhost");
function onUsageCallback(request) {}
@ -13,20 +15,14 @@ function onLoad()
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, {});
let principal = Services.scriptSecurityManager.createCodebasePrincipal(gURI, {});
var quotaRequest = quotaManagerService.getUsageForPrincipal(principal,
onUsageCallback);
quotaRequest.cancel();
Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService)
.notifyObservers(window, "bug839193-loaded");
Services.obs.notifyObservers(window, "bug839193-loaded");
}
function onUnload()
{
Components.classes["@mozilla.org/observer-service;1"]
.getService(Components.interfaces.nsIObserverService)
.notifyObservers(window, "bug839193-unloaded");
Services.obs.notifyObservers(window, "bug839193-unloaded");
}

View File

@ -117,45 +117,25 @@ function dispatchEvent(eventName)
function setPermission(url, permission)
{
const nsIPermissionManager = Components.interfaces.nsIPermissionManager;
let uri = Services.io.newURI(url);
let principal = Services.scriptSecurityManager.createCodebasePrincipal(uri, {});
let uri = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI(url);
let ssm = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
.getService(Ci.nsIScriptSecurityManager);
let principal = ssm.createCodebasePrincipal(uri, {});
Components.classes["@mozilla.org/permissionmanager;1"]
.getService(nsIPermissionManager)
.addFromPrincipal(principal, permission,
nsIPermissionManager.ALLOW_ACTION);
Services.perms.addFromPrincipal(principal, permission,
Ci.nsIPermissionManager.ALLOW_ACTION);
}
function removePermission(url, permission)
{
let uri = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI(url);
let ssm = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
.getService(Ci.nsIScriptSecurityManager);
let principal = ssm.createCodebasePrincipal(uri, {});
let uri = Services.io.newURI(url);
let principal = Services.scriptSecurityManager.createCodebasePrincipal(uri, {});
Components.classes["@mozilla.org/permissionmanager;1"]
.getService(Components.interfaces.nsIPermissionManager)
.removeFromPrincipal(principal, permission);
Services.perms.removeFromPrincipal(principal, permission);
}
function getPermission(url, permission)
{
let uri = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI(url);
let ssm = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
.getService(Ci.nsIScriptSecurityManager);
let principal = ssm.createCodebasePrincipal(uri, {});
let uri = Services.io.newURI(url);
let principal = Services.scriptSecurityManager.createCodebasePrincipal(uri, {});
return Components.classes["@mozilla.org/permissionmanager;1"]
.getService(Components.interfaces.nsIPermissionManager)
.testPermissionFromPrincipal(principal, permission);
return Services.perms.testPermissionFromPrincipal(principal, permission);
}

View File

@ -23,12 +23,7 @@ if ((!c.value || c.writable) && typeof SpecialPowers === "object") {
function executeSoon(aFun)
{
let comp = SpecialPowers.wrap(Components);
let tm = comp.classes["@mozilla.org/thread-manager;1"]
.getService(comp.interfaces.nsIThreadManager);
tm.dispatchToMainThread({
SpecialPowers.Services.tm.dispatchToMainThread({
run() {
aFun();
}

View File

@ -35,10 +35,7 @@
let fileHandle2;
let comp = SpecialPowers.wrap(SpecialPowers.Components);
let thread = comp.classes["@mozilla.org/thread-manager;1"]
.getService(comp.interfaces.nsIThreadManager)
.currentThread;
let thread = SpecialPowers.Services.tm.currentThread;
let eventHasRun;

View File

@ -54,10 +54,7 @@
is(sawError, true, "Saw getMetadata() error");
// Make sure the success event isn't queued somehow.
let comp = SpecialPowers.wrap(SpecialPowers.Components);
var thread = comp.classes["@mozilla.org/thread-manager;1"]
.getService(comp.interfaces.nsIThreadManager)
.currentThread;
var thread = SpecialPowers.Services.tm.currentThread;
while (thread.hasPendingEvents()) {
thread.processNextEvent(false);
}

View File

@ -10,15 +10,9 @@ function* testSteps()
const url = "ftp://ftp.example.com";
const name = "test_bad_origin_directory.js";
let ios = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
.getService(SpecialPowers.Ci.nsIIOService);
let uri = Services.io.newURI(url);
let uri = ios.newURI(url);
let ssm = SpecialPowers.Cc["@mozilla.org/scriptsecuritymanager;1"]
.getService(SpecialPowers.Ci.nsIScriptSecurityManager);
let principal = ssm.createCodebasePrincipal(uri, {});
let principal = Services.scriptSecurityManager.createCodebasePrincipal(uri, {});
info("Opening database");

View File

@ -7,12 +7,9 @@ var testGenerator = testSteps();
function* testSteps()
{
let ioService =
Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
function getSpec(filename) {
let file = do_get_file(filename);
let uri = ioService.newFileURI(file);
let uri = Services.io.newFileURI(file);
return uri.spec;
}

View File

@ -8,24 +8,16 @@ var testGenerator = testSteps();
function* testSteps()
{
let uri = Cc["@mozilla.org/network/io-service;1"].
getService(Ci.nsIIOService).
newURI("https://www.example.com");
let ssm = Cc["@mozilla.org/scriptsecuritymanager;1"]
.getService(Ci.nsIScriptSecurityManager);
let principal = ssm.createCodebasePrincipal(uri, {});
let uri = Services.io.newURI("https://www.example.com");
let principal = Services.scriptSecurityManager.createCodebasePrincipal(uri, {});
info("Setting permissions");
let permMgr =
Cc["@mozilla.org/permissionmanager;1"].getService(Ci.nsIPermissionManager);
permMgr.add(uri, "indexedDB", Ci.nsIPermissionManager.ALLOW_ACTION);
Services.perms.add(uri, "indexedDB", Ci.nsIPermissionManager.ALLOW_ACTION);
info("Setting idle preferences to prevent real 'idle-daily' notification");
let prefs =
Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch);
prefs.setIntPref("idle.lastDailyNotification", (Date.now() / 1000) - 10);
Services.prefs.setIntPref("idle.lastDailyNotification", (Date.now() / 1000) - 10);
info("Activating real idle service");
@ -33,9 +25,6 @@ function* testSteps()
info("Creating databases");
let quotaManagerService = Cc["@mozilla.org/dom/quota-manager-service;1"].
getService(Ci.nsIQuotaManagerService);
// Keep at least one database open.
let req = indexedDB.open("foo-a", 1);
req.onerror = errorHandler;
@ -118,7 +107,7 @@ function* testSteps()
let usageBeforeMaintenance;
quotaManagerService.getUsageForPrincipal(principal, (request) => {
Services.qms.getUsageForPrincipal(principal, (request) => {
let usage = request.result.usage;
ok(usage > 0, "Usage is non-zero");
usageBeforeMaintenance = usage;
@ -128,7 +117,7 @@ function* testSteps()
info("Sending fake 'idle-daily' notification to QuotaManager");
let observer = quotaManagerService.QueryInterface(Ci.nsIObserver);
let observer = Services.qms.QueryInterface(Ci.nsIObserver);
observer.observe(null, "idle-daily", "");
info("Opening database while maintenance is performed");
@ -152,7 +141,7 @@ function* testSteps()
let usageAfterMaintenance;
quotaManagerService.getUsageForPrincipal(principal, (request) => {
Services.qms.getUsageForPrincipal(principal, (request) => {
let usage = request.result.usage;
ok(usage > 0, "Usage is non-zero");
usageAfterMaintenance = usage;

View File

@ -216,17 +216,12 @@ function* testSteps()
dbOptions: { version: 1, storage: "default" } }
];
let ios = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
.getService(SpecialPowers.Ci.nsIIOService);
let ssm = SpecialPowers.Cc["@mozilla.org/scriptsecuritymanager;1"]
.getService(SpecialPowers.Ci.nsIScriptSecurityManager);
function openDatabase(params) {
let request;
if ("url" in params) {
let uri = ios.newURI(params.url);
let principal = ssm.createCodebasePrincipal(uri, params.attrs || {});
let uri = Services.io.newURI(params.url);
let principal = Services.scriptSecurityManager
.createCodebasePrincipal(uri, params.attrs || {});
request = indexedDB.openForPrincipal(principal, params.dbName,
params.dbOptions);
} else {

View File

@ -57,17 +57,12 @@ function* testSteps()
dbOptions: { version: 1, storage: "default" } }
];
let ios = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
.getService(SpecialPowers.Ci.nsIIOService);
let ssm = SpecialPowers.Cc["@mozilla.org/scriptsecuritymanager;1"]
.getService(SpecialPowers.Ci.nsIScriptSecurityManager);
function openDatabase(params) {
let request;
if ("url" in params) {
let uri = ios.newURI(params.url);
let principal = ssm.createCodebasePrincipal(uri, {});
let uri = Services.io.newURI(params.url);
let principal = Services.scriptSecurityManager
.createCodebasePrincipal(uri, {});
request = indexedDB.openForPrincipal(principal, params.dbName,
params.dbOptions);
} else {

View File

@ -12,15 +12,10 @@ function* testSteps()
const dbName = "dbC";
const dbVersion = 1;
let ios = SpecialPowers.Cc["@mozilla.org/network/io-service;1"]
.getService(SpecialPowers.Ci.nsIIOService);
let ssm = SpecialPowers.Cc["@mozilla.org/scriptsecuritymanager;1"]
.getService(SpecialPowers.Ci.nsIScriptSecurityManager);
function openDatabase() {
let uri = ios.newURI(url);
let principal = ssm.createCodebasePrincipal(uri, {});
let uri = Services.io.newURI(url);
let principal = Services.scriptSecurityManager
.createCodebasePrincipal(uri, {});
let request = indexedDB.openForPrincipal(principal, dbName, dbVersion);
return request;
}
@ -49,10 +44,7 @@ function* testSteps()
is(event.type, "success", "Correct event type");
let directoryService = Cc["@mozilla.org/file/directory_service;1"]
.getService(Ci.nsIProperties);
let profileDir = directoryService.get("ProfD", Ci.nsIFile);
let profileDir = Services.dirsvc.get("ProfD", Ci.nsIFile);
let dir = profileDir.clone();
dir.append("indexedDB");

View File

@ -45,12 +45,8 @@ function* testSteps()
is(event.target.result, data.key, "Got correct key");
let uri = Components.classes["@mozilla.org/network/io-service;1"]
.getService(Components.interfaces.nsIIOService)
.newURI("http://appdata.example.com");
let ssm = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
.getService(Components.interfaces.nsIScriptSecurityManager);
let principal = ssm.createCodebasePrincipal(uri, {});
let uri = Services.io.newURI("http://appdata.example.com");
let principal = Services.scriptSecurityManager.createCodebasePrincipal(uri, {});
request = indexedDB.openForPrincipal(principal, name, 1);
request.onerror = errorHandler;

View File

@ -31,8 +31,7 @@ function* testSteps()
is(objectStore.name, objectStoreName, "Bad name");
is(objectStore.keyPath, "foo", "Bad keyPath");
if (objectStore.indexNames.length, 0, "Bad indexNames");
is(objectStore.indexNames.length, 0, "Bad indexNames");
finishTest();
}

View File

@ -45,12 +45,8 @@ function* testSteps()
is(sawError, true, "Saw get() error");
if (this.window) {
// Make sure the success event isn't queued somehow.
let comp = SpecialPowers.wrap(Components);
let tm = comp.classes["@mozilla.org/thread-manager;1"]
.getService(comp.interfaces.nsIThreadManager);
tm.spinEventLoopUntilEmpty();
SpecialPowers.Services.tm.spinEventLoopUntilEmpty();
}
finishTest();
}

View File

@ -25,12 +25,10 @@ function* testSteps()
let transaction2;
let comp = this.window ? SpecialPowers.wrap(Components) : Components;
let tm = comp.classes["@mozilla.org/thread-manager;1"]
.getService(comp.interfaces.nsIThreadManager);
let eventHasRun;
let tm = SpecialPowers.Services ? SpecialPowers.Services.tm : Services.tm;
tm.dispatchToMainThread(function() {
eventHasRun = true;

View File

@ -6,6 +6,8 @@
function run_test() {
const { "classes": Cc, "interfaces": Ci, "utils": Cu } = Components;
Cu.import("resource://gre/modules/Services.jsm");
const INDEXEDDB_HEAD_FILE = "xpcshell-head-parent-process.js";
const INDEXEDDB_PREF_EXPERIMENTAL = "dom.indexedDB.experimental";
@ -20,10 +22,7 @@ function run_test() {
_HEAD_FILES.push(do_get_file(INDEXEDDB_HEAD_FILE).path.replace(/\\/g, "/"));
let prefs =
Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService)
.getBranch(null);
prefs.setBoolPref(INDEXEDDB_PREF_EXPERIMENTAL, true);
Services.prefs.setBoolPref(INDEXEDDB_PREF_EXPERIMENTAL, true);
run_test_in_child(thisTest);
}

View File

@ -8,6 +8,8 @@
var { "classes": Cc, "interfaces": Ci, "utils": Cu } = Components;
Cu.import("resource://gre/modules/Services.jsm");
if (!("self" in this)) {
this.self = this;
}
@ -236,13 +238,10 @@ function resetOrClearAllDatabases(callback, clear) {
throw new Error("clearAllDatabases not implemented for child processes!");
}
let quotaManagerService = Cc["@mozilla.org/dom/quota-manager-service;1"]
.getService(Ci.nsIQuotaManagerService);
const quotaPref = "dom.quotaManager.testing";
let oldPrefValue;
if (SpecialPowers._getPrefs().prefHasUserValue(quotaPref)) {
if (Services.prefs.prefHasUserValue(quotaPref)) {
oldPrefValue = SpecialPowers.getBoolPref(quotaPref);
}
@ -252,9 +251,9 @@ function resetOrClearAllDatabases(callback, clear) {
try {
if (clear) {
request = quotaManagerService.clear();
request = Services.qms.clear();
} else {
request = quotaManagerService.reset();
request = Services.qms.reset();
}
} catch (e) {
if (oldPrefValue !== undefined) {
@ -278,12 +277,9 @@ function clearAllDatabases(callback) {
function installPackagedProfile(packageName)
{
let directoryService = Cc["@mozilla.org/file/directory_service;1"]
.getService(Ci.nsIProperties);
let profileDir = Services.dirsvc.get("ProfD", Ci.nsIFile);
let profileDir = directoryService.get("ProfD", Ci.nsIFile);
let currentDir = directoryService.get("CurWorkD", Ci.nsIFile);
let currentDir = Services.dirsvc.get("CurWorkD", Ci.nsIFile);
let packageFile = currentDir.clone();
packageFile.append(packageName + ".zip");
@ -336,10 +332,7 @@ function installPackagedProfile(packageName)
function getChromeFilesDir()
{
let dirService = Cc["@mozilla.org/file/directory_service;1"]
.getService(Ci.nsIProperties);
let profileDir = dirService.get("ProfD", Ci.nsIFile);
let profileDir = Services.dirsvc.get("ProfD", Ci.nsIFile);
let idbDir = profileDir.clone();
idbDir.append("storage");
@ -516,11 +509,9 @@ function grabFileUsageAndContinueHandler(request)
function getCurrentUsage(usageHandler)
{
let qms = Cc["@mozilla.org/dom/quota-manager-service;1"]
.getService(Ci.nsIQuotaManagerService);
let principal = Cc["@mozilla.org/systemprincipal;1"]
.createInstance(Ci.nsIPrincipal);
qms.getUsageForPrincipal(principal, usageHandler);
Services.qms.getUsageForPrincipal(principal, usageHandler);
}
function setTemporaryStorageLimit(limit)
@ -549,24 +540,16 @@ function setMaxSerializedMsgSize(aSize)
function getPrincipal(url)
{
let uri = Cc["@mozilla.org/network/io-service;1"]
.getService(Ci.nsIIOService)
.newURI(url);
let ssm = Cc["@mozilla.org/scriptsecuritymanager;1"]
.getService(Ci.nsIScriptSecurityManager);
return ssm.createCodebasePrincipal(uri, {});
let uri = Services.io.newURI(url);
return Services.scriptSecurityManager.createCodebasePrincipal(uri, {});
}
var SpecialPowers = {
isMainProcess() {
return Components.classes["@mozilla.org/xre/app-info;1"]
.getService(Components.interfaces.nsIXULRuntime)
.processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT;
return Services.appinfo.processType == Ci.nsIXULRuntime.PROCESS_TYPE_DEFAULT;
},
notifyObservers(subject, topic, data) {
var obsvc = Cc["@mozilla.org/observer-service;1"]
.getService(Ci.nsIObserverService);
obsvc.notifyObservers(subject, topic, data);
Services.obs.notifyObservers(subject, topic, data);
},
notifyObserversInParentProcess(subject, topic, data) {
if (subject) {
@ -575,16 +558,16 @@ var SpecialPowers = {
return this.notifyObservers(subject, topic, data);
},
getBoolPref(prefName) {
return this._getPrefs().getBoolPref(prefName);
return Services.prefs.getBoolPref(prefName);
},
setBoolPref(prefName, value) {
this._getPrefs().setBoolPref(prefName, value);
Services.prefs.setBoolPref(prefName, value);
},
setIntPref(prefName, value) {
this._getPrefs().setIntPref(prefName, value);
Services.prefs.setIntPref(prefName, value);
},
clearUserPref(prefName) {
this._getPrefs().clearUserPref(prefName);
Services.prefs.clearUserPref(prefName);
},
// Copied (and slightly adjusted) from specialpowersAPI.js
exactGC(callback) {
@ -607,12 +590,6 @@ var SpecialPowers = {
doPreciseGCandCC();
},
_getPrefs() {
var prefService =
Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefService);
return prefService.getBranch(null);
},
get Cc() {
return Cc;
},
@ -627,7 +604,6 @@ var SpecialPowers = {
// Based on SpecialPowersObserver.prototype.receiveMessage
createFiles(requests, callback) {
let dirSvc = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties);
let filePaths = [];
if (!this._createdFiles) {
this._createdFiles = [];
@ -636,7 +612,7 @@ var SpecialPowers = {
let promises = [];
requests.forEach(function(request) {
const filePerms = 0o666;
let testFile = dirSvc.get("ProfD", Ci.nsIFile);
let testFile = Services.dirsvc.get("ProfD", Ci.nsIFile);
if (request.name) {
testFile.append(request.name);
} else {