Bug 1375903 - Enable eslint on testing/talos - additional changes; r=jmaher

This commit is contained in:
Geoff Brown 2017-06-28 06:58:03 -06:00
parent f227d92d5a
commit 1a7d0e6a5d
33 changed files with 493 additions and 449 deletions

View file

@ -306,6 +306,7 @@ testing/modules/sinon-2.3.2.js
# octothorpe used for pref file comment causes parsing error
testing/mozbase/mozprofile/tests/files/prefs_with_comments.js
testing/talos/talos/scripts/jszip.min.js
testing/talos/talos/startup_test/sessionrestore/profile/sessionstore.js
testing/talos/talos/tests/canvasmark/**
testing/talos/talos/tests/dromaeo/**
testing/talos/talos/tests/v8_7/**

View file

@ -0,0 +1,26 @@
"use strict";
module.exports = {
globals: {
"Cc": false,
"Ci": false,
"Cu": false,
"content": true,
"dumpLog": false,
"netscape": false,
"addMessageListener": false,
"goQuitApplication": false,
"MozillaFileLogger": false,
"Profiler": true,
"Services": false,
"gBrowser": false,
"removeMessageListener": false,
"sendAsyncMessage": false,
"sendSyncMessage": false,
"TalosPowersContent": true,
"TalosPowersParent": true,
"TalosContentProfiler": true,
"tpRecordTime": true
}
};

View file

@ -2,6 +2,7 @@
// prefs in user.js don't get recognized until the second browser launch
// which is too late for our purposes of using quit.js. Loading the principals
// from prefs.js avoids this issue.
/* globals user_pref */
user_pref("capability.principal.codebase.p0.granted", "UniversalPreferencesWrite UniversalXPConnect UniversalPreferencesRead");
user_pref("capability.principal.codebase.p0.id", "file://");
user_pref("capability.principal.codebase.p0.subjectName", "");

View file

