Bug 1265207 - Enable ESLint "var-only-at-top-level" rule for PSM tests. r=jjones

|let| is generally preferred over |var| in PSM JS.

MozReview-Commit-ID: 7SJWQSKFxI4

--HG--
extra : rebase_source : 387c6259ffa2cb0585ff366edc568ccc39bfd902
This commit is contained in:
Cykesiopka 2016-05-09 18:04:14 -07:00
Родитель cb72513c65
Коммит ebd2e17c94
18 изменённых файлов: 115 добавлений и 122 удалений

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

@ -0,0 +1,6 @@
{
"rules": {
// Disallow non-top level |var| declarations.
"mozilla/var-only-at-top-level": 2
}
}

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

@ -145,29 +145,26 @@ function isSecurityState(expectedState, message, test)
test = ok;
}
// Quit nasty but working :)
var ui = SpecialPowers.wrap(window)
let ui = SpecialPowers.wrap(window)
.QueryInterface(SpecialPowers.Ci.nsIInterfaceRequestor)
.getInterface(SpecialPowers.Ci.nsIWebNavigation)
.QueryInterface(SpecialPowers.Ci.nsIDocShell)
.securityUI;
var isInsecure = !ui ||
let isInsecure = !ui ||
(ui.state & SpecialPowers.Ci.nsIWebProgressListener.STATE_IS_INSECURE);
var isBroken = ui &&
let isBroken = ui &&
(ui.state & SpecialPowers.Ci.nsIWebProgressListener.STATE_IS_BROKEN);
var isEV = ui &&
let isEV = ui &&
(ui.state & SpecialPowers.Ci.nsIWebProgressListener.STATE_IDENTITY_EV_TOPLEVEL);
var gotState;
let gotState = "secure";
if (isInsecure) {
gotState = "insecure";
} else if (isBroken) {
gotState = "broken";
} else if (isEV) {
gotState = "EV";
} else {
gotState = "secure";
}
test(gotState == expectedState, (message || "") + ", " + "expected " + expectedState + " got " + gotState);
@ -192,9 +189,8 @@ function isSecurityState(expectedState, message, test)
function waitForSecurityState(expectedState, callback)
{
var roundsLeft = 200; // Wait for 20 seconds (=200*100ms)
var interval =
window.setInterval(function() {
let roundsLeft = 200; // Wait for 20 seconds (=200*100ms)
let interval = window.setInterval(() => {
isSecurityState(expectedState, "", isok => {
if (isok) {
roundsLeft = 0;

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

@ -16,7 +16,7 @@
{
isSecurityState("secure");
window.setTimeout(function () {
var newElement = document.createElement("script");
let newElement = document.createElement("script");
newElement.src = "http://example.org/tests/security/manager/ssl/tests/" +
"mochitest/mixedcontent/bug329869.js";
document.body.appendChild(newElement);

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

@ -18,11 +18,12 @@
bypassNavigationTest = true;
function runTest() {
var script = SpecialPowers.loadChromeScript(function() {
let script = SpecialPowers.loadChromeScript(function() {
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
// Force download to be w/o user assistance for our testing mime type
const mimeSvc = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
var handlerInfo = mimeSvc.getFromTypeAndExtension("application/x-auto-download", "auto");
let handlerInfo =
mimeSvc.getFromTypeAndExtension("application/x-auto-download", "auto");
handlerInfo.preferredAction = Ci.nsIHandlerInfo.saveToDisk;
handlerInfo.alwaysAskBeforeHandling = false;
handlerInfo.preferredApplicationHandler = null;
@ -31,22 +32,23 @@
.getService(Ci.nsIHandlerService);
handlerSvc.store(handlerInfo);
var dirProvider = Cc["@mozilla.org/file/directory_service;1"]
let dirProvider = Cc["@mozilla.org/file/directory_service;1"]
.getService(Ci.nsIProperties);
var profileDir = dirProvider.get("ProfDS", Ci.nsIFile);
let profileDir = dirProvider.get("ProfDS", Ci.nsIFile);
profileDir.append("downloads");
var prefs = Cc["@mozilla.org/preferences-service;1"]
let prefs = Cc["@mozilla.org/preferences-service;1"]
.getService(Ci.nsIPrefService);
prefs = prefs.getBranch("browser.download.");
let prefBranch = prefs.getBranch("browser.download.");
prefs.setCharPref("dir", profileDir.path);
prefs.setBoolPref("useDownloadDir", true);
prefs.setIntPref("folderList", 2);
prefs.setBoolPref("manager.closeWhenDone", true);
prefs.setBoolPref("manager.showWhenStarting", false);
prefBranch.setCharPref("dir", profileDir.path);
prefBranch.setBoolPref("useDownloadDir", true);
prefBranch.setIntPref("folderList", 2);
prefBranch.setBoolPref("manager.closeWhenDone", true);
prefBranch.setBoolPref("manager.showWhenStarting", false);
var Downloads = Cu.import("resource://gre/modules/Downloads.jsm").Downloads;
const { Downloads } =
Cu.import("resource://gre/modules/Downloads.jsm", {});
Downloads.getList(Downloads.PUBLIC).then(list => {
list.addView({
onDownloadAdded: function (aDownload) {
@ -71,21 +73,22 @@
SpecialPowers.loadChromeScript(function() {
const { classes: Cc, interfaces: Ci } = Components;
const mimeSvc = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService);
var handlerInfo = mimeSvc.getFromTypeAndExtension("application/x-auto-download", "auto");
let handlerInfo =
mimeSvc.getFromTypeAndExtension("application/x-auto-download", "auto");
const handlerSvc = Cc["@mozilla.org/uriloader/handler-service;1"]
.getService(Ci.nsIHandlerService);
handlerSvc.remove(handlerInfo);
var prefs = Cc["@mozilla.org/preferences-service;1"]
let prefs = Cc["@mozilla.org/preferences-service;1"]
.getService(Ci.nsIPrefService);
prefs = prefs.getBranch("browser.download.");
let prefBranch = prefs.getBranch("browser.download.");
var prefKeys = ["dir", "useDownloadDir", "folderList",
"manager.closeWhenDone", "manager.showWhenStarting"];
const prefKeys = ["dir", "useDownloadDir", "folderList",
"manager.closeWhenDone", "manager.showWhenStarting"];
for (let prefKey of prefKeys) {
if (prefs.prefHasUserValue(prefKey)) {
prefs.clearUserPref(prefKey);
if (prefBranch.prefHasUserValue(prefKey)) {
prefBranch.clearUserPref(prefKey);
}
}
});

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

@ -21,7 +21,7 @@
var onLoadFunction = window.onload;
window.onload = function()
{
var img1 = document.getElementById("img1");
let img1 = document.getElementById("img1");
img1.addEventListener("load", onLoadFunction, false);
img1.src = "https://example.com/tests/security/manager/ssl/tests/mochitest/mixedcontent/moonsurface.jpg";
};

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

@ -21,7 +21,7 @@
isSecurityState("secure");
window.setTimeout(() => {
try {
var req = new XMLHttpRequest();
let req = new XMLHttpRequest();
req.open("GET", "http://example.com/tests/security/manager/ssl/tests/mochitest/mixedcontent/alloworigin.sjs", false);
req.send(null);

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

@ -19,8 +19,8 @@
function runTest()
{
isSecurityState("secure");
var self = window;
var iframe = document.getElementById("iframe1");
let self = window;
let iframe = document.getElementById("iframe1");
iframe.onload = function() {
self.isSecurityState("broken", "src='redirect to unsecure' changed to broken");
self.finish();

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

@ -36,7 +36,7 @@
};
function startRound(round) {
var frame = document.createElement("iframe");
let frame = document.createElement("iframe");
frame.setAttribute('id', 'ifr_bootstrap');
frame.setAttribute('src', "https://example.com" + STSPATH + "/" + round + "_bootstrap.html");
document.body.appendChild(frame);
@ -54,8 +54,8 @@
}
function loadVerifyFrames(round) {
for (var test in testframes) {
var frame = document.createElement("iframe");
for (let test in testframes) {
let frame = document.createElement("iframe");
frame.setAttribute('id', 'ifr_' + test);
frame.setAttribute('src', testframes[test].url + '?id=' + test);
document.body.appendChild(frame);
@ -68,16 +68,14 @@
* or: "INSECURE otherdom"
*/
function onMessageReceived(event) {
// otherwise, it's a test result
var result = event.data.split(/\s+/);
let result = event.data.split(/\s+/);
if (result.length != 2) {
SimpleTest.ok(false, event.data);
return;
}
// figure out which round of tests we're in
var round = (roundsLeft == 2) ? 'plain' : 'subdom';
let round = (roundsLeft == 2) ? "plain" : "subdom";
if (result[0] === "BOOTSTRAP") {
loadVerifyFrames(round);

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

@ -13,6 +13,8 @@
<script class="testbody" type="text/javascript">
"use strict";
// We define |content| as a global as a hack to prevent use of |content|
// inside a ContentTask tripping ESLint no-undef checks.
/* global content */
SimpleTest.waitForExplicitFinish();
@ -74,7 +76,7 @@
}
function testOnWindow(aIsPrivate, aCallback) {
var win = mainWindow.OpenBrowserWindow({private: aIsPrivate});
let win = mainWindow.OpenBrowserWindow({private: aIsPrivate});
Task.spawn(function* () {
yield new Promise(resolve => whenDelayedStartupFinished(win, resolve));
@ -156,8 +158,7 @@
* or: "INSECURE otherdom"
*/
function onMessageReceived(win, isPrivate, data) {
// otherwise, it's a test result
var result = data.split(/\s+/);
let result = data.split(/\s+/);
if (result.length != 2) {
SimpleTest.ok(false, data);
return;
@ -236,9 +237,8 @@
}
function dump_STSState(isPrivate) {
var sss =
Cc["@mozilla.org/ssservice;1"].
getService(Ci.nsISiteSecurityService);
let sss = Cc["@mozilla.org/ssservice;1"]
.getService(Ci.nsISiteSecurityService);
let flags = isPrivate ? Ci.nsISocketProvider.NO_PERMANENT_STORAGE : 0;
SimpleTest.info("State of example.com: " + sss.isSecureHost(Ci.nsISiteSecurityService.HEADER_HSTS, "example.com", flags));
}

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

@ -2,7 +2,7 @@
"use strict";
function run_test() {
var SSService = Cc["@mozilla.org/ssservice;1"]
let SSService = Cc["@mozilla.org/ssservice;1"]
.getService(Ci.nsISiteSecurityService);
ok(!SSService.isSecureHost(Ci.nsISiteSecurityService.HEADER_HSTS,

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

@ -17,15 +17,12 @@ function load_cert(cert, trust) {
addCertFromFile(certDB, file, trust);
}
function getDERString(cert)
{
var length = {};
var cert_der = cert.getRawDER(length);
var cert_der_string = '';
for (var i = 0; i < cert_der.length; i++) {
cert_der_string += String.fromCharCode(cert_der[i]);
function getDERString(cert) {
let derString = "";
for (let rawByte of cert.getRawDER({})) {
derString += String.fromCharCode(rawByte);
}
return cert_der_string;
return derString;
}
function run_test() {

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

@ -197,9 +197,9 @@ function check_revocations_txt_contents(expected) {
let contents = "";
let hasmore = false;
do {
var line = {};
let line = {};
hasmore = inputStream.readLine(line);
contents = contents + (contents.length == 0 ? "" : "\n") + line.value;
contents += (contents.length == 0 ? "" : "\n") + line.value;
} while (hasmore);
equal(contents, expected, "revocations.txt should be as expected");
}

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

@ -1,6 +1,6 @@
"use strict";
var keys = [
const keys = [
// RSA key
"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK426erD/H3XtsjvaB5+PJqbhj" +
"Zc9EDI5OCJS8R3FIObJ9ZHJK1TXeaE7JWqt9WUmBWTEFvwS+FI9vWu8058N9CHhD" +
@ -17,12 +17,12 @@ var keys = [
"Zm9vYmFy"
];
var data = [
const data = [
"Test data for data signature verifier",
"The quick brown fox jumps over the lazy dog..."
];
var signatures = [
const signatures = [
// Key 0, Data 0, MD2 hash algorithm
"MIGTMA0GCSqGSIb3DQEBAgUAA4GBALe3hO76UCpI8b1/oJUCIPmC6AbnMAMlAqo7" +
"pc3TaWmU9wISWmXSrwNmr/QQNjWDn4nzQn8/K/Ac+tszaXib6fVLKA1a6e+/E0qE" +
@ -123,7 +123,7 @@ var signatures = [
"Zm9vYmFy"
];
var tests = [
const tests = [
// Data Signature Key Expected Throws
// Pass cases
[0, 0, 0, true, false], //0
@ -172,22 +172,22 @@ var tests = [
];
function run_test() {
var verifier = Cc["@mozilla.org/security/datasignatureverifier;1"].
createInstance(Ci.nsIDataSignatureVerifier);
let verifier = Cc["@mozilla.org/security/datasignatureverifier;1"]
.createInstance(Ci.nsIDataSignatureVerifier);
for (var t = 0; t < tests.length; t++) {
let testShouldThrow = tests[t][4];
try {
var result = verifier.verifyData(data[tests[t][0]],
signatures[tests[t][1]],
keys[tests[t][2]]);
ok(!testShouldThrow,
`Test ${t} should reach here only if not expected to throw`);
equal(result, tests[t][3],
`Actual and expected result should match for test ${t}`);
}
catch (e) {
ok(testShouldThrow, `Test ${t} should throw only if expected to: ${e}`);
for (let testCase of tests) {
let testShouldThrow = testCase[4];
if (testShouldThrow) {
throws(() => {
verifier.verifyData(data[testCase[0]], signatures[testCase[1]],
keys[testCase[2]]);
}, /NS_ERROR_FAILURE/, `Test "${testCase}" should throw`);
} else {
let result = verifier.verifyData(data[testCase[0]],
signatures[testCase[1]],
keys[testCase[2]]);
equal(result, testCase[3],
`Actual and expected result should match for test "${testCase}"`);
}
}
}

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

@ -28,8 +28,7 @@ var certList = [
];
function load_ca(ca_name) {
var ca_filename = ca_name + ".pem";
addCertFromFile(certdb, "test_ev_certs/" + ca_filename, 'CTu,CTu,CTu');
addCertFromFile(certdb, `test_ev_certs/${ca_name}.pem`, "CTu,CTu,CTu");
}
const SERVER_PORT = 8888;

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

@ -1,18 +1,10 @@
"use strict";
var ScriptableUnicodeConverter =
Components.Constructor("@mozilla.org/intl/scriptableunicodeconverter",
"nsIScriptableUnicodeConverter");
var CryptoHash =
Components.Constructor("@mozilla.org/security/hash;1",
"nsICryptoHash",
"initWithString");
var messages = [
const messages = [
"The quick brown fox jumps over the lazy dog",
""
];
var hashes = {
const hashes = {
md2: [
"03d85a0d629d2c442e987525319fc471",
"8350e5a3e24c153df2275c9f80692773"
@ -49,32 +41,33 @@ function hexdigest(data) {
}
function doHash(algo, value, cmp) {
var converter = new ScriptableUnicodeConverter();
var hash = new CryptoHash(algo);
let hash = Cc["@mozilla.org/security/hash;1"].createInstance(Ci.nsICryptoHash);
hash.initWithString(algo);
let converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]
.createInstance(Ci.nsIScriptableUnicodeConverter);
converter.charset = 'utf8';
value = converter.convertToByteArray(value);
hash.update(value, value.length);
var hash1 = hexdigest(hash.finish(false));
equal(hash1, cmp,
equal(hexdigest(hash.finish(false)), cmp,
`Actual and expected hash for ${algo} should match`);
hash.initWithString(algo);
hash.update(value, value.length);
var hash2 = hexdigest(hash.finish(false));
equal(hash2, cmp,
equal(hexdigest(hash.finish(false)), cmp,
`Actual and expected hash for ${algo} should match after re-init`);
}
function doHashStream(algo, value, cmp) {
var converter = new ScriptableUnicodeConverter();
var hash = new CryptoHash(algo);
let hash = Cc["@mozilla.org/security/hash;1"].createInstance(Ci.nsICryptoHash);
hash.initWithString(algo);
let converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"]
.createInstance(Ci.nsIScriptableUnicodeConverter);
converter.charset = 'utf8';
var stream = converter.convertToInputStream(value);
let stream = converter.convertToInputStream(value);
hash.updateFromStream(stream, stream.available());
hash = hexdigest(hash.finish(false));
equal(hash, cmp,
equal(hexdigest(hash.finish(false)), cmp,
`Actual and expected hash for ${algo} should match updating from stream`);
}

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

@ -27,20 +27,21 @@ const certdb = Cc["@mozilla.org/security/x509certdb;1"].getService(Ci.nsIX509Cer
// modifications (including possibly deletions) applied to the existing entries,
// and/or a set of new entries to be included.
function tamper(inFilePath, outFilePath, modifications, newEntries) {
var writer = Cc["@mozilla.org/zipwriter;1"].createInstance(Ci.nsIZipWriter);
let writer = Cc["@mozilla.org/zipwriter;1"].createInstance(Ci.nsIZipWriter);
writer.open(outFilePath, PR_RDWR | PR_CREATE_FILE | PR_TRUNCATE);
try {
var reader = Cc["@mozilla.org/libjar/zip-reader;1"].createInstance(Ci.nsIZipReader);
let reader = Cc["@mozilla.org/libjar/zip-reader;1"]
.createInstance(Ci.nsIZipReader);
reader.open(inFilePath);
try {
var entries = reader.findEntries("");
let entries = reader.findEntries("");
while (entries.hasMore()) {
var entryName = entries.getNext();
var inEntry = reader.getEntry(entryName);
var entryInput = reader.getInputStream(entryName);
let entryName = entries.getNext();
let inEntry = reader.getEntry(entryName);
let entryInput = reader.getInputStream(entryName);
try {
var f = modifications[entryName];
var outEntry, outEntryInput;
let f = modifications[entryName];
let outEntry, outEntryInput;
if (f) {
[outEntry, outEntryInput] = f(inEntry, entryInput);
delete modifications[entryName];
@ -80,7 +81,7 @@ function tamper(inFilePath, outFilePath, modifications, newEntries) {
// Now, append any new entries to the end
newEntries.forEach(function(newEntry) {
var sis = Cc["@mozilla.org/io/string-input-stream;1"]
let sis = Cc["@mozilla.org/io/string-input-stream;1"]
.createInstance(Ci.nsIStringInputStream);
try {
sis.setData(newEntry.content, newEntry.content.length);
@ -106,7 +107,7 @@ function truncateEntry(entry, entryInput) {
"identical entry.");
}
var content = Cc["@mozilla.org/io/string-input-stream;1"]
let content = Cc["@mozilla.org/io/string-input-stream;1"]
.createInstance(Ci.nsIStringInputStream);
content.data = "";
@ -158,7 +159,7 @@ add_test(function () {
// Sanity check to ensure a no-op tampering gives a valid result
add_test(function () {
var tampered = tampered_app_path("identity_tampering");
let tampered = tampered_app_path("identity_tampering");
tamper(original_app_path("valid_app_1"), tampered, { }, []);
certdb.openSignedAppFileAsync(
Ci.nsIX509CertDB.AppXPCShellRoot, original_app_path("valid_app_1"),
@ -166,7 +167,7 @@ add_test(function () {
});
add_test(function () {
var tampered = tampered_app_path("missing_rsa");
let tampered = tampered_app_path("missing_rsa");
tamper(original_app_path("valid_app_1"), tampered, { "META-INF/A.RSA": removeEntry }, []);
certdb.openSignedAppFileAsync(
Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
@ -174,7 +175,7 @@ add_test(function () {
});
add_test(function () {
var tampered = tampered_app_path("missing_sf");
let tampered = tampered_app_path("missing_sf");
tamper(original_app_path("valid_app_1"), tampered, { "META-INF/A.SF": removeEntry }, []);
certdb.openSignedAppFileAsync(
Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
@ -182,7 +183,7 @@ add_test(function () {
});
add_test(function () {
var tampered = tampered_app_path("missing_manifest_mf");
let tampered = tampered_app_path("missing_manifest_mf");
tamper(original_app_path("valid_app_1"), tampered, { "META-INF/MANIFEST.MF": removeEntry }, []);
certdb.openSignedAppFileAsync(
Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
@ -191,7 +192,7 @@ add_test(function () {
});
add_test(function () {
var tampered = tampered_app_path("missing_entry");
let tampered = tampered_app_path("missing_entry");
tamper(original_app_path("valid_app_1"), tampered, { "manifest.webapp": removeEntry }, []);
certdb.openSignedAppFileAsync(
Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
@ -199,7 +200,7 @@ add_test(function () {
});
add_test(function () {
var tampered = tampered_app_path("truncated_entry");
let tampered = tampered_app_path("truncated_entry");
tamper(original_app_path("valid_app_1"), tampered, { "manifest.webapp": truncateEntry }, []);
certdb.openSignedAppFileAsync(
Ci.nsIX509CertDB.AppXPCShellRoot, tampered,
@ -207,7 +208,7 @@ add_test(function () {
});
add_test(function () {
var tampered = tampered_app_path("unsigned_entry");
let tampered = tampered_app_path("unsigned_entry");
tamper(original_app_path("valid_app_1"), tampered, {},
[ { "name": "unsigned.txt", "content": "unsigned content!" } ]);
certdb.openSignedAppFileAsync(
@ -216,7 +217,7 @@ add_test(function () {
});
add_test(function () {
var tampered = tampered_app_path("unsigned_metainf_entry");
let tampered = tampered_app_path("unsigned_metainf_entry");
tamper(original_app_path("valid_app_1"), tampered, {},
[ { name: "META-INF/unsigned.txt", content: "unsigned content!" } ]);
certdb.openSignedAppFileAsync(

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

@ -35,7 +35,7 @@ function run_test() {
outputStream.close();
Services.obs.addObserver(start_test_in_child, "data-storage-ready", false);
do_test_pending();
var SSService = Cc["@mozilla.org/ssservice;1"]
let SSService = Cc["@mozilla.org/ssservice;1"]
.getService(Ci.nsISiteSecurityService);
notEqual(SSService, null);
}

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

@ -70,7 +70,7 @@ function test_part1() {
// check that processing a header with max-age: 0 will remove a preloaded
// site from the list
var uri = Services.io.newURI("http://bugzilla.mozilla.org", null, null);
let uri = Services.io.newURI("http://bugzilla.mozilla.org", null, null);
gSSService.processHeader(Ci.nsISiteSecurityService.HEADER_HSTS, uri,
"max-age=0", sslStatus, 0);
ok(!gSSService.isSecureHost(Ci.nsISiteSecurityService.HEADER_HSTS,
@ -161,7 +161,7 @@ function test_private_browsing1() {
ok(gSSService.isSecureHost(Ci.nsISiteSecurityService.HEADER_HSTS,
"a.b.c.subdomain.bugzilla.mozilla.org", IS_PRIVATE));
var uri = Services.io.newURI("http://bugzilla.mozilla.org", null, null);
let uri = Services.io.newURI("http://bugzilla.mozilla.org", null, null);
gSSService.processHeader(Ci.nsISiteSecurityService.HEADER_HSTS, uri,
"max-age=0", sslStatus, IS_PRIVATE);
ok(!gSSService.isSecureHost(Ci.nsISiteSecurityService.HEADER_HSTS,