--- a/.eslintignore
+++ b/.eslintignore
@@ -79,17 +79,16 @@ devtools/client/canvasdebugger/**
devtools/client/commandline/**
devtools/client/debugger/**
devtools/client/eyedropper/**
devtools/client/framework/**
devtools/client/jsonview/lib/**
devtools/client/memory/**
devtools/client/netmonitor/test/**
devtools/client/netmonitor/har/test/**
-devtools/client/performance/test/**
devtools/client/projecteditor/**
devtools/client/promisedebugger/**
devtools/client/responsivedesign/**
devtools/client/scratchpad/**
devtools/client/shadereditor/**
devtools/client/shared/*.jsm
devtools/client/shared/webgl-utils.js
devtools/client/shared/developer-toolbar.js
--- a/devtools/client/performance/test/browser_perf-button-states.js
+++ b/devtools/client/performance/test/browser_perf-button-states.js
@@ -23,17 +23,18 @@ add_task(function* () {
"The record button should not be checked yet.");
ok(!recordButton.hasAttribute("locked"),
"The record button should not be locked yet.");
let uiStartClick = once(PerformanceView, EVENTS.UI_START_RECORDING);
let recordingStarted = once(PerformanceController, EVENTS.RECORDING_STATE_CHANGE, {
expectedArgs: { "1": "recording-started" }
});
- let backendStartReady = once(PerformanceController, EVENTS.BACKEND_READY_AFTER_RECORDING_START);
+ let backendStartReady = once(PerformanceController,
+ EVENTS.BACKEND_READY_AFTER_RECORDING_START);
let uiStateRecording = once(PerformanceView, EVENTS.UI_STATE_CHANGED, {
expectedArgs: { "1": "recording" }
});
click(recordButton);
yield uiStartClick;
ok(recordButton.hasAttribute("checked"),
@@ -50,17 +51,18 @@ add_task(function* () {
yield backendStartReady;
yield uiStateRecording;
let uiStopClick = once(PerformanceView, EVENTS.UI_STOP_RECORDING);
let recordingStopped = once(PerformanceController, EVENTS.RECORDING_STATE_CHANGE, {
expectedArgs: { "1": "recording-stopped" }
});
- let backendStopReady = once(PerformanceController, EVENTS.BACKEND_READY_AFTER_RECORDING_STOP);
+ let backendStopReady = once(PerformanceController,
+ EVENTS.BACKEND_READY_AFTER_RECORDING_STOP);
let uiStateRecorded = once(PerformanceView, EVENTS.UI_STATE_CHANGED, {
expectedArgs: { "1": "recorded" }
});
click(recordButton);
yield uiStopClick;
yield recordingStopped;
--- a/devtools/client/performance/test/browser_perf-calltree-js-categories.js
+++ b/devtools/client/performance/test/browser_perf-calltree-js-categories.js
@@ -21,17 +21,18 @@ add_task(function* () {
});
let { EVENTS, $, $$, DetailsView, JsCallTreeView } = panel.panelWin;
// Enable platform data to show the categories in the tree.
Services.prefs.setBoolPref(UI_SHOW_PLATFORM_DATA_PREF, true);
yield startRecording(panel);
- yield busyWait(100); // To show the `Gecko` category in the tree.
+ // To show the `Gecko` category in the tree.
+ yield busyWait(100);
yield stopRecording(panel);
let rendered = once(JsCallTreeView, EVENTS.UI_JS_CALL_TREE_RENDERED);
yield DetailsView.selectView("js-calltree");
yield rendered;
is($(".call-tree-cells-container").hasAttribute("categories-hidden"), false,
"The call tree cells container should show the categories now.");
--- a/devtools/client/performance/test/browser_perf-calltree-js-columns.js
+++ b/devtools/client/performance/test/browser_perf-calltree-js-columns.js
@@ -20,17 +20,18 @@ add_task(function* () {
});
let { EVENTS, $, $$, DetailsView, JsCallTreeView } = panel.panelWin;
// Enable platform data to show the platform functions in the tree.
Services.prefs.setBoolPref(UI_SHOW_PLATFORM_DATA_PREF, true);
yield startRecording(panel);
- yield busyWait(100); // To show the `busyWait` function in the tree.
+ // To show the `busyWait` function in the tree.
+ yield busyWait(100);
yield stopRecording(panel);
let rendered = once(JsCallTreeView, EVENTS.UI_JS_CALL_TREE_RENDERED);
yield DetailsView.selectView("js-calltree");
yield rendered;
ok(DetailsView.isViewSelected(JsCallTreeView), "The call tree is now selected.");
--- a/devtools/client/performance/test/browser_perf-console-record-01.js
+++ b/devtools/client/performance/test/browser_perf-console-record-01.js
@@ -5,20 +5,19 @@
/**
* Tests if the profiler is populated by console recordings that have finished
* before it was opened.
*/
const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
const { initPerformanceInTab, initConsoleInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
const { waitUntil } = require("devtools/client/performance/test/helpers/wait-utils");
-const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
- let { target, toolbox, console } = yield initConsoleInNewTab({
+ let { target, console } = yield initConsoleInNewTab({
url: SIMPLE_URL,
win: window
});
yield console.profile("rust");
yield console.profileEnd("rust");
let { panel } = yield initPerformanceInTab({ tab: target.tab });
--- a/devtools/client/performance/test/browser_perf-console-record-07.js
+++ b/devtools/client/performance/test/browser_perf-console-record-07.js
@@ -81,25 +81,25 @@ add_task(function* () {
yield console.profileEnd();
yield stopped;
recordings = PerformanceController.getRecordings();
is(recordings.length, 3, "Three recordings found in the performance panel.");
is(RecordingsView.selectedItem.attachment, recordings[0],
"The first console recording should still be selected.");
- is(recordings[0].isRecording(), true,
- "The not most recent recording should not stop when calling console.profileEnd with no args.");
- is(recordings[1].isRecording(), true,
- "The not most recent recording should not stop when calling console.profileEnd with no args.");
- is(recordings[2].isRecording(), false,
- "Only the most recent recording should stop when calling console.profileEnd with no args.");
+ is(recordings[0].isRecording(), true, "The not most recent recording should not stop " +
+ "when calling console.profileEnd with no args.");
+ is(recordings[1].isRecording(), true, "The not most recent recording should not stop " +
+ "when calling console.profileEnd with no args.");
+ is(recordings[2].isRecording(), false, "Only the most recent recording should stop " +
+ "when calling console.profileEnd with no args.");
info("Trying to `profileEnd` a non-existent console recording.");
- /* yield */ console.profileEnd("fxos");
+ console.profileEnd("fxos");
yield idleWait(1000);
recordings = PerformanceController.getRecordings();
is(recordings.length, 3, "Three recordings found in the performance panel.");
is(RecordingsView.selectedItem.attachment, recordings[0],
"The first console recording should still be selected.");
is(recordings[0].isRecording(), true,
@@ -149,15 +149,16 @@ add_task(function* () {
is(recordings[0].isRecording(), false,
"All recordings should now be ended. (1)");
is(recordings[1].isRecording(), false,
"All recordings should now be ended. (2)");
is(recordings[2].isRecording(), false,
"All recordings should now be ended. (3)");
info("Trying to `profileEnd` with no pending recordings.");
- /* yield */ console.profileEnd();
+ console.profileEnd();
yield idleWait(1000);
- ok(true, "Calling console.profileEnd() with no argument and no pending recordings does not throw.");
+ ok(true, "Calling console.profileEnd() with no argument and no pending recordings " +
+ "does not throw.");
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_perf-console-record-08.js
+++ b/devtools/client/performance/test/browser_perf-console-record-08.js
@@ -82,29 +82,32 @@ add_task(function* () {
yield stopped;
testRecordings(PerformanceController, [C + R, R + S, C + R, C]);
info("Select last recording...");
let recordingSelected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
RecordingsView.selectedIndex = 3;
yield recordingSelected;
testRecordings(PerformanceController, [C + R, R, C + R, C + S]);
- ok(!OverviewView.isRendering(), "Stop rendering overview when a completed recording is selected.");
+ ok(!OverviewView.isRendering(),
+ "Stop rendering overview when a completed recording is selected.");
info("Stop manual recording...");
yield stopRecording(panel);
testRecordings(PerformanceController, [C + R, S, C + R, C]);
- ok(!OverviewView.isRendering(), "Stop rendering overview when a completed recording is selected.");
+ ok(!OverviewView.isRendering(),
+ "Stop rendering overview when a completed recording is selected.");
info("Select first recording...");
recordingSelected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
RecordingsView.selectedIndex = 0;
yield recordingSelected;
testRecordings(PerformanceController, [C + R + S, 0, C + R, C]);
- ok(OverviewView.isRendering(), "Should be rendering overview a recording in progress is selected.");
+ ok(OverviewView.isRendering(),
+ "Should be rendering overview a recording in progress is selected.");
// Ensure overview is still rendering.
yield times(OverviewView, EVENTS.UI_OVERVIEW_RENDERED, 3, {
expectedArgs: { "1": Constants.FRAMERATE_GRAPH_LOW_RES_INTERVAL }
});
info("Ending console.profileEnd()...");
stopped = waitForRecordingStoppedEvents(panel, {
@@ -115,60 +118,67 @@ add_task(function* () {
skipWaitingForSubview: true,
// the view state won't switch to "recorded" unless the new
// finished recording is selected, which won't happen
skipWaitingForViewState: true,
});
yield console.profileEnd();
yield stopped;
testRecordings(PerformanceController, [C + R + S, 0, C, C]);
- ok(OverviewView.isRendering(), "Should be rendering overview a recording in progress is selected.");
+ ok(OverviewView.isRendering(),
+ "Should be rendering overview a recording in progress is selected.");
// Ensure overview is still rendering.
yield times(OverviewView, EVENTS.UI_OVERVIEW_RENDERED, 3, {
expectedArgs: { "1": Constants.FRAMERATE_GRAPH_LOW_RES_INTERVAL }
});
info("Start one more manual recording...");
yield startRecording(panel);
testRecordings(PerformanceController, [C + R, 0, C, C, R + S]);
- ok(OverviewView.isRendering(), "Should be rendering overview a recording in progress is selected.");
+ ok(OverviewView.isRendering(),
+ "Should be rendering overview a recording in progress is selected.");
// Ensure overview is still rendering.
yield times(OverviewView, EVENTS.UI_OVERVIEW_RENDERED, 3, {
expectedArgs: { "1": Constants.FRAMERATE_GRAPH_LOW_RES_INTERVAL }
});
info("Stop manual recording...");
yield stopRecording(panel);
testRecordings(PerformanceController, [C + R, 0, C, C, S]);
- ok(!OverviewView.isRendering(), "Stop rendering overview when a completed recording is selected.");
+ ok(!OverviewView.isRendering(),
+ "Stop rendering overview when a completed recording is selected.");
info("Ending console.profileEnd()...");
stopped = waitForRecordingStoppedEvents(panel, {
// only emitted for manual recordings
skipWaitingForBackendReady: true,
// only emitted when a finished recording is selected
skipWaitingForOverview: true,
skipWaitingForSubview: true,
// the view state won't switch to "recorded" unless the new
// in-progress recording is selected, which won't happen
skipWaitingForViewState: true,
});
yield console.profileEnd();
yield stopped;
testRecordings(PerformanceController, [C, 0, C, C, S]);
- ok(!OverviewView.isRendering(), "Stop rendering overview when a completed recording is selected.");
+ ok(!OverviewView.isRendering(),
+ "Stop rendering overview when a completed recording is selected.");
yield teardownToolboxAndRemoveTab(panel);
});
-const C = 1; // is console
-const R = 2; // is recording
-const S = 4; // is selected
+// is console
+const C = 1;
+// is recording
+const R = 2;
+// is selected
+const S = 4;
function testRecordings(controller, expected) {
let recordings = controller.getRecordings();
let current = controller.getCurrentRecording();
is(recordings.length, expected.length, "Expected number of recordings.");
recordings.forEach((recording, i) => {
ok(recording.isConsole() == !!(expected[i] & C),
--- a/devtools/client/performance/test/browser_perf-console-record-09.js
+++ b/devtools/client/performance/test/browser_perf-console-record-09.js
@@ -6,17 +6,17 @@
* Tests that an error is not thrown when clearing out the recordings if there's
* an in-progress console profile and that console profiles are not cleared
* if in progress.
*/
const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
const { initPerformanceInTab, initConsoleInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
-const { waitForRecordingStartedEvents, waitForRecordingStoppedEvents } = require("devtools/client/performance/test/helpers/actions");
+const { waitForRecordingStartedEvents } = require("devtools/client/performance/test/helpers/actions");
const { idleWait } = require("devtools/client/performance/test/helpers/wait-utils");
add_task(function* () {
let { target, console } = yield initConsoleInNewTab({
url: SIMPLE_URL,
win: window
});
@@ -46,17 +46,18 @@ add_task(function* () {
is(recordings[0].getLabel(), "", "Correct label in the recording model.");
is(PerformanceController.getCurrentRecording(), recordings[0],
"There current recording should be the first one.");
info("Attempting to end console.profileEnd()...");
yield console.profileEnd();
yield idleWait(1000);
- ok(true, "Stopping an in-progress console profile after clearing recordings does not throw.");
+ ok(true,
+ "Stopping an in-progress console profile after clearing recordings does not throw.");
yield PerformanceController.clearRecordings();
recordings = PerformanceController.getRecordings();
is(recordings.length, 0, "No recordings found");
is(PerformanceController.getCurrentRecording(), null,
"There should be no current recording.");
yield teardownToolboxAndRemoveTab(panel);
--- a/devtools/client/performance/test/browser_perf-details-01-toggle.js
+++ b/devtools/client/performance/test/browser_perf-details-01-toggle.js
@@ -22,33 +22,34 @@ add_task(function* () {
yield startRecording(panel);
yield stopRecording(panel);
info("Checking views on startup.");
checkViews(DetailsView, $, "waterfall");
// Select calltree view.
- let viewChanged = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED, { spreadArgs: true });
+ let viewChanged = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED,
+ { spreadArgs: true });
command($("toolbarbutton[data-view='js-calltree']"));
- let [_, viewName] = yield viewChanged;
+ let [, viewName] = yield viewChanged;
is(viewName, "js-calltree", "UI_DETAILS_VIEW_SELECTED fired with view name");
checkViews(DetailsView, $, "js-calltree");
// Select js flamegraph view.
viewChanged = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED, { spreadArgs: true });
command($("toolbarbutton[data-view='js-flamegraph']"));
- [_, viewName] = yield viewChanged;
+ [, viewName] = yield viewChanged;
is(viewName, "js-flamegraph", "UI_DETAILS_VIEW_SELECTED fired with view name");
checkViews(DetailsView, $, "js-flamegraph");
// Select waterfall view.
viewChanged = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED, { spreadArgs: true });
command($("toolbarbutton[data-view='waterfall']"));
- [_, viewName] = yield viewChanged;
+ [, viewName] = yield viewChanged;
is(viewName, "waterfall", "UI_DETAILS_VIEW_SELECTED fired with view name");
checkViews(DetailsView, $, "waterfall");
yield teardownToolboxAndRemoveTab(panel);
});
function checkViews(DetailsView, $, currentView) {
for (let viewName in DetailsView.components) {
--- a/devtools/client/performance/test/browser_perf-details-02-utility-fun.js
+++ b/devtools/client/performance/test/browser_perf-details-02-utility-fun.js
@@ -12,17 +12,23 @@ const { startRecording, stopRecording }
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, DetailsView, WaterfallView, JsCallTreeView, JsFlameGraphView } = panel.panelWin;
+ let {
+ EVENTS,
+ DetailsView,
+ WaterfallView,
+ JsCallTreeView,
+ JsFlameGraphView
+ } = panel.panelWin;
yield startRecording(panel);
yield stopRecording(panel);
ok(DetailsView.isViewSelected(WaterfallView),
"The waterfall view is selected by default in the details view.");
// Select js calltree view.
--- a/devtools/client/performance/test/browser_perf-details-03-without-allocations.js
+++ b/devtools/client/performance/test/browser_perf-details-03-without-allocations.js
@@ -16,17 +16,25 @@ const { startRecording, stopRecording }
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, $, RecordingsView, DetailsView, WaterfallView, MemoryCallTreeView, MemoryFlameGraphView } = panel.panelWin;
+ let {
+ EVENTS,
+ $,
+ RecordingsView,
+ DetailsView,
+ WaterfallView,
+ MemoryCallTreeView,
+ MemoryFlameGraphView
+ } = panel.panelWin;
let flameBtn = $("toolbarbutton[data-view='memory-flamegraph']");
let callBtn = $("toolbarbutton[data-view='memory-calltree']");
// Disable allocations to prevent recording them.
Services.prefs.setBoolPref(UI_ENABLE_ALLOCATIONS_PREF, false);
yield startRecording(panel);
@@ -71,18 +79,18 @@ add_task(function* () {
// Select the first recording with no memory data.
selected = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED);
rendered = once(WaterfallView, EVENTS.UI_WATERFALL_RENDERED);
RecordingsView.selectedIndex = 0;
yield selected;
yield rendered;
- ok(DetailsView.isViewSelected(WaterfallView),
- "The waterfall view is now selected when switching back to a recording that does not have memory data.");
+ ok(DetailsView.isViewSelected(WaterfallView), "The waterfall view is now selected " +
+ "when switching back to a recording that does not have memory data.");
is(callBtn.hidden, true,
"The `memory-calltree` button is hidden when recording has no memory data.");
is(flameBtn.hidden, true,
"The `memory-flamegraph` button is hidden when recording has no memory data.");
// Go back to the recording with memory data.
rendered = once(WaterfallView, EVENTS.UI_WATERFALL_RENDERED);
@@ -98,22 +106,22 @@ add_task(function* () {
"The `memory-flamegraph` button is shown when recording has memory data.");
selected = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED);
rendered = once(MemoryCallTreeView, EVENTS.UI_MEMORY_CALL_TREE_RENDERED);
DetailsView.selectView("memory-calltree");
yield selected;
yield rendered;
- ok(DetailsView.isViewSelected(MemoryCallTreeView),
- "The memory call tree view can be selected again after going back to the view with memory data.");
+ ok(DetailsView.isViewSelected(MemoryCallTreeView), "The memory call tree view can be " +
+ "selected again after going back to the view with memory data.");
selected = once(DetailsView, EVENTS.UI_DETAILS_VIEW_SELECTED);
rendered = once(MemoryFlameGraphView, EVENTS.UI_MEMORY_FLAMEGRAPH_RENDERED);
DetailsView.selectView("memory-flamegraph");
yield selected;
yield rendered;
- ok(DetailsView.isViewSelected(MemoryFlameGraphView),
- "The memory flamegraph view can be selected again after going back to the view with memory data.");
+ ok(DetailsView.isViewSelected(MemoryFlameGraphView), "The memory flamegraph view can " +
+ "be selected again after going back to the view with memory data.");
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_perf-details-04-toolbar-buttons.js
+++ b/devtools/client/performance/test/browser_perf-details-04-toolbar-buttons.js
@@ -13,17 +13,23 @@ const { startRecording, stopRecording }
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, $, PerformanceController, RecordingsView, WaterfallView } = panel.panelWin;
+ let {
+ EVENTS,
+ $,
+ PerformanceController,
+ RecordingsView,
+ WaterfallView
+ } = panel.panelWin;
let waterfallBtn = $("toolbarbutton[data-view='waterfall']");
let jsFlameBtn = $("toolbarbutton[data-view='js-flamegraph']");
let jsCallBtn = $("toolbarbutton[data-view='js-calltree']");
let memFlameBtn = $("toolbarbutton[data-view='memory-flamegraph']");
let memCallBtn = $("toolbarbutton[data-view='memory-calltree']");
is(waterfallBtn.hidden, true,
--- a/devtools/client/performance/test/browser_perf-details-05-preserve-view.js
+++ b/devtools/client/performance/test/browser_perf-details-05-preserve-view.js
@@ -27,17 +27,18 @@ add_task(function* () {
let rendered = once(JsCallTreeView, EVENTS.UI_JS_CALL_TREE_RENDERED);
yield DetailsView.selectView("js-calltree");
yield selected;
yield rendered;
ok(DetailsView.isViewSelected(JsCallTreeView),
"The js calltree view is now selected in the details view.");
- let cleared = once(PerformanceController, EVENTS.RECORDING_SELECTED, { expectedArgs: { "1": null } });
+ let cleared = once(PerformanceController, EVENTS.RECORDING_SELECTED,
+ { expectedArgs: { "1": null } });
yield PerformanceController.clearRecordings();
yield cleared;
yield startRecording(panel);
yield stopRecording(panel, {
expectedViewClass: "JsCallTreeView",
expectedViewEvent: "UI_JS_CALL_TREE_RENDERED"
});
--- a/devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js
+++ b/devtools/client/performance/test/browser_perf-details-06-rerender-on-selection.js
@@ -14,17 +14,24 @@ const { once } = require("devtools/clien
const { scrollCanvasGraph, HORIZONTAL_AXIS } = require("devtools/client/performance/test/helpers/input-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, OverviewView, DetailsView, WaterfallView, JsCallTreeView, JsFlameGraphView } = panel.panelWin;
+ let {
+ EVENTS,
+ OverviewView,
+ DetailsView,
+ WaterfallView,
+ JsCallTreeView,
+ JsFlameGraphView
+ } = panel.panelWin;
yield startRecording(panel);
yield stopRecording(panel);
let waterfallRendered = once(WaterfallView, EVENTS.UI_WATERFALL_RENDERED);
OverviewView.setTimeInterval({ startTime: 10, endTime: 20 });
yield waterfallRendered;
--- a/devtools/client/performance/test/browser_perf-details-07-bleed-events.js
+++ b/devtools/client/performance/test/browser_perf-details-07-bleed-events.js
@@ -12,17 +12,17 @@ const { startRecording, stopRecording }
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, DetailsView, WaterfallView, JsCallTreeView } = panel.panelWin;
+ let { EVENTS, DetailsView, JsCallTreeView } = panel.panelWin;
yield startRecording(panel);
yield stopRecording(panel);
// The waterfall should render by default, and we want to make
// sure that the render events don't bleed between detail views
// so test that's the case after both views have been created.
let callTreeRendered = once(JsCallTreeView, EVENTS.UI_JS_CALL_TREE_RENDERED);
--- a/devtools/client/performance/test/browser_perf-details-render-00-waterfall.js
+++ b/devtools/client/performance/test/browser_perf-details-render-00-waterfall.js
@@ -4,36 +4,37 @@
/**
* Tests that the waterfall view renders content after recording.
*/
const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
-const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, DetailsView, WaterfallView } = panel.panelWin;
+ let { DetailsView, WaterfallView } = panel.panelWin;
yield startRecording(panel);
- yield stopRecording(panel); // Already waits for EVENTS.UI_WATERFALL_RENDERED.
+ // Already waits for EVENTS.UI_WATERFALL_RENDERED.
+ yield stopRecording(panel);
ok(DetailsView.isViewSelected(WaterfallView),
"The waterfall view is selected by default in the details view.");
ok(true, "WaterfallView rendered after recording is stopped.");
yield startRecording(panel);
- yield stopRecording(panel); // Already waits for EVENTS.UI_WATERFALL_RENDERED.
+ // Already waits for EVENTS.UI_WATERFALL_RENDERED.
+ yield stopRecording(panel);
ok(DetailsView.isViewSelected(WaterfallView),
"The waterfall view is still selected in the details view.");
ok(true, "WaterfallView rendered again after recording completed a second time.");
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_perf-details-render-04-memory-flamegraph.js
+++ b/devtools/client/performance/test/browser_perf-details-render-04-memory-flamegraph.js
@@ -33,12 +33,13 @@ add_task(function* () {
ok(true, "MemoryFlameGraphView rendered after recording is stopped.");
yield startRecording(panel);
yield stopRecording(panel, {
expectedViewClass: "MemoryFlameGraphView",
expectedViewEvent: "UI_MEMORY_FLAMEGRAPH_RENDERED"
});
- ok(true, "MemoryFlameGraphView rendered again after recording completed a second time.");
+ ok(true,
+ "MemoryFlameGraphView rendered again after recording completed a second time.");
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_perf-gc-snap.js
+++ b/devtools/client/performance/test/browser_perf-gc-snap.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests that the marker details on GC markers displays allocation
* buttons and snaps to the correct range
*/
function* spawnTest() {
let { panel } = yield initPerformance(ALLOCS_URL);
let { $, $$, EVENTS, PerformanceController, OverviewView, DetailsView, WaterfallView, MemoryCallTreeView } = panel.panelWin;
let EPSILON = 0.00001;
@@ -137,8 +138,9 @@ var GC_MARKERS = [
{ causeName: "SET_NEW_DOCUMENT", cycle: 3 },
{ causeName: "SET_NEW_DOCUMENT", cycle: 3 },
].map((marker, i) => {
marker.name = "GarbageCollection";
marker.start = 50 + (i * 10);
marker.end = marker.start + 9;
return marker;
});
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-highlighted.js
+++ b/devtools/client/performance/test/browser_perf-highlighted.js
@@ -18,18 +18,18 @@ add_task(function* () {
win: window
});
let tab = toolbox.doc.getElementById("toolbox-tab-performance");
yield console.profile("rust");
yield waitUntil(() => tab.hasAttribute("highlighted"));
- ok(tab.hasAttribute("highlighted"),
- "Performance tab is highlighted during recording from console.profile when unloaded.");
+ ok(tab.hasAttribute("highlighted"), "Performance tab is highlighted during recording " +
+ "from console.profile when unloaded.");
yield console.profileEnd("rust");
yield waitUntil(() => !tab.hasAttribute("highlighted"));
ok(!tab.hasAttribute("highlighted"),
"Performance tab is no longer highlighted when console.profile recording finishes.");
let { panel } = yield initPerformanceInTab({ tab: target.tab });
--- a/devtools/client/performance/test/browser_perf-marker-details.js
+++ b/devtools/client/performance/test/browser_perf-marker-details.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests if the Marker Details view renders all properties expected
* for each marker.
*/
function* spawnTest() {
let { target, panel } = yield initPerformance(MARKERS_URL);
let { $, $$, EVENTS, PerformanceController, OverviewView, WaterfallView } = panel.panelWin;
@@ -137,8 +138,9 @@ function shouldHaveStack($, type, marker
ok($(`#waterfall-details .marker-details-stack[type=${type}]`), `${marker.name} has a stack: ${type}`);
}
function shouldHaveLabel($, name, value, marker) {
let $name = $(`#waterfall-details .marker-details-labelcontainer .marker-details-labelname[value="${name}"]`);
let $value = $name.parentNode.querySelector(".marker-details-labelvalue");
is($value.getAttribute("value"), value, `${marker.name} has correct label for ${name}:${value}`);
}
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-options-enable-framerate-02.js
+++ b/devtools/client/performance/test/browser_perf-options-enable-framerate-02.js
@@ -13,17 +13,17 @@ const { initPerformanceInNewTab, teardow
const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { $, PerformanceController } = panel.panelWin;
+ let { PerformanceController } = panel.panelWin;
// Test starting without framerate, and stopping with it.
Services.prefs.setBoolPref(UI_ENABLE_FRAMERATE_PREF, false);
yield startRecording(panel);
Services.prefs.setBoolPref(UI_ENABLE_FRAMERATE_PREF, true);
yield stopRecording(panel);
--- a/devtools/client/performance/test/browser_perf-options-enable-memory-01.js
+++ b/devtools/client/performance/test/browser_perf-options-enable-memory-01.js
@@ -24,35 +24,35 @@ add_task(function* () {
// Disable memory to test.
Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, false);
yield startRecording(panel);
yield stopRecording(panel);
is(PerformanceController.getCurrentRecording().getConfiguration().withMemory, false,
"PerformanceFront started without memory recording.");
- is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations, false,
- "PerformanceFront started without allocations recording.");
+ is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations,
+ false, "PerformanceFront started without allocations recording.");
ok(!isVisible($("#memory-overview")),
"The memory graph is hidden when memory disabled.");
// Re-enable memory.
Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, true);
is(PerformanceController.getCurrentRecording().getConfiguration().withMemory, false,
"PerformanceFront still marked without memory recording.");
- is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations, false,
- "PerformanceFront still marked without allocations recording.");
- ok(!isVisible($("#memory-overview")),
- "memory graph is still hidden after enabling if recording did not start recording memory");
+ is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations,
+ false, "PerformanceFront still marked without allocations recording.");
+ ok(!isVisible($("#memory-overview")), "memory graph is still hidden after enabling " +
+ "if recording did not start recording memory");
yield startRecording(panel);
yield stopRecording(panel);
is(PerformanceController.getCurrentRecording().getConfiguration().withMemory, true,
"PerformanceFront started with memory recording.");
- is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations, false,
- "PerformanceFront did not record with allocations.");
+ is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations,
+ false, "PerformanceFront did not record with allocations.");
ok(isVisible($("#memory-overview")),
"The memory graph is not hidden when memory enabled before recording.");
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_perf-options-enable-memory-02.js
+++ b/devtools/client/performance/test/browser_perf-options-enable-memory-02.js
@@ -13,35 +13,37 @@ const { initPerformanceInNewTab, teardow
const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { $, PerformanceController } = panel.panelWin;
+ let { PerformanceController } = panel.panelWin;
// Test starting without memory, and stopping with it.
Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, false);
yield startRecording(panel);
Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, true);
yield stopRecording(panel);
is(PerformanceController.getCurrentRecording().getConfiguration().withMemory, false,
"The recording finished without tracking memory.");
- is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations, false,
+ is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations,
+ false,
"The recording finished without tracking allocations.");
// Test starting with memory, and stopping without it.
yield startRecording(panel);
Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, false);
yield stopRecording(panel);
is(PerformanceController.getCurrentRecording().getConfiguration().withMemory, true,
"The recording finished with tracking memory.");
- is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations, false,
+ is(PerformanceController.getCurrentRecording().getConfiguration().withAllocations,
+ false,
"The recording still is not recording allocations.");
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_perf-options-flatten-tree-recursion-01.js
+++ b/devtools/client/performance/test/browser_perf-options-flatten-tree-recursion-01.js
@@ -13,17 +13,23 @@ const { startRecording, stopRecording }
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, PerformanceController, DetailsView, JsFlameGraphView, FlameGraphUtils } = panel.panelWin;
+ let {
+ EVENTS,
+ PerformanceController,
+ DetailsView,
+ JsFlameGraphView,
+ FlameGraphUtils
+ } = panel.panelWin;
Services.prefs.setBoolPref(UI_FLATTEN_RECURSION_PREF, true);
yield startRecording(panel);
yield stopRecording(panel);
let rendered = once(JsFlameGraphView, EVENTS.UI_JS_FLAMEGRAPH_RENDERED);
yield DetailsView.selectView("js-flamegraph");
--- a/devtools/client/performance/test/browser_perf-options-flatten-tree-recursion-02.js
+++ b/devtools/client/performance/test/browser_perf-options-flatten-tree-recursion-02.js
@@ -1,29 +1,37 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
- * Tests that the memory flamegraphs get rerendered when toggling `flatten-tree-recursion`.
+ * Tests that the memory flamegraphs get rerendered when toggling
+ * `flatten-tree-recursion`.
*/
const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
const { UI_FLATTEN_RECURSION_PREF, UI_ENABLE_ALLOCATIONS_PREF } = require("devtools/client/performance/test/helpers/prefs");
const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, PerformanceController, DetailsView, MemoryFlameGraphView, RecordingUtils, FlameGraphUtils } = panel.panelWin;
+ let {
+ EVENTS,
+ PerformanceController,
+ DetailsView,
+ MemoryFlameGraphView,
+ RecordingUtils,
+ FlameGraphUtils
+ } = panel.panelWin;
// Enable memory to test
Services.prefs.setBoolPref(UI_ENABLE_ALLOCATIONS_PREF, true);
Services.prefs.setBoolPref(UI_FLATTEN_RECURSION_PREF, true);
yield startRecording(panel);
yield stopRecording(panel);
--- a/devtools/client/performance/test/browser_perf-options-invert-flame-graph-02.js
+++ b/devtools/client/performance/test/browser_perf-options-invert-flame-graph-02.js
@@ -1,14 +1,15 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
- * Tests that the memory flamegraphs views get rerendered when toggling `invert-flame-graph`.
+ * Tests that the memory flamegraphs views get rerendered when toggling
+ * `invert-flame-graph`.
*/
const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
const { UI_ENABLE_ALLOCATIONS_PREF, UI_INVERT_FLAME_PREF } = require("devtools/client/performance/test/helpers/prefs");
const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
const { once } = require("devtools/client/performance/test/helpers/event-utils");
--- a/devtools/client/performance/test/browser_perf-options-show-jit-optimizations.js
+++ b/devtools/client/performance/test/browser_perf-options-show-jit-optimizations.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
// Bug 1235788, increase time out of this test
requestLongerTimeout(2);
/**
* Tests that the JIT Optimizations view renders optimization data
* if on, and displays selected frames on focus.
*/
@@ -251,8 +252,9 @@ gThread.frameTable.data.forEach((frame)
frame[OPTIMIZATIONS_SLOT] = gRawSite2;
break;
case "B_O3":
frame[LOCATION_SLOT] = uniqStr("B (http://foo/bar/boo:10)");
frame[OPTIMIZATIONS_SLOT] = gRawSite3;
break;
}
});
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-overview-render-04.js
+++ b/devtools/client/performance/test/browser_perf-overview-render-04.js
@@ -44,26 +44,30 @@ add_task(function* () {
yield stopRecording(panel);
is(isVisible($("#overview-pane")), true, "Overview graphs no longer hidden.");
is(updated, 1, "Overview graphs rendered upon completion.");
yield startRecording(panel, { skipWaitingForOverview: true });
- is(isVisible($("#overview-pane")), false, "Overview graphs hidden again when starting new recording.");
+ is(isVisible($("#overview-pane")), false,
+ "Overview graphs hidden again when starting new recording.");
is(updated, 1, "Overview graphs have not been updated again.");
RecordingsView.selectedIndex = 0;
- is(isVisible($("#overview-pane")), true, "Overview graphs no longer hidden when switching back to complete recording.");
+ is(isVisible($("#overview-pane")), true,
+ "Overview graphs no longer hidden when switching back to complete recording.");
is(updated, 1, "Overview graphs have not been updated again.");
RecordingsView.selectedIndex = 1;
- is(isVisible($("#overview-pane")), false, "Overview graphs hidden again when going back to inprogress recording.");
+ is(isVisible($("#overview-pane")), false,
+ "Overview graphs hidden again when going back to inprogress recording.");
is(updated, 1, "Overview graphs have not been updated again.");
yield stopRecording(panel);
- is(isVisible($("#overview-pane")), true, "overview graphs no longer hidden when recording finishes");
+ is(isVisible($("#overview-pane")), true,
+ "overview graphs no longer hidden when recording finishes");
is(updated, 2, "Overview graphs rendered again upon completion.");
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_perf-overview-selection-01.js
+++ b/devtools/client/performance/test/browser_perf-overview-selection-01.js
@@ -5,17 +5,16 @@
/**
* Tests that events are fired from selection manipulation.
*/
const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
const { once } = require("devtools/client/performance/test/helpers/event-utils");
-const { idleWait } = require("devtools/client/performance/test/helpers/wait-utils");
const { dragStartCanvasGraph, dragStopCanvasGraph, clickCanvasGraph } = require("devtools/client/performance/test/helpers/input-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
@@ -24,24 +23,26 @@ add_task(function* () {
yield startRecording(panel);
yield stopRecording(panel);
let duration = PerformanceController.getCurrentRecording().getDuration();
let graph = OverviewView.graphs.get("timeline");
// Select the first half of the graph.
- let rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED, { spreadArgs: true });
+ let rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED,
+ { spreadArgs: true });
dragStartCanvasGraph(graph, { x: 0 });
- let [_, { startTime, endTime }] = yield rangeSelected;
+ let [, { startTime, endTime }] = yield rangeSelected;
is(endTime, duration, "The selected range is the entire graph, for now.");
- rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED, { spreadArgs: true });
+ rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED,
+ { spreadArgs: true });
dragStopCanvasGraph(graph, { x: graph.width / 2 });
- [_, { startTime, endTime }] = yield rangeSelected;
+ [, { startTime, endTime }] = yield rangeSelected;
is(endTime, duration / 2, "The selected range is half of the graph.");
is(graph.hasSelection(), true,
"A selection exists on the graph.");
is(startTime, 0,
"The UI_OVERVIEW_RANGE_SELECTED event fired with 0 as a `startTime`.");
is(endTime, duration / 2,
`The UI_OVERVIEW_RANGE_SELECTED event fired with ${duration / 2} as \`endTime\`.`);
@@ -49,19 +50,20 @@ add_task(function* () {
let mapStart = () => 0;
let mapEnd = () => duration;
let actual = graph.getMappedSelection({ mapStart, mapEnd });
is(actual.min, 0, "Graph selection starts at 0.");
is(actual.max, duration / 2, `Graph selection ends at ${duration / 2}.`);
// Listen to deselection.
- rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED, { spreadArgs: true });
+ rangeSelected = once(OverviewView, EVENTS.UI_OVERVIEW_RANGE_SELECTED,
+ { spreadArgs: true });
clickCanvasGraph(graph, { x: 3 * graph.width / 4 });
- [_, { startTime, endTime }] = yield rangeSelected;
+ [, { startTime, endTime }] = yield rangeSelected;
is(graph.hasSelection(), false,
"A selection no longer on the graph.");
is(startTime, 0,
"The UI_OVERVIEW_RANGE_SELECTED event fired with 0 as a `startTime`.");
is(endTime, duration,
"The UI_OVERVIEW_RANGE_SELECTED event fired with duration as `endTime`.");
--- a/devtools/client/performance/test/browser_perf-private-browsing.js
+++ b/devtools/client/performance/test/browser_perf-private-browsing.js
@@ -71,39 +71,42 @@ function* testRecordingFailingInWindow(i
let { EVENTS, PerformanceController } = panel.panelWin;
let onRecordingStarted = () => {
ok(false, "Recording should not start while a private window is present.");
};
PerformanceController.on(EVENTS.RECORDING_STATE_CHANGE, onRecordingStarted);
- let whenFailed = once(PerformanceController, EVENTS.BACKEND_FAILED_AFTER_RECORDING_START);
+ let whenFailed = once(PerformanceController,
+ EVENTS.BACKEND_FAILED_AFTER_RECORDING_START);
PerformanceController.startRecording();
yield whenFailed;
ok(true, "Recording has failed.");
PerformanceController.off(EVENTS.RECORDING_STATE_CHANGE, onRecordingStarted);
}
function* testRecordingSucceedingInWindow(index) {
let { panel } = gPanelWinTuples[index];
let { EVENTS, PerformanceController } = panel.panelWin;
let onRecordingFailed = () => {
ok(false, "Recording should start while now private windows are present.");
};
- PerformanceController.on(EVENTS.BACKEND_FAILED_AFTER_RECORDING_START, onRecordingFailed);
+ PerformanceController.on(EVENTS.BACKEND_FAILED_AFTER_RECORDING_START,
+ onRecordingFailed);
yield startRecording(panel);
yield stopRecording(panel);
ok(true, "Recording has succeeded.");
- PerformanceController.off(EVENTS.BACKEND_FAILED_AFTER_RECORDING_START, onRecordingFailed);
+ PerformanceController.off(EVENTS.BACKEND_FAILED_AFTER_RECORDING_START,
+ onRecordingFailed);
}
function* teardownPerfInWindow(index, options) {
let { panel, win } = gPanelWinTuples[index];
yield teardownToolboxAndRemoveTab(panel, options);
if (options.shouldCloseWindow) {
win.close();
--- a/devtools/client/performance/test/browser_perf-range-changed-render.js
+++ b/devtools/client/performance/test/browser_perf-range-changed-render.js
@@ -12,17 +12,24 @@ const { startRecording, stopRecording }
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, OverviewView, DetailsView, WaterfallView, JsCallTreeView, JsFlameGraphView } = panel.panelWin;
+ let {
+ EVENTS,
+ OverviewView,
+ DetailsView,
+ WaterfallView,
+ JsCallTreeView,
+ JsFlameGraphView
+ } = panel.panelWin;
let updatedWaterfall = 0;
let updatedCallTree = 0;
let updatedFlameGraph = 0;
let updateWaterfall = () => updatedWaterfall++;
let updateCallTree = () => updatedCallTree++;
let updateFlameGraph = () => updatedFlameGraph++;
WaterfallView.on(EVENTS.UI_WATERFALL_RENDERED, updateWaterfall);
--- a/devtools/client/performance/test/browser_perf-recording-notices-02.js
+++ b/devtools/client/performance/test/browser_perf-recording-notices-02.js
@@ -13,17 +13,23 @@ const { startRecording, stopRecording }
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, $, PerformanceController, PerformanceView, RecordingsView } = panel.panelWin;
+ let {
+ EVENTS,
+ $,
+ PerformanceController,
+ PerformanceView,
+ RecordingsView
+ } = panel.panelWin;
let MAIN_CONTAINER = $("#performance-view");
let CONTENT = $("#performance-view-content");
let DETAILS_CONTAINER = $("#details-pane-container");
let RECORDING = $("#recording-notice");
let DETAILS = $("#details-pane");
yield startRecording(panel);
@@ -34,24 +40,26 @@ add_task(function* () {
is(PerformanceView.getState(), "recording", "Correct state during recording.");
is(MAIN_CONTAINER.selectedPanel, CONTENT, "Showing main view with timeline.");
is(DETAILS_CONTAINER.selectedPanel, RECORDING, "Showing recording panel.");
let selected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
RecordingsView.selectedIndex = 0;
yield selected;
- is(PerformanceView.getState(), "recorded", "Correct state during recording but selecting a completed recording.");
+ is(PerformanceView.getState(), "recorded",
+ "Correct state during recording but selecting a completed recording.");
is(MAIN_CONTAINER.selectedPanel, CONTENT, "Showing main view with timeline.");
is(DETAILS_CONTAINER.selectedPanel, DETAILS, "Showing recorded panel.");
selected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
RecordingsView.selectedIndex = 1;
yield selected;
- is(PerformanceView.getState(), "recording", "Correct state when switching back to recording in progress.");
+ is(PerformanceView.getState(), "recording",
+ "Correct state when switching back to recording in progress.");
is(MAIN_CONTAINER.selectedPanel, CONTENT, "Showing main view with timeline.");
is(DETAILS_CONTAINER.selectedPanel, RECORDING, "Showing recording panel.");
yield stopRecording(panel);
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_perf-recording-notices-03.js
+++ b/devtools/client/performance/test/browser_perf-recording-notices-03.js
@@ -5,85 +5,101 @@
/**
* Tests that recording notices display buffer status when available,
* and can switch between different recordings with the correct buffer
* information displayed.
*/
const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
const { PROFILER_BUFFER_SIZE_PREF } = require("devtools/client/performance/test/helpers/prefs");
-const { PMM_loadFrameScripts, PMM_stopProfiler, PMM_clearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmLoadFrameScripts, pmmStopProfiler, pmmClearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
const { initPerformanceInTab, initConsoleInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
const { waitUntil } = require("devtools/client/performance/test/helpers/wait-utils");
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
// Make sure the profiler module is stopped so we can set a new buffer limit.
- PMM_loadFrameScripts(gBrowser);
- yield PMM_stopProfiler();
+ pmmLoadFrameScripts(gBrowser);
+ yield pmmStopProfiler();
// Keep the profiler's buffer large, but still get to 1% relatively quick.
Services.prefs.setIntPref(PROFILER_BUFFER_SIZE_PREF, 1000000);
let { target, console } = yield initConsoleInNewTab({
url: SIMPLE_URL,
win: window
});
let { panel } = yield initPerformanceInTab({ tab: target.tab });
- let { gFront, EVENTS, $, PerformanceController, PerformanceView, RecordingsView } = panel.panelWin;
+ let {
+ gFront,
+ EVENTS,
+ $,
+ PerformanceController,
+ PerformanceView,
+ RecordingsView
+ } = panel.panelWin;
// Set a fast profiler-status update interval.
yield gFront.setProfilerStatusInterval(10);
let DETAILS_CONTAINER = $("#details-pane-container");
let NORMAL_BUFFER_STATUS_MESSAGE = $("#recording-notice .buffer-status-message");
- let CONSOLE_BUFFER_STATUS_MESSAGE = $("#console-recording-notice .buffer-status-message");
+ let CONSOLE_BUFFER_STATUS_MESSAGE =
+ $("#console-recording-notice .buffer-status-message");
let gPercent;
// Start a manual recording.
yield startRecording(panel);
yield waitUntil(function* () {
- [, gPercent] = yield once(PerformanceView, EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED, { spreadArgs: true });
+ [, gPercent] = yield once(PerformanceView,
+ EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED,
+ { spreadArgs: true });
return gPercent > 0;
});
ok(true, "Buffer percentage increased in display (1).");
- let bufferUsage = PerformanceController.getBufferUsageForRecording(PerformanceController.getCurrentRecording());
+ let bufferUsage = PerformanceController.getBufferUsageForRecording(
+ PerformanceController.getCurrentRecording());
either(DETAILS_CONTAINER.getAttribute("buffer-status"), "in-progress", "full",
"Container has [buffer-status=in-progress] or [buffer-status=full].");
ok(NORMAL_BUFFER_STATUS_MESSAGE.value.indexOf(gPercent + "%") !== -1,
"Buffer status text has correct percentage.");
// Start a console profile.
yield console.profile("rust");
yield waitUntil(function* () {
- [, gPercent] = yield once(PerformanceView, EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED, { spreadArgs: true });
+ [, gPercent] = yield once(PerformanceView,
+ EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED,
+ { spreadArgs: true });
return gPercent > Math.floor(bufferUsage * 100);
});
ok(true, "Buffer percentage increased in display (2).");
- bufferUsage = PerformanceController.getBufferUsageForRecording(PerformanceController.getCurrentRecording());
+ bufferUsage = PerformanceController.getBufferUsageForRecording(
+ PerformanceController.getCurrentRecording());
either(DETAILS_CONTAINER.getAttribute("buffer-status"), "in-progress", "full",
"Container has [buffer-status=in-progress] or [buffer-status=full].");
ok(NORMAL_BUFFER_STATUS_MESSAGE.value.indexOf(gPercent + "%") !== -1,
"Buffer status text has correct percentage.");
// Select the console recording.
let selected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
RecordingsView.selectedIndex = 1;
yield selected;
yield waitUntil(function* () {
- [, gPercent] = yield once(PerformanceView, EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED, { spreadArgs: true });
+ [, gPercent] = yield once(PerformanceView,
+ EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED,
+ { spreadArgs: true });
return gPercent > 0;
});
ok(true, "Percentage updated for newly selected recording.");
either(DETAILS_CONTAINER.getAttribute("buffer-status"), "in-progress", "full",
"Container has [buffer-status=in-progress] or [buffer-status=full].");
ok(CONSOLE_BUFFER_STATUS_MESSAGE.value.indexOf(gPercent + "%") !== -1,
@@ -92,26 +108,28 @@ add_task(function* () {
// Stop the console profile, then select the original manual recording.
yield console.profileEnd("rust");
selected = once(PerformanceController, EVENTS.RECORDING_SELECTED);
RecordingsView.selectedIndex = 0;
yield selected;
yield waitUntil(function* () {
- [, gPercent] = yield once(PerformanceView, EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED, { spreadArgs: true });
+ [, gPercent] = yield once(PerformanceView,
+ EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED,
+ { spreadArgs: true });
return gPercent > Math.floor(bufferUsage * 100);
});
ok(true, "Buffer percentage increased in display (3).");
either(DETAILS_CONTAINER.getAttribute("buffer-status"), "in-progress", "full",
"Container has [buffer-status=in-progress] or [buffer-status=full].");
ok(NORMAL_BUFFER_STATUS_MESSAGE.value.indexOf(gPercent + "%") !== -1,
"Buffer status text has correct percentage.");
// Stop the manual recording.
yield stopRecording(panel);
yield teardownToolboxAndRemoveTab(panel);
- PMM_clearFrameScripts();
+ pmmClearFrameScripts();
});
--- a/devtools/client/performance/test/browser_perf-recording-notices-04.js
+++ b/devtools/client/performance/test/browser_perf-recording-notices-04.js
@@ -4,26 +4,26 @@
/**
* Tests that when a recording overlaps the circular buffer, that
* a class is assigned to the recording notices.
*/
const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
const { PROFILER_BUFFER_SIZE_PREF } = require("devtools/client/performance/test/helpers/prefs");
-const { PMM_loadFrameScripts, PMM_stopProfiler, PMM_clearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmLoadFrameScripts, pmmStopProfiler, pmmClearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
const { waitUntil } = require("devtools/client/performance/test/helpers/wait-utils");
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
// Make sure the profiler module is stopped so we can set a new buffer limit.
- PMM_loadFrameScripts(gBrowser);
- yield PMM_stopProfiler();
+ pmmLoadFrameScripts(gBrowser);
+ yield pmmStopProfiler();
// Keep the profiler's buffer small, to get to 100% really quickly.
Services.prefs.setIntPref(PROFILER_BUFFER_SIZE_PREF, 10000);
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
@@ -36,28 +36,31 @@ add_task(function* () {
let DETAILS_CONTAINER = $("#details-pane-container");
let NORMAL_BUFFER_STATUS_MESSAGE = $("#recording-notice .buffer-status-message");
let gPercent;
// Start a manual recording.
yield startRecording(panel);
yield waitUntil(function* () {
- [, gPercent] = yield once(PerformanceView, EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED, { spreadArgs: true });
+ [, gPercent] = yield once(PerformanceView,
+ EVENTS.UI_RECORDING_PROFILER_STATUS_RENDERED,
+ { spreadArgs: true });
return gPercent == 100;
});
ok(true, "Buffer percentage increased in display.");
- let bufferUsage = PerformanceController.getBufferUsageForRecording(PerformanceController.getCurrentRecording());
+ let bufferUsage = PerformanceController.getBufferUsageForRecording(
+ PerformanceController.getCurrentRecording());
ok(bufferUsage, 1, "Buffer is full for this recording.");
ok(DETAILS_CONTAINER.getAttribute("buffer-status"), "full",
"Container has [buffer-status=full].");
ok(NORMAL_BUFFER_STATUS_MESSAGE.value.indexOf(gPercent + "%") !== -1,
"Buffer status text has correct percentage.");
// Stop the manual recording.
yield stopRecording(panel);
yield teardownToolboxAndRemoveTab(panel);
- PMM_clearFrameScripts();
+ pmmClearFrameScripts();
});
--- a/devtools/client/performance/test/browser_perf-recording-notices-05.js
+++ b/devtools/client/performance/test/browser_perf-recording-notices-05.js
@@ -36,17 +36,18 @@ add_task(function* () {
PerformanceController._setMultiprocessAttributes();
ok($("#performance-view").getAttribute("e10s"), "disabled",
"When e10s is disabled and but is supported, container has [e10s=disabled].");
supported = false;
enabled = true;
PerformanceController._setMultiprocessAttributes();
ok($("#performance-view").getAttribute("e10s"), "",
- "When e10s is enabled, but not supported, this probably means we no longer have E10S_TESTING_ONLY, and we have no e10s attribute.");
+ "When e10s is enabled, but not supported, this probably means we no longer have " +
+ "E10S_TESTING_ONLY, and we have no e10s attribute.");
supported = true;
enabled = true;
PerformanceController._setMultiprocessAttributes();
ok($("#performance-view").getAttribute("e10s"), "",
"When e10s is enabled and supported, there should be no e10s attribute.");
yield teardownToolboxAndRemoveTab(panel);
--- a/devtools/client/performance/test/browser_perf-recordings-io-01.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-01.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests if the performance tool is able to save and load recordings.
*/
var test = Task.async(function* () {
var { target, panel, toolbox } = yield initPerformance(SIMPLE_URL);
var { $, EVENTS, PerformanceController, PerformanceView, DetailsView, DetailsSubview } = panel.panelWin;
@@ -85,8 +86,9 @@ var test = Task.async(function* () {
is(importedData.configuration.withTicks, originalData.configuration.withTicks,
"The imported data is identical to the original data (7).");
is(importedData.configuration.withMemory, originalData.configuration.withMemory,
"The imported data is identical to the original data (8).");
yield teardown(panel);
finish();
});
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-recordings-io-02.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-02.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests if the performance tool gracefully handles loading bogus files.
*/
var test = Task.async(function* () {
let { target, panel, toolbox } = yield initPerformance(SIMPLE_URL);
let { EVENTS, PerformanceController } = panel.panelWin;
--- a/devtools/client/performance/test/browser_perf-recordings-io-03.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-03.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests if the performance tool gracefully handles loading files that are JSON,
* but don't contain the appropriate recording data.
*/
var { FileUtils } = Cu.import("resource://gre/modules/FileUtils.jsm", {});
var { NetUtil } = Cu.import("resource://gre/modules/NetUtil.jsm", {});
@@ -47,8 +48,9 @@ function asyncCopy(data, file) {
if (!Components.isSuccessCode(status)) {
deferred.reject(new Error("Could not save data to file."));
}
deferred.resolve();
});
return deferred.promise;
}
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-recordings-io-04.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-04.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests if the performance tool can import profiler data from the
* original profiler tool (Performance Recording v1, and Profiler data v2) and the correct views and graphs are loaded.
*/
var TICKS_DATA = (function () {
let ticks = [];
for (let i = 0; i < 100; i++) {
ticks.push(i * 10);
@@ -169,8 +170,9 @@ function asyncCopy(data, file) {
if (!Components.isSuccessCode(status)) {
deferred.reject(new Error("Could not save data to file."));
}
deferred.resolve();
});
return deferred.promise;
}
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-recordings-io-05.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-05.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Test that when importing and no graphs rendered yet, we do not get a
* `getMappedSelection` error.
*/
var test = Task.async(function* () {
var { target, panel, toolbox } = yield initPerformance(SIMPLE_URL);
var { EVENTS, PerformanceController, WaterfallView } = panel.panelWin;
@@ -34,8 +35,9 @@ var test = Task.async(function* () {
yield imported;
yield rendered;
ok(true, "No error was thrown.");
yield teardown(panel);
finish();
});
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-recordings-io-06.js
+++ b/devtools/client/performance/test/browser_perf-recordings-io-06.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests if the performance tool can import profiler data when Profiler is v2
* and requires deflating, and has an extra thread that's a string. Not sure
* what causes this.
*/
var STRINGED_THREAD = (function () {
let thread = {};
@@ -133,8 +134,9 @@ function asyncCopy(data, file) {
if (!Components.isSuccessCode(status)) {
deferred.reject(new Error("Could not save data to file."));
}
deferred.resolve();
});
return deferred.promise;
}
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-states.js
+++ b/devtools/client/performance/test/browser_perf-states.js
@@ -24,17 +24,17 @@ add_task(function* () {
ok(!(OverviewView.graphs.get("timeline")),
"The markers graph should not have been created yet.");
ok(!(OverviewView.graphs.get("memory")),
"The memory graph should not have been created yet.");
ok(!(OverviewView.graphs.get("framerate")),
"The framerate graph should not have been created yet.");
- ok(!DetailsView.components["waterfall"].initialized,
+ ok(!DetailsView.components.waterfall.initialized,
"The waterfall detail view should not have been created yet.");
ok(!DetailsView.components["js-calltree"].initialized,
"The js-calltree detail view should not have been created yet.");
ok(!DetailsView.components["js-flamegraph"].initialized,
"The js-flamegraph detail view should not have been created yet.");
ok(!DetailsView.components["memory-calltree"].initialized,
"The memory-calltree detail view should not have been created yet.");
ok(!DetailsView.components["memory-flamegraph"].initialized,
--- a/devtools/client/performance/test/browser_perf-telemetry-01.js
+++ b/devtools/client/performance/test/browser_perf-telemetry-01.js
@@ -33,17 +33,21 @@ add_task(function* () {
yield stopRecording(panel);
Services.prefs.setBoolPref(UI_ENABLE_MEMORY_PREF, true);
yield startRecording(panel);
yield stopRecording(panel);
is(logs[DURATION].length, 2, `There are two entries for ${DURATION}.`);
- ok(logs[DURATION].every(d => typeof d === "number"), `Every ${DURATION} entry is a number.`);
+ ok(logs[DURATION].every(d => typeof d === "number"),
+ `Every ${DURATION} entry is a number.`);
is(logs[COUNT].length, 2, `There are two entries for ${COUNT}.`);
is(logs[CONSOLE_COUNT], void 0, `There are no entries for ${CONSOLE_COUNT}.`);
- is(logs[FEATURES].length, 8, `There are two recordings worth of entries for ${FEATURES}.`);
- ok(logs[FEATURES].find(r => r[0] === "withMemory" && r[1] === true), "One feature entry for memory enabled.");
- ok(logs[FEATURES].find(r => r[0] === "withMemory" && r[1] === false), "One feature entry for memory disabled.");
+ is(logs[FEATURES].length, 8,
+ `There are two recordings worth of entries for ${FEATURES}.`);
+ ok(logs[FEATURES].find(r => r[0] === "withMemory" && r[1] === true),
+ "One feature entry for memory enabled.");
+ ok(logs[FEATURES].find(r => r[0] === "withMemory" && r[1] === false),
+ "One feature entry for memory disabled.");
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_perf-telemetry-02.js
+++ b/devtools/client/performance/test/browser_perf-telemetry-02.js
@@ -27,17 +27,18 @@ add_task(function* () {
yield startRecording(panel);
yield stopRecording(panel);
let file = FileUtils.getFile("TmpD", ["tmpprofile.json"]);
file.createUnique(Ci.nsIFile.NORMAL_FILE_TYPE, parseInt("666", 8));
let exported = once(PerformanceController, EVENTS.RECORDING_EXPORTED);
- yield PerformanceController.exportRecording("", PerformanceController.getCurrentRecording(), file);
+ yield PerformanceController.exportRecording("",
+ PerformanceController.getCurrentRecording(), file);
yield exported;
ok(logs[EXPORTED], `A telemetry entry for ${EXPORTED} exists after exporting.`);
let imported = once(PerformanceController, EVENTS.RECORDING_IMPORTED);
yield PerformanceController.importRecording(null, file);
yield imported;
--- a/devtools/client/performance/test/browser_perf-telemetry-03.js
+++ b/devtools/client/performance/test/browser_perf-telemetry-03.js
@@ -13,17 +13,23 @@ const { startRecording, stopRecording }
const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { EVENTS, PerformanceController, DetailsView, JsCallTreeView, JsFlameGraphView } = panel.panelWin;
+ let {
+ EVENTS,
+ PerformanceController,
+ DetailsView,
+ JsCallTreeView,
+ JsFlameGraphView
+ } = panel.panelWin;
let telemetry = PerformanceController._telemetry;
let logs = telemetry.getLogs();
let VIEWS = "DEVTOOLS_PERFTOOLS_SELECTED_VIEW_MS";
yield startRecording(panel);
yield stopRecording(panel);
@@ -36,12 +42,15 @@ add_task(function* () {
yield DetailsView.selectView("js-flamegraph");
yield flamegraphRendered;
yield teardownToolboxAndRemoveTab(panel);
// Check views after destruction to ensure `js-flamegraph` gets called
// with a time during destruction.
- ok(logs[VIEWS].find(r => r[0] === "waterfall" && typeof r[1] === "number"), `${VIEWS} for waterfall view and time.`);
- ok(logs[VIEWS].find(r => r[0] === "js-calltree" && typeof r[1] === "number"), `${VIEWS} for js-calltree view and time.`);
- ok(logs[VIEWS].find(r => r[0] === "js-flamegraph" && typeof r[1] === "number"), `${VIEWS} for js-flamegraph view and time.`);
+ ok(logs[VIEWS].find(r => r[0] === "waterfall" && typeof r[1] === "number"),
+ `${VIEWS} for waterfall view and time.`);
+ ok(logs[VIEWS].find(r => r[0] === "js-calltree" && typeof r[1] === "number"),
+ `${VIEWS} for js-calltree view and time.`);
+ ok(logs[VIEWS].find(r => r[0] === "js-flamegraph" && typeof r[1] === "number"),
+ `${VIEWS} for js-flamegraph view and time.`);
});
--- a/devtools/client/performance/test/browser_perf-telemetry-04.js
+++ b/devtools/client/performance/test/browser_perf-telemetry-04.js
@@ -35,14 +35,16 @@ add_task(function* () {
let stopped = waitForRecordingStoppedEvents(panel, {
// only emitted for manual recordings
skipWaitingForBackendReady: true
});
yield console.profileEnd("rust");
yield stopped;
is(logs[DURATION].length, 1, `There is one entry for ${DURATION}.`);
- ok(logs[DURATION].every(d => typeof d === "number"), `Every ${DURATION} entry is a number.`);
+ ok(logs[DURATION].every(d => typeof d === "number"),
+ `Every ${DURATION} entry is a number.`);
is(logs[CONSOLE_COUNT].length, 1, `There is one entry for ${CONSOLE_COUNT}.`);
- is(logs[FEATURES].length, 4, `There is one recording worth of entries for ${FEATURES}.`);
+ is(logs[FEATURES].length, 4,
+ `There is one recording worth of entries for ${FEATURES}.`);
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_perf-theme-toggle.js
+++ b/devtools/client/performance/test/browser_perf-theme-toggle.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests if the markers and memory overviews render with the correct
* theme on load, and rerenders when changed.
*/
const { setTheme } = require("devtools/client/shared/theme");
const LIGHT_BG = "white";
@@ -69,8 +70,9 @@ function* spawnTest() {
// Set theme back to light
setTheme("light");
yield refreshed;
yield teardown(panel);
finish();
}
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-tree-abstract-01.js
+++ b/devtools/client/performance/test/browser_perf-tree-abstract-01.js
@@ -46,17 +46,17 @@ add_task(function* () {
"The root node's container is correct.");
// Expand the root and test the child items...
let receivedExpandEvent = once(treeRoot, "expand", { spreadArgs: true });
let receivedFocusEvent = once(treeRoot, "focus");
mousedown(treeRoot.target.querySelector(".arrow"));
- let [_, eventItem] = yield receivedExpandEvent;
+ let [, eventItem] = yield receivedExpandEvent;
is(eventItem, treeRoot,
"The 'expand' event target is correct (1).");
yield receivedFocusEvent;
is(document.commandDispatcher.focusedElement, treeRoot.target,
"The root node is now focused.");
let fooItem = treeRoot.getChild(0);
@@ -97,29 +97,29 @@ add_task(function* () {
is(barItem.container, container,
"The 'bar' node's container is correct.");
// Test clicking on the `foo` node...
receivedFocusEvent = once(treeRoot, "focus", { spreadArgs: true });
mousedown(fooItem.target);
- [_, eventItem] = yield receivedFocusEvent;
+ [, eventItem] = yield receivedFocusEvent;
is(eventItem, fooItem,
"The 'focus' event target is correct (2).");
is(document.commandDispatcher.focusedElement, fooItem.target,
"The 'foo' node is now focused.");
// Test double clicking on the `bar` node...
receivedExpandEvent = once(treeRoot, "expand", { spreadArgs: true });
receivedFocusEvent = once(treeRoot, "focus");
dblclick(barItem.target);
- [_, eventItem] = yield receivedExpandEvent;
+ [, eventItem] = yield receivedExpandEvent;
is(eventItem, barItem,
"The 'expand' event target is correct (3).");
yield receivedFocusEvent;
is(document.commandDispatcher.focusedElement, barItem.target,
"The 'foo' node is now focused.");
// A child item got expanded, test the descendants...
--- a/devtools/client/performance/test/browser_perf-tree-abstract-02.js
+++ b/devtools/client/performance/test/browser_perf-tree-abstract-02.js
@@ -4,17 +4,16 @@
/**
* Tests if the abstract tree base class for the profiler's tree view
* has a functional public API.
*/
const { appendAndWaitForPaint } = require("devtools/client/performance/test/helpers/dom-utils");
const { synthesizeCustomTreeClass } = require("devtools/client/performance/test/helpers/synth-utils");
-const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { MyCustomTreeItem, myDataSrc } = synthesizeCustomTreeClass();
let container = document.createElement("vbox");
yield appendAndWaitForPaint(gBrowser.selectedBrowser.parentNode, container);
// Populate the tree and test the root item...
--- a/devtools/client/performance/test/browser_perf-tree-abstract-03.js
+++ b/devtools/client/performance/test/browser_perf-tree-abstract-03.js
@@ -4,17 +4,16 @@
/**
* Tests if the abstract tree base class for the profiler's tree view
* is keyboard accessible.
*/
const { appendAndWaitForPaint } = require("devtools/client/performance/test/helpers/dom-utils");
const { synthesizeCustomTreeClass } = require("devtools/client/performance/test/helpers/synth-utils");
-const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { MyCustomTreeItem, myDataSrc } = synthesizeCustomTreeClass();
let container = document.createElement("vbox");
yield appendAndWaitForPaint(gBrowser.selectedBrowser.parentNode, container);
// Populate the tree by pressing RIGHT...
--- a/devtools/client/performance/test/browser_perf-tree-abstract-05.js
+++ b/devtools/client/performance/test/browser_perf-tree-abstract-05.js
@@ -4,24 +4,23 @@
/**
* Tests if the abstract tree base class for the profiler's tree view
* supports PageUp/PageDown/Home/End keys.
*/
const { appendAndWaitForPaint } = require("devtools/client/performance/test/helpers/dom-utils");
const { synthesizeCustomTreeClass } = require("devtools/client/performance/test/helpers/synth-utils");
-const { once } = require("devtools/client/performance/test/helpers/event-utils");
add_task(function* () {
let { MyCustomTreeItem } = synthesizeCustomTreeClass();
let container = document.createElement("vbox");
- container.style.height = '100%';
- container.style.overflow = 'scroll';
+ container.style.height = "100%";
+ container.style.overflow = "scroll";
yield appendAndWaitForPaint(gBrowser.selectedBrowser.parentNode, container);
let myDataSrc = {
label: "root",
children: []
};
for (let i = 0; i < 1000; i++) {
--- a/devtools/client/performance/test/browser_perf-tree-view-02.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-02.js
@@ -28,18 +28,20 @@ add_task(function () {
threadNode.calls = threadNode.calls[0].calls;
let treeRoot = new CallView({ frame: threadNode });
let container = document.createElement("vbox");
treeRoot.autoExpandDepth = 0;
treeRoot.attachTo(container);
let $$ = node => container.querySelectorAll(node);
- let $fun = (node, ancestor) => (ancestor || container).querySelector(".call-tree-cell[type=function] > " + node);
- let $$fun = (node, ancestor) => (ancestor || container).querySelectorAll(".call-tree-cell[type=function] > " + node);
+ let $fun = (node, ancestor) => (ancestor || container).querySelector(
+ ".call-tree-cell[type=function] > " + node);
+ let $$fun = (node, ancestor) => (ancestor || container).querySelectorAll(
+ ".call-tree-cell[type=function] > " + node);
let $$dur = i => container.querySelectorAll(".call-tree-cell[type=duration]")[i];
let $$per = i => container.querySelectorAll(".call-tree-cell[type=percentage]")[i];
let $$sam = i => container.querySelectorAll(".call-tree-cell[type=samples]")[i];
is(container.childNodes.length, 1,
"The container node should have one child available.");
is(container.childNodes[0].className, "call-tree-item",
"The root node in the tree has the correct class name.");
--- a/devtools/client/performance/test/browser_perf-tree-view-03.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-03.js
@@ -18,17 +18,18 @@ add_task(function () {
// Don't display the synthesized (root) and the real (root) node twice.
threadNode.calls = threadNode.calls[0].calls;
let treeRoot = new CallView({ frame: threadNode });
let container = document.createElement("vbox");
treeRoot.attachTo(container);
let $$fun = i => container.querySelectorAll(".call-tree-cell[type=function]")[i];
- let $$nam = i => container.querySelectorAll(".call-tree-cell[type=function] > .call-tree-name")[i];
+ let $$nam = i => container.querySelectorAll(
+ ".call-tree-cell[type=function] > .call-tree-name")[i];
let $$dur = i => container.querySelectorAll(".call-tree-cell[type=duration]")[i];
is(container.childNodes.length, 7,
"The container node should have all children available.");
is(Array.filter(container.childNodes, e => e.className != "call-tree-item").length, 0,
"All item nodes in the tree have the correct class name.");
is($$fun(0).style.marginInlineStart, "0px",
--- a/devtools/client/performance/test/browser_perf-tree-view-06.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-06.js
@@ -23,17 +23,19 @@ add_task(function* () {
let container = document.createElement("vbox");
treeRoot.attachTo(container);
let A = treeRoot.getChild();
let B = A.getChild();
let D = B.getChild();
let linkEvent = null;
- let handler = (_, e) => linkEvent = e;
+ let handler = (_, e) => {
+ linkEvent = e;
+ };
treeRoot.on("link", handler);
// Fire right click.
rightMousedown(D.target.querySelector(".call-tree-url"));
// Ensure link was not called for right click.
yield idleWait(100);
--- a/devtools/client/performance/test/browser_perf-tree-view-08.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-08.js
@@ -8,17 +8,18 @@
*/
const { ThreadNode } = require("devtools/client/performance/modules/logic/tree-model");
const { CallView } = require("devtools/client/performance/modules/widgets/tree-view");
const { CATEGORY_MASK } = require("devtools/client/performance/modules/categories");
const RecordingUtils = require("devtools/shared/performance/recording-utils");
add_task(function () {
- let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 20, contentOnly: true });
+ let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 20,
+ contentOnly: true });
// Don't display the synthesized (root) and the real (root) node twice.
threadNode.calls = threadNode.calls[0].calls;
let treeRoot = new CallView({ frame: threadNode, autoExpandDepth: 10 });
let container = document.createElement("vbox");
treeRoot.attachTo(container);
--- a/devtools/client/performance/test/browser_perf-tree-view-09.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-09.js
@@ -7,17 +7,18 @@
* "self cost" and not "total cost".
*/
const { ThreadNode } = require("devtools/client/performance/modules/logic/tree-model");
const { CallView } = require("devtools/client/performance/modules/widgets/tree-view");
const RecordingUtils = require("devtools/shared/performance/recording-utils");
add_task(function () {
- let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 20, invertTree: true });
+ let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 20,
+ invertTree: true });
let treeRoot = new CallView({ frame: threadNode, inverted: true });
let container = document.createElement("vbox");
treeRoot.attachTo(container);
is(treeRoot.getChild(0).frame.location, "B",
"The tree root's first child is the `B` function.");
is(treeRoot.getChild(1).frame.location, "A",
"The tree root's second child is the `A` function.");
--- a/devtools/client/performance/test/browser_perf-tree-view-10.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-10.js
@@ -7,25 +7,29 @@
* total costs correctly.
*/
const { ThreadNode } = require("devtools/client/performance/modules/logic/tree-model");
const { CallView } = require("devtools/client/performance/modules/widgets/tree-view");
const RecordingUtils = require("devtools/shared/performance/recording-utils");
add_task(function () {
- let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 50, invertTree: true });
+ let threadNode = new ThreadNode(gProfile.threads[0], { startTime: 0, endTime: 50,
+ invertTree: true });
let treeRoot = new CallView({ frame: threadNode, inverted: true });
let container = document.createElement("vbox");
treeRoot.attachTo(container);
// Add 1 to each index to skip the hidden root node
- let $$nam = i => container.querySelectorAll(".call-tree-cell[type=function] > .call-tree-name")[i + 1];
- let $$per = i => container.querySelectorAll(".call-tree-cell[type=percentage]")[i + 1];
- let $$selfper = i => container.querySelectorAll(".call-tree-cell[type='self-percentage']")[i + 1];
+ let $$nam = i => container.querySelectorAll(
+ ".call-tree-cell[type=function] > .call-tree-name")[i + 1];
+ let $$per = i => container.querySelectorAll(
+ ".call-tree-cell[type=percentage]")[i + 1];
+ let $$selfper = i => container.querySelectorAll(
+ ".call-tree-cell[type='self-percentage']")[i + 1];
/**
* Samples:
*
* A->C
* A->B
* A->B->C x4
* A->B->D x4
@@ -43,17 +47,18 @@ add_task(function () {
* | 10% | 10% | B |
* | 10% | 0 | -> A |
* +---------+--------+----------+
*/
is(container.childNodes.length, 10,
"The container node should have all children available.");
- [ // total, self, indent + name
+ // total, self, indent + name
+ [
[ 50, 50, "C"],
[ 40, 0, " B"],
[ 30, 0, " A"],
[ 10, 0, " A"],
[ 40, 40, "D"],
[ 40, 0, " B"],
[ 40, 0, " A"],
[ 10, 10, "B"],
--- a/devtools/client/performance/test/browser_perf-tree-view-11.js
+++ b/devtools/client/performance/test/browser_perf-tree-view-11.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests that if `show-jit-optimizations` is true, then an
* icon is next to the frame with optimizations
*/
var { CATEGORY_MASK } = require("devtools/client/performance/modules/categories");
function* spawnTest() {
@@ -145,8 +146,9 @@ gThread.frameTable.data.forEach((frame)
frame[OPTIMIZATIONS_SLOT] = gRawSite1;
break;
case "PlatformCode":
frame[LOCATION_SLOT] = uniqStr("PlatformCode");
frame[OPTIMIZATIONS_SLOT] = gRawSite1;
break;
}
});
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_perf-ui-recording.js
+++ b/devtools/client/performance/test/browser_perf-ui-recording.js
@@ -2,38 +2,38 @@
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Tests that the controller handles recording via the `stopwatch` button
* in the UI.
*/
-const { PMM_loadFrameScripts, PMM_isProfilerActive, PMM_clearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmLoadFrameScripts, pmmIsProfilerActive, pmmClearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
const { startRecording, stopRecording } = require("devtools/client/performance/test/helpers/actions");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- PMM_loadFrameScripts(gBrowser);
+ pmmLoadFrameScripts(gBrowser);
- ok(!(yield PMM_isProfilerActive()),
+ ok(!(yield pmmIsProfilerActive()),
"The built-in profiler module should not have been automatically started.");
yield startRecording(panel);
- ok((yield PMM_isProfilerActive()),
+ ok((yield pmmIsProfilerActive()),
"The built-in profiler module should now be active.");
yield stopRecording(panel);
- ok((yield PMM_isProfilerActive()),
+ ok((yield pmmIsProfilerActive()),
"The built-in profiler module should still be active.");
yield teardownToolboxAndRemoveTab(panel);
- PMM_clearFrameScripts();
+ pmmClearFrameScripts();
});
--- a/devtools/client/performance/test/browser_timeline-filters-01.js
+++ b/devtools/client/performance/test/browser_timeline-filters-01.js
@@ -1,10 +1,11 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
+/* eslint-disable */
/**
* Tests markers filtering mechanism.
*/
const EPSILON = 0.00000001;
function* spawnTest() {
@@ -110,8 +111,9 @@ function* spawnTest() {
finish();
}
function waitForOverviewAndCommand(overview, item) {
let overviewRendered = overview.once("refresh");
let menuitemCommandDispatched = once(item, "command");
return Promise.all([overviewRendered, menuitemCommandDispatched]);
}
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_timeline-filters-02.js
+++ b/devtools/client/performance/test/browser_timeline-filters-02.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests markers filtering mechanism.
*/
const URL = EXAMPLE_URL + "doc_innerHTML.html";
function* spawnTest() {
let { panel } = yield initPerformance(URL);
@@ -39,8 +40,9 @@ function* spawnTest() {
ok(!$(".waterfall-marker-bar[type=Javascript]"), "Javascript markers are all hidden.");
ok($(".waterfall-marker-bar[type='Parse HTML']"),
"Found at least one 'Parse HTML' marker still visible after hiding JS markers");
yield teardown(panel);
finish();
}
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_timeline-waterfall-background.js
+++ b/devtools/client/performance/test/browser_timeline-waterfall-background.js
@@ -2,28 +2,27 @@
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
/**
* Tests if the waterfall background is a 1px high canvas stretching across
* the container bounds.
*/
-const { WATERFALL_MARKER_SIDEBAR_SAFE_BOUNDS } = require("devtools/client/performance/modules/widgets/marker-view");
const { SIMPLE_URL } = require("devtools/client/performance/test/helpers/urls");
const { initPerformanceInNewTab, teardownToolboxAndRemoveTab } = require("devtools/client/performance/test/helpers/panel-utils");
const { startRecording, stopRecording, waitForOverviewRenderedWithMarkers } = require("devtools/client/performance/test/helpers/actions");
add_task(function* () {
let { panel } = yield initPerformanceInNewTab({
url: SIMPLE_URL,
win: window
});
- let { $, WaterfallView } = panel.panelWin;
+ let { WaterfallView } = panel.panelWin;
yield startRecording(panel);
ok(true, "Recording has started.");
// Ensure overview is rendering and some markers were received.
yield waitForOverviewRenderedWithMarkers(panel);
yield stopRecording(panel);
@@ -31,15 +30,16 @@ add_task(function* () {
// Test the waterfall background.
ok(WaterfallView._waterfallHeader._canvas,
"A canvas should be created after the recording ended.");
ok(WaterfallView._waterfallHeader._ctx,
"A 2d context should be created after the recording ended.");
- is(WaterfallView._waterfallHeader._canvas.width, WaterfallView._markersRoot._waterfallWidth,
+ is(WaterfallView._waterfallHeader._canvas.width,
+ WaterfallView._markersRoot._waterfallWidth,
"The canvas width is correct.");
is(WaterfallView._waterfallHeader._canvas.height, 1,
"The canvas height is correct.");
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_timeline-waterfall-generic.js
+++ b/devtools/client/performance/test/browser_timeline-waterfall-generic.js
@@ -63,28 +63,30 @@ add_task(function* () {
"Some marker waterfall nodes should have been created.");
ok($$(".waterfall-tree-item > .waterfall-marker > .waterfall-marker-bar").length,
"Some marker color bars should have been created inside the waterfall.");
// Test the sidebar.
let detailsView = WaterfallView.details;
let markersRoot = WaterfallView._markersRoot;
- markersRoot.recalculateBounds(); // Make sure the bounds are up to date.
+ // Make sure the bounds are up to date.
+ markersRoot.recalculateBounds();
let parentWidthBefore = $("#waterfall-view").getBoundingClientRect().width;
let sidebarWidthBefore = $(".waterfall-sidebar").getBoundingClientRect().width;
let detailsWidthBefore = $("#waterfall-details").getBoundingClientRect().width;
ok(detailsView.hidden,
"The details view in the waterfall view is hidden by default.");
is(detailsWidthBefore, 0,
"The details view width should be 0 when hidden.");
- is(markersRoot._waterfallWidth, parentWidthBefore - sidebarWidthBefore - WATERFALL_MARKER_SIDEBAR_SAFE_BOUNDS,
- "The waterfall width is correct (1).");
+ is(markersRoot._waterfallWidth,
+ parentWidthBefore - sidebarWidthBefore - WATERFALL_MARKER_SIDEBAR_SAFE_BOUNDS,
+ "The waterfall width is correct (1).");
let receivedFocusEvent = once(markersRoot, "focus");
let waterfallRerendered = once(WaterfallView, EVENTS.UI_WATERFALL_RENDERED);
WaterfallView._markersRoot.getChild(0).focus();
yield receivedFocusEvent;
yield waterfallRerendered;
let parentWidthAfter = $("#waterfall-view").getBoundingClientRect().width;
@@ -94,13 +96,15 @@ add_task(function* () {
ok(!detailsView.hidden,
"The details view in the waterfall view is now visible.");
is(parentWidthBefore, parentWidthAfter,
"The parent view's width should not have changed.");
is(sidebarWidthBefore, sidebarWidthAfter,
"The sidebar view's width should not have changed.");
isnot(detailsWidthAfter, 0,
"The details view width should not be 0 when visible.");
- is(markersRoot._waterfallWidth, parentWidthAfter - sidebarWidthAfter - detailsWidthAfter - WATERFALL_MARKER_SIDEBAR_SAFE_BOUNDS,
- "The waterfall width is correct (2).");
+ is(markersRoot._waterfallWidth,
+ parentWidthAfter - sidebarWidthAfter - detailsWidthAfter
+ - WATERFALL_MARKER_SIDEBAR_SAFE_BOUNDS,
+ "The waterfall width is correct (2).");
yield teardownToolboxAndRemoveTab(panel);
});
--- a/devtools/client/performance/test/browser_timeline-waterfall-rerender.js
+++ b/devtools/client/performance/test/browser_timeline-waterfall-rerender.js
@@ -1,11 +1,11 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+/* eslint-disable */
/**
* Tests if the waterfall remembers the selection when rerendering.
*/
function* spawnTest() {
let { target, panel } = yield initPerformance(SIMPLE_URL);
let { $, $$, EVENTS, PerformanceController, OverviewView, WaterfallView } = panel.panelWin;
@@ -68,8 +68,9 @@ function* spawnTest() {
is(Array.indexOf($$(".waterfall-tree-item"), $(".waterfall-tree-item:focus")), 2,
"The correct item is still focused in the tree.");
ok(!$("#waterfall-details").hidden,
"The waterfall sidebar is still visible.");
yield teardown(panel);
finish();
}
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_timeline-waterfall-sidebar.js
+++ b/devtools/client/performance/test/browser_timeline-waterfall-sidebar.js
@@ -1,11 +1,11 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+/* eslint-disable */
/**
* Tests if the sidebar is properly updated when a marker is selected.
*/
function* spawnTest() {
let { target, panel } = yield initPerformance(SIMPLE_URL);
let { $, $$, PerformanceController, WaterfallView } = panel.panelWin;
let { L10N } = require("devtools/client/performance/modules/global");
@@ -69,8 +69,9 @@ function* spawnTest() {
// So just check that start and end time are in there somewhere.
ok(tooltip.indexOf(toMs(mkr.start)) !== -1, "Tooltip has start time.");
ok(tooltip.indexOf(toMs(mkr.end)) !== -1, "Tooltip has end time.");
}
yield teardown(panel);
finish();
}
+/* eslint-enable */
--- a/devtools/client/performance/test/browser_timeline-waterfall-workers.js
+++ b/devtools/client/performance/test/browser_timeline-waterfall-workers.js
@@ -1,11 +1,12 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
-
+"use strict";
+/* eslint-disable */
/**
* Tests if the sidebar is properly updated with worker markers.
*/
function* spawnTest() {
let { panel } = yield initPerformance(WORKER_URL);
let { $$, $, PerformanceController } = panel.panelWin;
@@ -88,8 +89,9 @@ function evalInDebuggee(script) {
}
mm.removeMessageListener("devtools:test:eval:response", handler);
deferred.resolve(data.value);
}
return deferred.promise;
}
+/* eslint-enable */
--- a/devtools/client/performance/test/doc_allocs.html
+++ b/devtools/client/performance/test/doc_allocs.html
@@ -5,19 +5,20 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Performance test page</title>
</head>
<body>
<script type="text/javascript">
- var allocs = [];
+ "use strict";
+ const allocs = [];
function test() {
- for (var i = 0; i < 10; i++) {
+ for (let i = 0; i < 10; i++) {
allocs.push({});
}
}
// Prevent this script from being garbage collected.
window.setInterval(test, 1);
</script>
</body>
--- a/devtools/client/performance/test/doc_innerHTML.html
+++ b/devtools/client/performance/test/doc_innerHTML.html
@@ -5,16 +5,17 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Performance tool + innerHTML test page</title>
</head>
<body>
<script type="text/javascript">
- window.test = function () {
- document.body.innerHTML = "<h1>LOL</h1>";
- };
- setInterval(window.test, 100);
+ "use strict";
+ window.test = function () {
+ document.body.innerHTML = "<h1>LOL</h1>";
+ };
+ setInterval(window.test, 100);
</script>
</body>
</html>
--- a/devtools/client/performance/test/doc_markers.html
+++ b/devtools/client/performance/test/doc_markers.html
@@ -5,24 +5,27 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Performance tool marker generation</title>
</head>
<body>
<script type="text/javascript">
- var x = 1;
+ "use strict";
function test() {
- var i = 10;
+ let i = 10;
// generate sync styles and reflows
while (--i) {
- var h = document.body.clientHeight;
- document.body.style.height = (200 + i) + "px";
- document.body.style.borderTop = i + "px solid red"; // paint
+ /* eslint-disable no-unused-vars */
+ let h = document.body.clientHeight;
+ /* eslint-enable no-unused-vars */
+ document.body.style.height = (200 + i) + "px";
+ // paint
+ document.body.style.borderTop = i + "px solid red";
}
console.time("!!!");
test2();
}
function test2() {
console.timeStamp("go");
console.timeEnd("!!!");
}
--- a/devtools/client/performance/test/doc_simple-test.html
+++ b/devtools/client/performance/test/doc_simple-test.html
@@ -5,21 +5,23 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Performance test page</title>
</head>
<body>
<script type="text/javascript">
- var x = 1;
+ "use strict";
+ let x = 1;
function test() {
document.body.style.borderTop = x + "px solid red";
- x = 1^x;
- document.body.innerHeight; // flush pending reflows
+ x = 1 ^ x;
+ // flush pending reflows
+ document.body.innerHeight;
}
// Prevent this script from being garbage collected.
window.setInterval(test, 1);
</script>
</body>
</html>
--- a/devtools/client/performance/test/doc_worker.html
+++ b/devtools/client/performance/test/doc_worker.html
@@ -5,20 +5,23 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Performance test page</title>
</head>
<body>
<script type="text/javascript">
+ "use strict";
+
+ /* exported performWork */
function performWork() {
- var worker = new Worker("js_simpleWorker.js");
+ const worker = new Worker("js_simpleWorker.js");
- worker.addEventListener("message", function(e) {
+ worker.addEventListener("message", function (e) {
console.log(e.data);
console.timeStamp("Done");
}, false);
worker.postMessage("Hello World");
}
</script>
</body>
--- a/devtools/client/performance/test/head.js
+++ b/devtools/client/performance/test/head.js
@@ -1,14 +1,15 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const { require, loader } = Cu.import("resource://devtools/shared/Loader.jsm", {});
+/* exported loader, either, click, dblclick, mousedown, rightMousedown, key */
// All tests are asynchronous.
waitForExplicitFinish();
// Performance tests are much heavier because of their reliance on the
// profiler module, memory measurements, frequent canvas operations etc. Many of
// of them take longer than 30 seconds to finish on try server VMs, even though
// they superficially do very little.
requestLongerTimeout(3);
@@ -52,38 +53,40 @@ const key = (id, win = window) => {
// Don't pollute global scope.
(() => {
const DevToolsUtils = require("devtools/shared/DevToolsUtils");
const PrefUtils = require("devtools/client/performance/test/helpers/prefs");
DevToolsUtils.testing = true;
// Make sure all the prefs are reverted to their defaults once tests finish.
- let stopObservingPrefs = PrefUtils.whenUnknownPrefChanged("devtools.performance", pref => {
- ok(false, `Unknown pref changed: ${pref}. Please add it to test/helpers/prefs.js ` +
- "to make sure it's reverted to its default value when the tests finishes, " +
- "and avoid interfering with future tests.\n");
- });
+ let stopObservingPrefs = PrefUtils.whenUnknownPrefChanged("devtools.performance",
+ pref => {
+ ok(false, `Unknown pref changed: ${pref}. Please add it to test/helpers/prefs.js ` +
+ "to make sure it's reverted to its default value when the tests finishes, " +
+ "and avoid interfering with future tests.\n");
+ });
// By default, enable memory flame graphs for tests for now.
// TODO: remove when we have flame charts via bug 1148663.
Services.prefs.setBoolPref(PrefUtils.UI_ENABLE_MEMORY_FLAME_CHART, true);
registerCleanupFunction(() => {
info("finish() was called, cleaning up...");
DevToolsUtils.testing = false;
PrefUtils.rollbackPrefsToDefault();
stopObservingPrefs();
// Manually stop the profiler module at the end of all tests, to hopefully
// avoid at least some leaks on OSX. Theoretically the module should never
// be active at this point. We shouldn't have to do this, but rather
// find and fix the leak in the module itself. Bug 1257439.
- let nsIProfilerModule = Cc["@mozilla.org/tools/profiler;1"].getService(Ci.nsIProfiler);
+ let nsIProfilerModule = Cc["@mozilla.org/tools/profiler;1"]
+ .getService(Ci.nsIProfiler);
nsIProfilerModule.StopProfiler();
// Forces GC, CC and shrinking GC to get rid of disconnected docshells
// and windows.
Cu.forceGC();
Cu.forceCC();
Cu.forceShrinkingGC();
});
--- a/devtools/client/performance/test/helpers/dom-utils.js
+++ b/devtools/client/performance/test/helpers/dom-utils.js
@@ -21,9 +21,10 @@ exports.appendAndWaitForPaint = function
let isE10s = Services.appinfo.browserTabsRemoteAutostart;
if (isE10s) {
let win = parent.ownerDocument.defaultView;
let onMozAfterPaint = waitForMozAfterPaint(win);
parent.appendChild(element);
return onMozAfterPaint;
}
parent.appendChild(element);
+ return null;
};
--- a/devtools/client/performance/test/helpers/event-utils.js
+++ b/devtools/client/performance/test/helpers/event-utils.js
@@ -53,23 +53,25 @@ exports.times = function (target, eventN
if (
// Expected argument matches this regexp.
(options.expectedArgs[index] instanceof RegExp &&
!options.expectedArgs[index].exec(args[index])) ||
// Expected argument is not a regexp and equal to the received arg.
(!(options.expectedArgs[index] instanceof RegExp) &&
options.expectedArgs[index] != args[index])
) {
- dump(`Ignoring event '${eventName}' with unexpected argument at index ${index}: ${args[index]}\n`);
+ dump(`Ignoring event '${eventName}' with unexpected argument at index ` +
+ `${index}: ${args[index]}\n`);
return;
}
}
}
if (--receiveCount > 0) {
- dump(`Event: '${eventName}' on ${target} needs to be fired ${receiveCount} more time(s).\n`);
+ dump(`Event: '${eventName}' on ${target} needs to be fired ${receiveCount} ` +
+ `more time(s).\n`);
} else if (!receiveCount) {
dump(`Event: '${eventName}' on ${target} received.\n`);
target[remove](eventName, onEvent, options.useCapture);
resolve(options.spreadArgs ? args : args[0]);
}
}, options.useCapture);
});
};
@@ -90,21 +92,23 @@ exports.observeTimes = function (notific
return new Promise((resolve, reject) => {
if (typeof notificationName != "string") {
reject(new Error(`Unexpected notification name: ${notificationName}.`));
}
Services.obs.addObserver(function onObserve(subject, topic, data) {
if ("expectedSubject" in options && options.expectedSubject != subject) {
- dump(`Ignoring notification '${notificationName}' with unexpected subject: ${subject}\n`);
+ dump(`Ignoring notification '${notificationName}' with unexpected subject: ` +
+ `${subject}\n`);
return;
}
if (--receiveCount > 0) {
- dump(`Notification: '${notificationName}' needs to be fired ${receiveCount} more time(s).\n`);
+ dump(`Notification: '${notificationName}' needs to be fired ${receiveCount} ` +
+ `more time(s).\n`);
} else if (!receiveCount) {
dump(`Notification: '${notificationName}' received.\n`);
Services.obs.removeObserver(onObserve, topic);
resolve(data);
}
}, notificationName, false);
});
};
--- a/devtools/client/performance/test/helpers/input-utils.js
+++ b/devtools/client/performance/test/helpers/input-utils.js
@@ -5,17 +5,18 @@
exports.HORIZONTAL_AXIS = 1;
exports.VERTICAL_AXIS = 2;
/**
* Simulates a command event on an element.
*/
exports.command = (node) => {
let ev = node.ownerDocument.createEvent("XULCommandEvent");
- ev.initCommandEvent("command", true, true, node.ownerDocument.defaultView, 0, false, false, false, false, null);
+ ev.initCommandEvent("command", true, true, node.ownerDocument.defaultView, 0, false,
+ false, false, false, null);
node.dispatchEvent(ev);
};
/**
* Simulates a click event on a devtools canvas graph.
*/
exports.clickCanvasGraph = (graph, { x, y }) => {
x = x || 0;
--- a/devtools/client/performance/test/helpers/profiler-mm-utils.js
+++ b/devtools/client/performance/test/helpers/profiler-mm-utils.js
@@ -14,100 +14,104 @@ const { Task } = require("devtools/share
const FRAME_SCRIPT_UTILS_URL = "chrome://devtools/content/shared/frame-script-utils.js";
let gMM = null;
/**
* Loads the relevant frame scripts into the provided browser's message manager.
*/
-exports.PMM_loadFrameScripts = (gBrowser) => {
+exports.pmmLoadFrameScripts = (gBrowser) => {
gMM = gBrowser.selectedBrowser.messageManager;
gMM.loadFrameScript(FRAME_SCRIPT_UTILS_URL, false);
};
/**
* Clears the cached message manager.
*/
-exports.PMM_clearFrameScripts = () => {
+exports.pmmClearFrameScripts = () => {
gMM = null;
};
/**
* Sends a message to the message listener, attaching an id to the payload data.
* Resolves a returned promise when the response is received from the message
* listener, with the same id as part of the response payload data.
*/
-exports.PMM_uniqueMessage = function (message, payload) {
+exports.pmmUniqueMessage = function (message, payload) {
if (!gMM) {
- throw new Error("`PMM_loadFrameScripts()` must be called when using MessageManager.");
+ throw new Error("`pmmLoadFrameScripts()` must be called when using MessageManager.");
}
- let { generateUUID } = Cc["@mozilla.org/uuid-generator;1"].getService(Ci.nsIUUIDGenerator);
+ let { generateUUID } = Cc["@mozilla.org/uuid-generator;1"]
+ .getService(Ci.nsIUUIDGenerator);
payload.id = generateUUID().toString();
return new Promise(resolve => {
gMM.addMessageListener(message + ":response", function onHandler({ data }) {
if (payload.id == data.id) {
gMM.removeMessageListener(message + ":response", onHandler);
resolve(data.data);
}
});
gMM.sendAsyncMessage(message, payload);
});
};
/**
* Checks if the nsProfiler module is active.
*/
-exports.PMM_isProfilerActive = () => {
- return exports.PMM_sendProfilerCommand("IsActive");
+exports.pmmIsProfilerActive = () => {
+ return exports.pmmSendProfilerCommand("IsActive");
};
/**
* Starts the nsProfiler module.
*/
-exports.PMM_startProfiler = Task.async(function* ({ entries, interval, features }) {
- let isActive = (yield exports.PMM_sendProfilerCommand("IsActive")).isActive;
+exports.pmmStartProfiler = Task.async(function* ({ entries, interval, features }) {
+ let isActive = (yield exports.pmmSendProfilerCommand("IsActive")).isActive;
if (!isActive) {
- return exports.PMM_sendProfilerCommand("StartProfiler", [entries, interval, features, features.length]);
+ return exports.pmmSendProfilerCommand("StartProfiler", [entries, interval, features,
+ features.length]);
}
+ return null;
});
/**
* Stops the nsProfiler module.
*/
-exports.PMM_stopProfiler = Task.async(function* () {
- let isActive = (yield exports.PMM_sendProfilerCommand("IsActive")).isActive;
+exports.pmmStopProfiler = Task.async(function* () {
+ let isActive = (yield exports.pmmSendProfilerCommand("IsActive")).isActive;
if (isActive) {
- return exports.PMM_sendProfilerCommand("StopProfiler");
+ return exports.pmmSendProfilerCommand("StopProfiler");
}
+ return null;
});
/**
* Calls a method on the nsProfiler module.
*/
-exports.PMM_sendProfilerCommand = (method, args = []) => {
- return exports.PMM_uniqueMessage("devtools:test:profiler", { method, args });
+exports.pmmSendProfilerCommand = (method, args = []) => {
+ return exports.pmmUniqueMessage("devtools:test:profiler", { method, args });
};
/**
* Evaluates a script in content, returning a promise resolved with the
* returned result.
*/
-exports.PMM_evalInDebuggee = (script) => {
- return exports.PMM_uniqueMessage("devtools:test:eval", { script });
+exports.pmmEvalInDebuggee = (script) => {
+ return exports.pmmUniqueMessage("devtools:test:eval", { script });
};
/**
* Evaluates a console method in content.
*/
-exports.PMM_consoleMethod = function (method, ...args) {
+exports.pmmConsoleMethod = function (method, ...args) {
// Terrible ugly hack -- this gets stringified when it uses the
// message manager, so an undefined arg in `console.profileEnd()`
// turns into a stringified "null", which is terrible. This method
// is only used for test helpers, so swap out the argument if its undefined
// with an empty string. Differences between empty string and undefined are
// tested on the front itself.
if (args[0] == null) {
args[0] = "";
}
- return exports.PMM_uniqueMessage("devtools:test:console", { method, args });
+ return exports.pmmUniqueMessage("devtools:test:console", { method, args });
};
--- a/devtools/client/performance/test/helpers/wait-utils.js
+++ b/devtools/client/performance/test/helpers/wait-utils.js
@@ -10,20 +10,22 @@ const DevToolsUtils = require("devtools/
const { once, observeOnce } = require("devtools/client/performance/test/helpers/event-utils");
/**
* Blocks the main thread for the specified amount of time.
*/
exports.busyWait = function (time) {
dump(`Busy waiting for: ${time} milliseconds.\n`);
let start = Date.now();
+ /* eslint-disable no-unused-vars */
let stack;
while (Date.now() - start < time) {
stack = CC.stack;
}
+ /* eslint-enable no-unused-vars */
};
/**
* Idly waits for the specified amount of time.
*/
exports.idleWait = function (time) {
dump(`Idly waiting for: ${time} milliseconds.\n`);
return DevToolsUtils.waitForTime(time);
--- a/devtools/client/performance/test/js_simpleWorker.js
+++ b/devtools/client/performance/test/js_simpleWorker.js
@@ -1,4 +1,6 @@
+"use strict";
+
self.addEventListener("message", function (e) {
self.postMessage(e.data);
self.close();
}, false);
--- a/devtools/client/performance/test/unit/head.js
+++ b/devtools/client/performance/test/unit/head.js
@@ -17,17 +17,17 @@ const PLATFORM_DATA_PREF = "devtools.per
function getFrameNodePath(root, path) {
let calls = root.calls;
let foundNode;
for (let key of path.split(" > ")) {
foundNode = calls.find((node) => node.key == key);
if (!foundNode) {
break;
}
- calls = node.calls;
+ calls = foundNode.calls;
}
return foundNode;
}
/**
* Synthesize a profile for testing.
*/
function synthesizeProfileForTest(samples) {
--- a/devtools/server/tests/browser/browser_markers-timestamp.js
+++ b/devtools/server/tests/browser/browser_markers-timestamp.js
@@ -1,43 +1,43 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Test that we get a "TimeStamp" marker.
*/
const { PerformanceFront } = require("devtools/shared/fronts/performance");
-const { PMM_consoleMethod, PMM_loadFrameScripts, PMM_clearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmConsoleMethod, pmmLoadFrameScripts, pmmClearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
const MARKER_NAME = "TimeStamp";
add_task(function* () {
let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
let doc = browser.contentDocument;
initDebuggerServer();
let client = new DebuggerClient(DebuggerServer.connectPipe());
let form = yield connectDebuggerClient(client);
let front = PerformanceFront(client, form);
yield front.connect();
let rec = yield front.startRecording({ withMarkers: true });
- PMM_loadFrameScripts(gBrowser);
- PMM_consoleMethod("timeStamp");
- PMM_consoleMethod("timeStamp", "myLabel");
+ pmmLoadFrameScripts(gBrowser);
+ pmmConsoleMethod("timeStamp");
+ pmmConsoleMethod("timeStamp", "myLabel");
let markers = yield waitForMarkerType(front, MARKER_NAME, markers => markers.length >= 2);
yield front.stopRecording(rec);
ok(markers.every(({stack}) => typeof stack === "number"), "All markers have stack references.");
ok(markers.every(({name}) => name === "TimeStamp"), "All markers found are TimeStamp markers");
ok(markers.length === 2, "found 2 TimeStamp markers");
ok(markers.every(({start, end}) => typeof start === "number" && start === end),
"All markers have equal start and end times");
is(markers[0].causeName, void 0, "Unlabeled timestamps have an empty causeName");
is(markers[1].causeName, "myLabel", "Labeled timestamps have correct causeName");
- PMM_clearFrameScripts();
+ pmmClearFrameScripts();
yield closeDebuggerClient(client);
gBrowser.removeCurrentTab();
});
--- a/devtools/server/tests/browser/browser_perf-profiler-01.js
+++ b/devtools/server/tests/browser/browser_perf-profiler-01.js
@@ -3,43 +3,43 @@
/**
* Tests if the profiler connection front does not activate the built-in
* profiler module if not necessary, and doesn't deactivate it when
* a recording is stopped.
*/
const { PerformanceFront } = require("devtools/shared/fronts/performance");
-const { PMM_isProfilerActive, PMM_stopProfiler, PMM_loadFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmIsProfilerActive, pmmStopProfiler, pmmLoadFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
add_task(function* () {
let browser = yield addTab(MAIN_DOMAIN + "doc_perf.html");
let doc = browser.contentDocument;
initDebuggerServer();
let client = new DebuggerClient(DebuggerServer.connectPipe());
let form = yield connectDebuggerClient(client);
let front = PerformanceFront(client, form);
yield front.connect();
- PMM_loadFrameScripts(gBrowser);
+ pmmLoadFrameScripts(gBrowser);
- ok(!(yield PMM_isProfilerActive()),
+ ok(!(yield pmmIsProfilerActive()),
"The built-in profiler module should not have been automatically started.");
let rec = yield front.startRecording();
yield front.stopRecording(rec);
- ok((yield PMM_isProfilerActive()),
+ ok((yield pmmIsProfilerActive()),
"The built-in profiler module should still be active (1).");
rec = yield front.startRecording();
yield front.stopRecording(rec);
- ok((yield PMM_isProfilerActive()),
+ ok((yield pmmIsProfilerActive()),
"The built-in profiler module should still be active (2).");
yield front.destroy();
yield closeDebuggerClient(client);
- ok(!(yield PMM_isProfilerActive()),
+ ok(!(yield pmmIsProfilerActive()),
"The built-in profiler module should no longer be active.");
gBrowser.removeCurrentTab();
});
--- a/devtools/server/tests/browser/browser_perf-profiler-02.js
+++ b/devtools/server/tests/browser/browser_perf-profiler-02.js
@@ -2,45 +2,45 @@
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Tests if the built-in profiler module doesn't deactivate when the toolbox
* is destroyed if there are other consumers using it.
*/
const { PerformanceFront } = require("devtools/shared/fronts/performance");
-const { PMM_isProfilerActive, PMM_stopProfiler, PMM_loadFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmIsProfilerActive, pmmStopProfiler, pmmLoadFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
add_task(function* () {
yield addTab(MAIN_DOMAIN + "doc_perf.html");
initDebuggerServer();
let client = new DebuggerClient(DebuggerServer.connectPipe());
let form = yield connectDebuggerClient(client);
let firstFront = PerformanceFront(client, form);
yield firstFront.connect();
- PMM_loadFrameScripts(gBrowser);
+ pmmLoadFrameScripts(gBrowser);
yield firstFront.startRecording();
yield addTab(MAIN_DOMAIN + "doc_perf.html");
let client2 = new DebuggerClient(DebuggerServer.connectPipe());
let form2 = yield connectDebuggerClient(client2);
let secondFront = PerformanceFront(client2, form2);
yield secondFront.connect();
- PMM_loadFrameScripts(gBrowser);
+ pmmLoadFrameScripts(gBrowser);
yield secondFront.startRecording();
// Manually teardown the tabs so we can check profiler status
yield secondFront.destroy();
yield closeDebuggerClient(client2);
- ok((yield PMM_isProfilerActive()),
+ ok((yield pmmIsProfilerActive()),
"The built-in profiler module should still be active.");
yield firstFront.destroy();
yield closeDebuggerClient(client);
- ok(!(yield PMM_isProfilerActive()),
+ ok(!(yield pmmIsProfilerActive()),
"The built-in profiler module should no longer be active.");
gBrowser.removeCurrentTab();
gBrowser.removeCurrentTab();
});
--- a/devtools/server/tests/browser/browser_perf-profiler-03.js
+++ b/devtools/server/tests/browser/browser_perf-profiler-03.js
@@ -4,27 +4,27 @@
/**
* Tests if the built-in profiler module is not reactivated if no other
* consumer was using it over the remote debugger protocol, and ensures
* that the actor will work properly even in such cases (e.g. the Gecko Profiler
* addon was installed and automatically activated the profiler module).
*/
const { PerformanceFront } = require("devtools/shared/fronts/performance");
-const { PMM_isProfilerActive, PMM_startProfiler, PMM_stopProfiler, PMM_loadFrameScripts, PMM_clearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
+const { pmmIsProfilerActive, pmmStartProfiler, pmmStopProfiler, pmmLoadFrameScripts, pmmClearFrameScripts } = require("devtools/client/performance/test/helpers/profiler-mm-utils");
add_task(function* () {
// Ensure the profiler is already running when the test starts.
- PMM_loadFrameScripts(gBrowser);
+ pmmLoadFrameScripts(gBrowser);
let entries = 1000000;
let interval = 1;
let features = ["js"];
- yield PMM_startProfiler({ entries, interval, features });
+ yield pmmStartProfiler({ entries, interval, features });
- ok((yield PMM_isProfilerActive()),
+ ok((yield pmmIsProfilerActive()),
"The built-in profiler module should still be active.");
yield addTab(MAIN_DOMAIN + "doc_perf.html");
initDebuggerServer();
let client = new DebuggerClient(DebuggerServer.connectPipe());
let form = yield connectDebuggerClient(client);
let firstFront = PerformanceFront(client, form);
yield firstFront.connect();
@@ -34,21 +34,21 @@ add_task(function* () {
yield addTab(MAIN_DOMAIN + "doc_perf.html");
let client2 = new DebuggerClient(DebuggerServer.connectPipe());
let form2 = yield connectDebuggerClient(client2);
let secondFront = PerformanceFront(client2, form2);
yield secondFront.connect();
yield secondFront.destroy();
yield closeDebuggerClient(client2);
- ok((yield PMM_isProfilerActive()),
+ ok((yield pmmIsProfilerActive()),
"The built-in profiler module should still be active.");
yield firstFront.destroy();
yield closeDebuggerClient(client);
- ok(!(yield PMM_isProfilerActive()),
+ ok(!(yield pmmIsProfilerActive()),
"The built-in profiler module should have been automatically stopped.");
- PMM_clearFrameScripts();
+ pmmClearFrameScripts();
gBrowser.removeCurrentTab();
gBrowser.removeCurrentTab();
});
--- a/devtools/server/tests/browser/doc_innerHTML.html
+++ b/devtools/server/tests/browser/doc_innerHTML.html
@@ -5,16 +5,17 @@
<html>
<head>
<meta charset="utf-8"/>
<title>Performance tool + innerHTML test page</title>
</head>
<body>
<script type="text/javascript">
- window.test = function () {
- document.body.innerHTML = "<h1>LOL</h1>";
- };
- setInterval(window.test, 100);
+ "use strict";
+ window.test = function () {
+ document.body.innerHTML = "<h1>LOL</h1>";
+ };
+ setInterval(window.test, 100);
</script>
</body>
</html>