@ -11,6 +11,7 @@
<script src="scripts/xpigen.js"></script>
<script>
/* import-globals-from scripts/xpigen.js */
var base = "tests/tart/addon/";
var files = [
"chrome.manifest",

View file

@ -11,6 +11,7 @@
<script src="scripts/xpigen.js"></script>
<script>
/* import-globals-from scripts/xpigen.js */
var base = "startup_test/tresize/addon/";
var files = [
"chrome.manifest",

View file

@ -106,7 +106,7 @@ var Profiler;
},
finishTestAsync: function Profiler__finishTest() {
if (!(_profiler && enabled)) {
return;
return undefined;
}
return new Promise((resolve, reject) => {
Services.profiler.getProfileDataAsync().then((profile) => {

View file

@ -1,3 +1,4 @@
/* import-globals-from pageloader.js */
var gChildProcess = true;
var gMemCallback = null;

View file

@ -2,6 +2,9 @@
* 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/. */
/* import-globals-from memory.js */
/* import-globals-from report.js */
try {
if (Cc === undefined) {
var Cc = Components.classes;
@ -106,6 +109,7 @@ SingleTimeout.prototype.clear = function() {
};
var failTimeout = new SingleTimeout();
var renderReport;
function plInit() {
if (running) {
@ -214,8 +218,7 @@ function plInit() {
toolbars = "titlebar,resizable";
}
browserWindow = wwatch.openWindow
(null, "chrome://browser/content/", "_blank",
browserWindow = wwatch.openWindow(null, "chrome://browser/content/", "_blank",
`chrome,${toolbars},dialog=no,width=${winWidth},height=${winHeight}`, blank);
gPaintWindow = browserWindow;
@ -314,6 +317,7 @@ var ContentListener = {
case "PageLoader:LoadEvent": return plLoadHandlerMessage(message);
case "PageLoader:RecordTime": return plRecordTimeMessage(message);
}
return undefined;
},
};
@ -525,7 +529,7 @@ function plRecordTime(time) {
report.recordTime(recordedName, time);
}
if (noisy) {
dumpLine("Cycle " + (cycle + 1) + "(" + pageCycle + ")" + ": loaded " + pageName + " (next: " + nextName + ")");
dumpLine("Cycle " + (cycle + 1) + "(" + pageCycle + "): loaded " + pageName + " (next: " + nextName + ")");
}
}

View file

@ -48,7 +48,7 @@ function Report() {
}
Report.prototype.pageNames = function() {
var retval = new Array();
var retval = [];
for (var page in this.timeVals) {
retval.push(page);
}
@ -153,7 +153,7 @@ Report.prototype.getReportSummary = function() {
Report.prototype.recordTime = function(pageName, ms) {
if (this.timeVals[pageName] == undefined) {
this.timeVals[pageName] = new Array();
this.timeVals[pageName] = [];
}
this.timeVals[pageName].push(ms);
}

View file

@ -215,7 +215,6 @@ function testScroll(target, stepSize, opt_reportFunc, opt_numSteps) {
return new Promise(function(resolve, reject) {
setSmooth();
var startts = Date.now();
var handle = -1;
startFrameTimeRecording(function(rv) {
@ -224,7 +223,6 @@ function testScroll(target, stepSize, opt_reportFunc, opt_numSteps) {
// Get the measurements after APZ_MEASURE_MS of scrolling
setTimeout(function() {
var endts = Date.now();
stopFrameTimeRecording(handle, function(intervals) {
function average(arr) {

View file

@ -180,7 +180,7 @@ var PageLoaderCmdLineModule =
compMgr = compMgr.QueryInterface(nsIComponentRegistrar);
compMgr.unregisterFactoryLocation(TP_CMDLINE_CLSID, fileSpec);
catman = Components.classes[CATMAN_CONTRACTID].getService(nsICategoryManager);
var catman = Components.classes[CATMAN_CONTRACTID].getService(nsICategoryManager);
catman.deleteCategoryEntry("command-line-handler",
"m-tp", true);
},

View file

@ -33,6 +33,7 @@ window.talosDebug = {
median(values) {
var clone = values.slice(0);
// eslint-disable-next-line no-nested-ternary
var sorted = clone.sort(function(a, b) { return (a > b) ? 1 : ((a < b) ? -1 : 0); });
var len = values.length;
if (!len)
@ -76,14 +77,14 @@ window.talosDebug = {
var stableFrom = -1;
var overallAverage = d.median(values);
var overallStd = d.stddev(values, overallAverage);
// var overallStd = d.stddev(values, overallAverage);
for (var winWidth = MIN_WIDTH; winWidth < (MAX_WIDTH + 1); winWidth++) {
var prevStd = windowStd(0, winWidth);
for (var i = 1; i < values.length - winWidth - 3; i++) {
var w0 = windowStd(i + 0, winWidth);
var w1 = windowStd(i + 1, winWidth);
var w2 = windowStd(i + 2, winWidth);
var currWindow = values.slice(i, i + winWidth);
// var currWindow = values.slice(i, i + winWidth);
if (w0 >= prevStd && !(w1 < w0 && w2 < w1)) {
if (i > stableFrom)
stableFrom = i;
@ -135,7 +136,7 @@ window.talosDebug = {
var warmup = (d.ignore >= 0) ? d.ignore : d.detectWarmup(collection);
if (warmup >= 0) {
res += "\n\nWarmup " + ((d.ignore >= 0) ? "requested: " : "auto-detected: ") + warmup;
warmedUp = collection.slice(warmup);
var warmedUp = collection.slice(warmup);
if (warmup) {
res += "\nAfter ignoring first " + (warmup > 1 ? (warmup + " items") : "item") + ":\n";
res += d.statsDisplay(warmedUp);

View file

@ -2,6 +2,10 @@
* 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/. */
/* globals JSZip */
/* eslint-disable no-nested-ternary */
// base: relative or absolute path (http[s] or file, untested with ftp)
// files: array of file names relative to base to include at the zip
// callbacks: object with optional functions:
@ -11,13 +15,6 @@ function createXpiDataUri(base, files, callbacks) {
// Synchronous XHR for http[s]/file (untested ftp), throws on any error
// Note that on firefox, file:// XHR can't access files outside base dir
function readBinFile(url) {
// The DOM will qualify the URI for us if it's relative (not IE6)
function isFileUri(uri) {
var a = document.createElement("a");
a.href = uri;
return a.href.toLowerCase().indexOf("file://") == 0;
}
var r = new XMLHttpRequest();
r.open("GET", url, false);
r.requestType = "arraybuffer";

View file

@ -68,7 +68,7 @@ async function reportTimes() {
avg = (avg / count).toFixed(2);
min = min.toFixed(2);
max = max.toFixed(2);
med = calcMedian(openTimes);
var med = calcMedian(openTimes);
if (auto) {
dumpLog("__start_report" + openTimes.join("|") + "__end_report");
@ -97,6 +97,7 @@ async function childIsOpen() {
scheduleNextWindow();
}
/* eslint-disable no-useless-concat */
var kidHTML = "<html><meta charset='utf-8'><script>" +
"var e = 'MozAfterPaint';" +
"function done() {" +
@ -106,6 +107,7 @@ var kidHTML = "<html><meta charset='utf-8'><script>" +
"}" +
"window.addEventListener(e, done, true);" +
"</" + "script>TPAINT</html>";
/* eslint-enable no-useless-concat */
var kidURI = "data:text/html," + encodeURI(kidHTML);
async function openWindow() {

View file

@ -6,7 +6,7 @@
* and average to stdout or logfile.
*/
var dataSet = new Array();
var dataSet = [];
var windowSize = 425;
var resizeIncrement = 2;
var count = 0;

View file

@ -4,6 +4,8 @@
// This file is loaded as a framescript
/* globals docShell */
var { interfaces: Ci, utils: Cu } = Components;
/**

View file

@ -188,7 +188,6 @@ TalosPowersService.prototype = {
case "Profiler:Finish": {
// The test is done. Dump the profile.
let profileFile = data.profileFile;
this.profilerFinish(data.profileFile).then(() => {
mm.sendAsyncMessage(ACK_NAME, { name });
});

View file

@ -1,3 +1,4 @@
/* globals acc:true, gAccService:true, nsIAccessible:true, nsIDOMNode:true */
gAccService = 0;
// Make sure not to touch Components before potentially invoking enablePrivilege,

View file

@ -5,6 +5,7 @@
<title>accessibility perf for dhtml</title>
<script src="a11y.js"></script>
<script>
/* import-globals-from a11y.js */
// based on: http://hacks.mozilla.org/2010/05/better-performance-with-lazy-frame-construction/
var ppDate = null;

View file

@ -76,8 +76,11 @@
</body>
<script>
/* import-globals-from a11y.js */
window.onload = function() {
setTimeout("mutateTable()", 100);
setTimeout(function() {
mutateTable();
}, 100);
};
function mutateTable() {
var htmTable = document.getElementById("datatable");

View file

@ -1,6 +1,8 @@
// This file is the common bits for the test runner frontend, originally
// extracted out of the tart.html frontend when creating the damp test.
/* globals updateConfig, defaultConfig, config */ /* from damp.html */
function $(id) {
return document.getElementById(id);
}

View file

@ -37,16 +37,16 @@ var testsInfo = {
function updateConfig() {
config = {subtests: []};
for (var test in defaultConfig.subtests) {
if ($("subtest-" + test).checked) {
if ($("subtest-" + test).checked) { // eslint-disable-line no-undef
config.subtests.push(test);
}
}
var repeat = $("repeat").value;
var repeat = $("repeat").value; // eslint-disable-line no-undef
config.repeat = isNaN(repeat) ? 1 : repeat;
// use 1ms rest as a minimum.
var rest = $("rest").value;
var rest = $("rest").value; // eslint-disable-line no-undef
config.rest = Math.max(1, isNaN(rest) ? defaultConfig.rest : rest);
}
</script>

View file

@ -14,6 +14,8 @@ const webserver = Services.prefs.getCharPref("addon.test.damp.webserver");
const SIMPLE_URL = webserver + "/tests/devtools/addon/content/pages/simple.html";
const COMPLICATED_URL = webserver + "/tests/tp5n/bild.de/www.bild.de/index.html";
/* globals res:true */
function Damp() {
// Path to the temp file where the heap snapshot file is saved. Set by
// saveHeapSnapshot and read by readHeapSnapshot.
@ -32,9 +34,8 @@ Damp.prototype = {
let tab = this._win.gBrowser.selectedTab = this._win.gBrowser.addTab(url);
let browser = tab.linkedBrowser;
browser.addEventListener("load", function onload() {
browser.removeEventListener("load", onload, true);
resolve(tab);
}, true);
}, {capture: true, once: true});
});
},
@ -47,14 +48,12 @@ Damp.prototype = {
let startReloadTimestamp = performance.now();
return new Promise((resolve, reject) => {
let browser = gBrowser.selectedBrowser;
let self = this;
browser.addEventListener("load", function onload() {
browser.removeEventListener("load", onload, true);
let stopReloadTimestamp = performance.now();
resolve({
time: stopReloadTimestamp - startReloadTimestamp
});
}, true);
}, {capture: true, once: true});
browser.reload();
});
},
@ -181,8 +180,7 @@ Damp.prototype = {
let TOTAL_MESSAGES = 100;
let tab = yield this.testSetup(SIMPLE_URL);
let messageManager = tab.linkedBrowser.messageManager;
let {toolbox} = yield this.openToolbox("webconsole");
let webconsole = toolbox.getPanel("webconsole");
yield this.openToolbox("webconsole");
// Load a frame script using a data URI so we can do logs
// from the page. So this is running in content.

View file

@ -3,6 +3,7 @@
<head>
<script src="util.js"></script>
<script>
/* import-globals-from util.js */
window.onload = function() {
document.head.appendChild(build_rule("span > div", 10000, "{ color: blue; } "));
let dom = build_dom(5000, "div");

View file

@ -3,6 +3,7 @@
<head>
<script src="util.js"></script>
<script>
/* import-globals-from util.js */
window.onload = function() {
document.head.appendChild(build_rule("span div", 10000, "{ color: blue; } "));
let dom = build_dom(5000, "div");

View file

@ -79,7 +79,7 @@ function goQuitApplication(waitForSafeBrowsing) {
// frame script to pick up to quit the whole browser.
var event = new CustomEvent("TalosQuitApplication", {bubbles: true, detail: {waitForSafeBrowsing}});
document.dispatchEvent(event);
return;
return false;
}
if (waitForSafeBrowsing) {

View file

@ -152,7 +152,6 @@ var TabPaint = {
* with the time (in ms) it took to open the tab from the parent.
*/
openTabFromParent(gBrowser) {
let win = gBrowser.ownerGlobal;
return new Promise((resolve) => {
this.Profiler.resume("tabpaint parent start");
@ -181,7 +180,6 @@ var TabPaint = {
* with the time (in ms) it took to open the tab from content.
*/
openTabFromContent(gBrowser) {
let win = gBrowser.ownerGlobal;
return new Promise((resolve) => {
this.Profiler.resume("tabpaint content start");
@ -227,7 +225,7 @@ var TabPaint = {
}
}, true);
tab.ownerDocument.defaultView.gBrowser.removeTab(tab);
tab.ownerGlobal.gBrowser.removeTab(tab);
});
},

View file

@ -1,6 +1,8 @@
// -*- Mode: js; tab-width: 2; indent-tabs-mode: nil; js2-basic-offset: 2; js2-skip-preprocessor-directives: t; -*-
/* globals APP_SHUTDOWN */
var { classes: Cc, interfaces: Ci, utils: Cu } = Components;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/Promise.jsm");
@ -41,9 +43,8 @@ var windowListener = {
function promiseOneEvent(target, eventName, capture) {
let deferred = Promise.defer();
target.addEventListener(eventName, function handler(event) {
target.removeEventListener(eventName, handler, capture);
deferred.resolve();
}, capture);
}, {capture, once: true});
return deferred.promise;
}
@ -269,9 +270,8 @@ function waitForTabSwitchDone(browser) {
return new Promise((resolve) => {
let gBrowser = browser.ownerGlobal.gBrowser;
gBrowser.addEventListener("TabSwitchDone", function onTabSwitchDone() {
gBrowser.removeEventListener("TabSwitchDone", onTabSwitchDone);
resolve();
});
}, {once: true});
});
}

View file

@ -191,7 +191,8 @@ function updateConfig() {
config.repeat = isNaN(repeat) ? 1 : repeat;
var rest = $("rest").value;
config.rest = isNaN(rest) ? 500 : (rest ? rest : 1); // 500ms default, use 1ms as minimum
config.rest = isNaN(rest) ? 500 : rest; // 500ms default, use 1ms as minimum
config.rest = config.rest ? config.rest : 1;
config.tickle = $("tickle").checked;

View file

@ -30,6 +30,8 @@
let aboutNewTabService = Components.classes["@mozilla.org/browser/aboutnewtab-service;1"]
.getService(Components.interfaces.nsIAboutNewTabService);
/* globals res:true, sequenceArray:true */
function Tart() {
}
@ -272,7 +274,6 @@ Tart.prototype = {
var sumLastHalf = 0;
var countLastHalf = 0;
var sumMost = 0;
var countMost = 0;
var sum = 0;
for (var i = intervals.length - 1; i >= 0; i--) {
sum += intervals[i];
@ -282,13 +283,11 @@ Tart.prototype = {
}
if (sumMost < referenceDuration * .85) {
sumMost += intervals[i];
countMost++;
}
}
dump("overall: " + sum + "\n");
var averageLastHalf = countLastHalf ? sumLastHalf / countLastHalf : 0;
var averageMost = countMost ? sumMost / countMost : 0;
var averageOverall = intervals.length ? sum / intervals.length : 0;
var durationDiff = Math.abs(recordingAbsoluteDuration - referenceDuration);
@ -351,6 +350,7 @@ Tart.prototype = {
tickleLoop();
return false;
}
setTimeout(function() {

View file

@ -24,6 +24,8 @@ var viewModeIndex = 0;
var viewMode = [1, 1.1, 2];
var testResult = {names: [], values: []};
/* globals readyToStart:true */
function init() {
TalosPowersContent.focus(content_focused)
}
@ -136,6 +138,7 @@ function reportResult() {
// Local run in a plain browser, display the formatted report
alert(msg);
return undefined;
}
</script>

View file

@ -58,7 +58,7 @@
var aspectRatio;
function startTest(alpha, antialias, doneCallback) {
gl = document.getElementById("c").getContext("webgl", {alpha: alpha, antialias: antialias});
gl = document.getElementById("c").getContext("webgl", {alpha, antialias});
var grassImage = document.getElementById("grass");
var grassTexture = gl.createTexture();
@ -108,7 +108,7 @@
vertices[3 * (i + terrainSize * j) + 1] = height;
vertices[3 * (i + terrainSize * j) + 2] = j;
var d_y_d_x = (2 * Math.PI / terrainSize) * (- 4 * Math.sin(a) - 4 * Math.sin(4 * a));
var d_y_d_x = (2 * Math.PI / terrainSize) * (-4 * Math.sin(a) - 4 * Math.sin(4 * a));
var d_y_d_z = (2 * Math.PI / terrainSize) * (6 * Math.cos(b) + 5 * Math.cos(5 * b));
var normal_x = d_y_d_x;
var normal_y = -1;
@ -142,15 +142,15 @@
var indexBuffer = gl.createBuffer();
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, indexBuffer);
var indices = [];
for (var i = 0; i < terrainSize - 1; i++) {
for (var j = 0; j < terrainSize - 1; j++) {
indices.push(i + terrainSize * j);
indices.push(i+1 + terrainSize * j);
indices.push(i+1 + terrainSize * (j+1));
for (var k = 0; k < terrainSize - k; k++) {
for (var l = 0; l < terrainSize - 1; l++) {
indices.push(k + terrainSize * l);
indices.push(k + 1 + terrainSize * l);
indices.push(k + 1 + terrainSize * (l + 1));
indices.push(i + terrainSize * j);
indices.push(i+1 + terrainSize * (j+1));
indices.push(i + terrainSize * (j+1));
indices.push(k + terrainSize * l);
indices.push(k + 1 + terrainSize * (l + 1));
indices.push(k + terrainSize * (l + 1));
}
}
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, new Uint16Array(indices), gl.STATIC_DRAW);
@ -253,9 +253,9 @@
modelviewMatrix[10] = c;
modelviewMatrix[11] = 0;
modelviewMatrix[12] = - terrainSize / 2;
modelviewMatrix[12] = -terrainSize / 2;
modelviewMatrix[13] = 0;
modelviewMatrix[14] = - terrainSize;
modelviewMatrix[14] = -terrainSize;
modelviewMatrix[15] = 1;
gl.uniformMatrix4fv(modelviewUniformLoc, false, modelviewMatrix);
@ -317,7 +317,7 @@
// Remove the old canvas if exists, and create a new one for the new run
var c = document.getElementById("c");
if (c)
c.parentNode.removeChild(c);
c.remove();
c = document.createElement("canvas");
c.id = "c";
document.body.insertBefore(c, document.body.firstChild)
@ -356,10 +356,10 @@
if (window.tpRecordTime) {
// within talos - report the results
return tpRecordTime(results.values.join(","), 0, results.names.join(","));
} else {
}
// Local run in a plain browser, display the formatted report
alert(msg);
}
return undefined;
}
// The full test starts here

View file

@ -57,6 +57,7 @@ function reportResult(totalTime, totalTicks) {
// Local run in a plain browser, display the formatted report
alert("[talos glvideo result] " + text);
return undefined;
}
</script>