Bug 1532933 - Enable ESLint for dom/xhr (manual changes). r=Standard8,baku

Depends on D45680

Differential Revision: https://phabricator.services.mozilla.com/D45683

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Shashank Kaushik 2019-09-15 13:07:10 +00:00
parent b7630b9df2
commit 059c1179f1
30 changed files with 112 additions and 84 deletions

View file

@ -14,7 +14,6 @@ obj*/
# dom/ exclusions which should be removed (aka ESLint enabled)
dom/media/test/
!dom/media/test/marionette/yttest/*.js
dom/xhr/
# build/ third-party code
build/pgo/js-input/

View file

@ -8,10 +8,7 @@ add_task(async function test() {
fileData += "hello world!";
}
let file = Cc["@mozilla.org/file/directory_service;1"]
.getService(Ci.nsIDirectoryService)
.QueryInterface(Ci.nsIProperties)
.get("ProfD", Ci.nsIFile);
let file = Services.dirsvc.get("ProfD", Ci.nsIFile);
file.append("file.txt");
file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, 0o600);
@ -21,14 +18,14 @@ add_task(async function test() {
outStream.init(
file,
0x02 | 0x08 | 0x20, // write, create, truncate
// eslint-disable-next-line no-octal
0666,
0
);
outStream.write(fileData, fileData.length);
outStream.close();
let fileHandler = Cc["@mozilla.org/network/io-service;1"]
.getService(Ci.nsIIOService)
let fileHandler = Services.io
.getProtocolHandler("file")
.QueryInterface(Ci.nsIFileProtocolHandler);

View file

@ -7,7 +7,7 @@ add_task(async _ => {
);
xhr.responseType = "blob";
xhr.send("");
xhr.onloadend = _ => {
xhr.onloadend = __ => {
is(xhr.response.blobImplType, "EmptyBlobImpl", "We want a EmptyBlobImpl");
resolve();
};
@ -29,7 +29,7 @@ add_task(async _ => {
return data;
},
});
xhr.onloadend = _ => {
xhr.onloadend = __ => {
is(
xhr.response.blobImplType,
"MemoryBlobImpl",
@ -59,7 +59,7 @@ add_task(async _ => {
return data;
},
});
xhr.onloadend = _ => {
xhr.onloadend = __ => {
is(
xhr.response.blobImplType,
"StreamBlobImpl[TemporaryBlobImpl]",

View file

@ -12,8 +12,7 @@ add_task(async function test() {
"http://mochi.test:8888/browser/dom/xhr/tests/browser_xhr_onchange_leak.html";
let newTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, url);
let browser = gBrowser.selectedBrowser;
let done = await ContentTask.spawn(browser, {}, async function(browser) {
let doc = content.document;
let done = await ContentTask.spawn(browser, {}, async function() {
let promise = ContentTaskUtils.waitForEvent(this, "DOMContentLoaded", true);
content.location = "http://example.org/";
await promise;

View file

@ -1,3 +1,5 @@
// This file expects next() to be defined in the scope it is imported into.
/* global next */
var data = new Array(256).join("1234567890ABCDEF");
function createXHR() {

View file

@ -13,6 +13,7 @@ addEventListener('load', evt => {
document.write(
'<body>' +
'<iframe src="about:blank"></iframe>' +
// eslint-disable-next-line no-useless-concat
'<script>window.opener.postMessage("DONE", "*");</' + 'script>' +
'</body>');
document.close();

View file

@ -2,6 +2,8 @@
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
/* eslint-env worker */
/* global workerURL */
const importURL = "relativeLoad_import.js";
onmessage = function(event) {
@ -12,17 +14,17 @@ onmessage = function(event) {
xhr.status != 200 ||
xhr.responseText != "A noisy noise annoys an oyster."
) {
throw "Couldn't get xhr text from where we wanted it!";
throw new Error("Couldn't get xhr text from where we wanted it!");
}
importScripts(importURL);
var worker = new Worker("relativeLoad_worker2.js");
worker.onerror = function(event) {
throw event.message;
worker.onerror = function(e) {
throw e.message;
};
worker.onmessage = function(event) {
if (event.data != workerURL) {
throw "Bad data!";
worker.onmessage = function(e) {
if (e.data != workerURL) {
throw new Error("Bad data!");
}
postMessage(workerURL);
};

View file

@ -2,6 +2,8 @@
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
/* eslint-env worker */
/* global workerURL */
const importURL = "relativeLoad_import.js";
importScripts(importURL);

View file

@ -2,14 +2,16 @@
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
/* eslint-env worker */
/* global workerSubURL */
const importSubURL = "relativeLoad_sub_import.js";
onmessage = function(event) {
onmessage = function(_) {
var xhr = new XMLHttpRequest();
xhr.open("GET", "testXHR.txt", false);
xhr.send(null);
if (xhr.status != 404) {
throw "Loaded an xhr from the wrong location!";
throw new Error("Loaded an xhr from the wrong location!");
}
importScripts(importSubURL);
@ -19,7 +21,7 @@ onmessage = function(event) {
};
worker.onmessage = function(event) {
if (event.data != workerSubURL) {
throw "Bad data!";
throw new Error("Bad data!");
}
postMessage(workerSubURL);
};

View file

@ -2,6 +2,8 @@
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
/* eslint-env worker */
/* global workerSubURL */
const importSubURL = "relativeLoad_sub_import.js";
importScripts(importSubURL);

View file

@ -4,7 +4,7 @@
*/
onmessage = function(event) {
throw "No messages should reach me!";
throw new Error("No messages should reach me!");
};
var xhr = new XMLHttpRequest();

View file

@ -77,7 +77,7 @@ URL.revokeObjectURL(blobURL);
for (i = 0; i < failFiles.length; ++i) {
xhr = new XMLHttpRequest();
var didthrow = false;
let didthrow = false;
try {
xhr.open(failFiles[i][1], failFiles[i][0], false);
xhr.send(null);
@ -95,28 +95,28 @@ for (i = 0; i < failFiles.length; ++i) {
}
function checkResponseTextAccessThrows(xhr) {
var didthrow = false;
let didthrow = false;
try { xhr.responseText } catch (e) { didthrow = true; }
ok(didthrow, "should have thrown when accessing responseText");
}
function checkResponseXMLAccessThrows(xhr) {
var didthrow = false;
let didthrow = false;
try { xhr.responseXML } catch (e) { didthrow = true; }
ok(didthrow, "should have thrown when accessing responseXML");
}
function checkSetResponseType(xhr, type) {
var didthrow = false;
let didthrow = false;
try { xhr.responseType = type; } catch (e) { didthrow = true; }
is(xhr.responseType, type, "responseType should be " + type);
ok(!didthrow, "should not have thrown when setting responseType");
}
function checkSetResponseTypeThrows(xhr, type) {
var didthrow = false;
let didthrow = false;
try { xhr.responseType = type; } catch (e) { didthrow = true; }
ok(didthrow, "should have thrown when setting responseType");
}
function checkOpenThrows(xhr, method, url, async) {
var didthrow = false;
let didthrow = false;
try { xhr.open(method, url, async); } catch (e) { didthrow = true; }
ok(didthrow, "should have thrown when open is called");
}
@ -235,7 +235,7 @@ is(JSON.stringify(xhr.response), jsonObjStr, "correct result");
is(xhr.response, xhr.response, "returning the same object on each access");
// with invalid json
var xhr = new XMLHttpRequest();
xhr = new XMLHttpRequest();
xhr.open("POST", 'responseIdentical.sjs');
xhr.responseType = 'json';
xhr.onloadend = continueTest;
@ -335,7 +335,7 @@ while (xhr.readyState != 4)
xhr.onreadystatechange = null;
var b = xhr.response;
b = xhr.response;
ok(b != null, "should have a non-null blob");
is(b.size, 65536, "wrong blob size");

View file

@ -87,7 +87,7 @@ function* runTest() {
is(document.baseURI, "http://example.org/", "wrong doc baseURI");
// use content XHR and access URI properties from content privileged script
xhr = new XMLHttpRequest;
var xhr = new XMLHttpRequest;
xhr.open("GET", "http://mochi.test:8888/tests/dom/xhr/tests/file_XHRDocURI.xml");
xhr.onreadystatechange = function(e) {
if (!xhr.responseXML) {

View file

@ -35,7 +35,7 @@ function setupAndRunTests() {
}
function createFiles() {
var filesToCreate = new Array();
var filesToCreate = [];
extensions.forEach(function (extension) {
filesToCreate.push({name: "testfile" + extension, data: testData});
});
@ -45,7 +45,7 @@ function createFiles() {
gen.next();
},
function (msg) {
testDOMFiles = new Array;
testDOMFiles = [];
ok(false, "File creation error: " + msg);
gen.next();
});
@ -55,13 +55,13 @@ function createFiles() {
function continueTest() { gen.next(); }
function* runTests() {
xhr = new XMLHttpRequest();
var xhr = new XMLHttpRequest();
xhr.open("GET", "file_XHRSendData_doc.xml", false);
xhr.send();
testDoc1 = xhr.responseXML;
var testDoc1 = xhr.responseXML;
is(testDoc1.inputEncoding, "windows-1252", "wrong encoding");
testDoc2 = document.implementation.createDocument("", "", null);
var testDoc2 = document.implementation.createDocument("", "", null);
testDoc2.appendChild(testDoc2.createComment(" doc 2 "));
testDoc2.appendChild(testDoc2.createElement("res"));
testDoc2.documentElement.appendChild(testDoc2.createTextNode("text"));
@ -74,7 +74,7 @@ shortInt8View[0] = 3;
var longArray = new ArrayBuffer(512);
var longInt8View = new Uint8Array(longArray);
for (var i = 0; i < longInt8View.length; i++) {
for (let i = 0; i < longInt8View.length; i++) {
longInt8View[i] = i % 255;
}
@ -87,7 +87,7 @@ var longInt16View2 = new Uint16Array(longArray, 256, 64)
var longInt8View1 = new Int8Array(longArraySlice)
var longInt8View2 = new Int8Array(longArray, 256, 128)
tests = [{ body: null,
var tests = [{ body: null,
resBody: "",
},
{ body: undefined,
@ -202,7 +202,7 @@ tests = [{ body: null,
},
];
for (var i = 0; i < testDOMFiles.length; i++) {
for (let i = 0; i < testDOMFiles.length; i++) {
tests.push({ body: testDOMFiles[i],
resBody: testData,
resContentType: fileTypes[i],
@ -211,7 +211,7 @@ for (var i = 0; i < testDOMFiles.length; i++) {
}
try {
for (test of tests) {
for (var test of tests) {
xhr = new XMLHttpRequest;
xhr.open("POST", "file_XHRSendData.sjs", !!test.resType);
if (test.contentType)
@ -259,8 +259,8 @@ try {
function is_identical_arraybuffer(ab1, ab2) {
is(ab1.byteLength, ab2.byteLength, "arraybuffer byteLengths not equal");
u8v1 = new Uint8Array(ab1);
u8v2 = new Uint8Array(ab2);
var u8v1 = new Uint8Array(ab1);
var u8v2 = new Uint8Array(ab2);
is(String.fromCharCode.apply(String, u8v1),
String.fromCharCode.apply(String, u8v2), "arraybuffer values not equal");
}

View file

@ -38,7 +38,7 @@ function runTests() {
];
let invalidParameters = [
{get mozSystem() { throw "Bla"; } },
{get mozSystem() { throw new Error("Bla"); } },
];
let havePrivileges = false;

View file

@ -13,6 +13,7 @@
<body>
<p id="display"></p>
<script class="testbody" type="text/javascript">
/* import-globals-from ../../events/test/event_leak_utils.js */
// Manipulate XHR. Its important here that we create a
// listener callback from the DOM objects back to the frame's global
// in order to exercise the leak condition.

View file

@ -34,8 +34,8 @@ Tests of DOM Worker Threads relative load
var worker = new Worker(urls[++index]);
worker.onmessage = messageHandler;
worker.onerror = function(event) {
ok(false, "Worker had an error: " + event.message);
worker.onerror = function(e) {
ok(false, "Worker had an error: " + e.message);
SimpleTest.finish();
};
worker.postMessage("start");

View file

@ -31,19 +31,23 @@ Tests of DOM Worker Threads XHR(Bug 450452 )
switch (args.type) {
case "progress": {
ok(parseInt(args.current) <= parseInt(args.total));
} break;
break;
}
case "error": {
ok(false, "XHR error: " + args.error);
} break;
break;
}
case "upload.load": {
gotUploadLoad = true;
} break;
break;
}
case "load": {
ok(gotUploadLoad, "Should have gotten upload load event");
gotLoadend = true;
is(args.data, "A noisy noise annoys an oyster.", "correct data");
document.getElementById("content").textContent = args.data;
} break;
break;
}
case "loadend": {
ok(gotLoadend, "Should have gotten load.");
SimpleTest.finish();

View file

@ -16,10 +16,12 @@
<script class="testbody" type="application/javascript">
function message(event) {
if (event.data.test == 'ok')
if (event.data.test == 'ok') {
ok(event.data.a, event.data.event);
else if(event.data.test == 'is')
}
else if(event.data.test == 'is') {
is(event.data.a, event.data.b, event.data.event);
}
else if(event.data.test == 'finish') {
run();
}

View file

@ -31,7 +31,7 @@ var validParameters = [
var invalidParameters = [
{
get mozSystem() {
throw "Bla";
throw new Error("Bla");
},
},
];

View file

@ -16,10 +16,12 @@
<script class="testbody" type="application/javascript">
function message(event) {
if (event.data.test == 'ok')
if (event.data.test == 'ok') {
ok(event.data.a, event.data.event);
else if(event.data.test == 'is')
}
else if(event.data.test == 'is') {
is(event.data.a, event.data.b, event.data.event);
}
else if(event.data.test == 'finish') {
run();
}

View file

@ -56,10 +56,10 @@ function startTest() {
request.send(); // headers aren't set on the channel until send()
// Read out headers
var channel = SpecialPowers.wrap(request).channel.QueryInterface(SpecialPowers.Ci.nsIHttpChannel);
channel = SpecialPowers.wrap(request).channel.QueryInterface(SpecialPowers.Ci.nsIHttpChannel);
for (i = 0; i < headers.length; i++) {
// Retrieving Content-Length will throw an exception
var value = null;
value = null;
try {
value = channel.getRequestHeader(headers[i]);
}

View file

@ -134,10 +134,10 @@ function* runTests() {
];
var responseType;
var fileExpectedResult = "";
for (var i = 0; i < 65536; i++) {
for (let i = 0; i < 65536; i++) {
fileExpectedResult += String.fromCharCode(i & 255);
}
while (responseType = responseTypes.shift()) {
while ((responseType = responseTypes.shift())) {
let tests = [{ open: "Content-Type=text/plain", name: "simple test" },
{ data: "hello world" },
{ data: "\u0000\u0001\u0002\u0003" },
@ -220,7 +220,7 @@ function* runTests() {
if (!testState.file)
xhrClose = closeConn();
e = yield undefined;
let e = yield undefined;
is(e.type, "readystatechange", "should readystate to done closing " + testState.name);
is(xhr.readyState, xhr.DONE, "should be in state DONE closing " + testState.name);
log("readystate to 4");
@ -279,7 +279,7 @@ function* runTests() {
while(testState.pendingBytes) {
log("waiting for more bytes: " + testState.pendingBytes);
e = yield undefined;
let e = yield undefined;
// Readystate can fire several times between each progress event.
if (e.type === "readystatechange")
continue;

View file

@ -62,9 +62,9 @@ function testExceptionInToString() {
SimpleTest.finish();
}
try {
x.send({toString() { throw "dummy"; }});
x.send({toString() { throw new Error("dummy"); }});
} catch(ex) {
is(ex, "dummy");
is(ex.message, "dummy");
SimpleTest.finish();
}
}

View file

@ -24,7 +24,7 @@ xhr.open("GET", "", false);
xhr.withCredentials = true;
ok(true, "Should not throw on withCredentials sets for sync XHR");
var xhr = new XMLHttpRequest();
xhr = new XMLHttpRequest();
xhr.open("GET", "", true);
xhr.withCredentials = true;
ok(true, "Should not throw on withCredentials sets for async XHR");

View file

@ -33,19 +33,23 @@ Tests of DOM Worker Threads XHR(Bug 450452 )
switch (args.type) {
case "progress": {
ok(parseInt(args.current) <= parseInt(args.total));
} break;
break;
}
case "error": {
ok(false, "XHR error: " + args.error);
} break;
break;
}
case "upload.load": {
gotUploadLoad = true;
} break;
break;
}
case "load": {
ok(gotUploadLoad, "Should have gotten upload load event");
gotLoadend = true;
is(args.data, "a=cookie_is_set", "correct data");
document.getElementById("content").textContent = args.data;
} break;
break;
}
case "loadend": {
ok(gotLoadend, "Should have gotten load.");
finish();

View file

@ -1,3 +1,4 @@
/* eslint-env worker */
importScripts("common_temporaryFileBlob.js");
function info(msg) {

View file

@ -2,7 +2,7 @@
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
/* eslint-env worker */
onmessage = function(event) {
const url = event.data;
@ -13,7 +13,7 @@ onmessage = function(event) {
const refText = xhr.responseText;
function getResponse(type) {
var xhr = new XMLHttpRequest();
xhr = new XMLHttpRequest();
xhr.open("GET", url, false);
if (type !== undefined) {
xhr.responseType = type;
@ -48,7 +48,7 @@ onmessage = function(event) {
// property.
function testResponseTextException(type) {
var xhr = new XMLHttpRequest();
xhr = new XMLHttpRequest();
xhr.open("GET", url, false);
xhr.responseType = type;
xhr.send();

View file

@ -2,6 +2,8 @@
* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/
*/
/* eslint-env worker */
/* global WorkerProgressEvent */
function runTest() {
var xhr = new XMLHttpRequest();

View file

@ -6,15 +6,15 @@ var xhr = new XMLHttpRequest();
function onload(event) {
if (event.target != xhr) {
throw "onload event.target != xhr";
throw new Error("onload event.target != xhr");
}
if (event.target.status != 200) {
var message = { type: "error", error: event.target.status };
const message = { type: "error", error: event.target.status };
postMessage(message);
}
var message = { type: "load", data: xhr.responseText };
const message = { type: "load", data: xhr.responseText };
postMessage(message);
}
@ -22,27 +22,33 @@ xhr.onload = onload;
xhr.addEventListener("load", onload);
xhr.removeEventListener("load", onload);
if (!xhr.onload) {
var message = { type: "error", error: "Lost message listener!" };
const message = { type: "error", error: "Lost message listener!" };
postMessage(message);
}
xhr.onerror = function(event) {
if (event.target != xhr) {
throw "onerror event.target != xhr";
throw new Error("onerror event.target != xhr");
}
var message = { type: "error", error: event.target.status };
postMessage(message);
};
// eslint-disable-next-line no-self-assign
xhr.onerror = xhr.onerror;
// eslint-disable-next-line no-self-compare
if (!xhr.onerror || xhr.onerror != xhr.onerror) {
throw "onerror wasn't set properly";
throw new Error("onerror wasn't set properly");
}
function onprogress(event) {
if (event.target != xhr) {
throw "onprogress event.target != xhr";
throw new Error("onprogress event.target != xhr");
}
var message = { type: "progress", current: event.loaded, total: event.total };
const message = {
type: "progress",
current: event.loaded,
total: event.total,
};
postMessage(message);
}
xhr.addEventListener("progress", onprogress);
@ -51,7 +57,7 @@ xhr.addEventListener("foopety", function(event) {});
xhr.removeEventListener("doopety", function(event) {});
xhr.onloadend = function(event) {
var message = { type: "loadend" };
const message = { type: "loadend" };
postMessage(message);
};
@ -62,16 +68,16 @@ upload.removeEventListener("foo", function(event) {});
upload.addEventListener("load", function(event) {});
upload.removeEventListener("foo", function(event) {});
upload.onload = function(event) {
var message = { type: "upload.load" };
const message = { type: "upload.load" };
postMessage(message);
};
onmessage = function(event) {
if (xhr.DONE != 4 || XMLHttpRequest.DONE != 4) {
throw "xhr constants not correct!";
throw new Error("xhr constants not correct!");
}
if (xhr.readystate > xhr.UNSENT) {
throw "XHR already running!";
throw new Error("XHR already running!");
}
xhr.open("POST", event.data);
xhr.send("Data to send");