Bug 1156499 - Disable all non-profiler/fps components in the performance tools when in aurora, for 40.0 release. r=vp

This commit is contained in:
Jordan Santell 2015-04-30 15:13:49 -07:00
Родитель bee499f64f
Коммит 1402297ff2
8 изменённых файлов: 115 добавлений и 6 удалений

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

@ -1443,6 +1443,15 @@ pref("devtools.performance.ui.show-idle-blocks", true);
pref("devtools.performance.ui.enable-memory", false);
pref("devtools.performance.ui.enable-framerate", true);
pref("devtools.performance.ui.show-jit-optimizations", false);
// If in aurora (40.0, will revert for 40.1), set default
// to retro mode.
// TODO bug 1160313
#if MOZ_UPDATE_CHANNEL == aurora
pref("devtools.performance.ui.retro-mode", true);
#else
pref("devtools.performance.ui.retro-mode", false);
#endif
// The default cache UI setting
pref("devtools.cache.disabled", false);

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

@ -26,6 +26,9 @@ loader.lazyRequireGetter(this, "MarkersOverview",
loader.lazyRequireGetter(this, "EventEmitter",
"devtools/toolkit/event-emitter");
// TODO get rid of retro mode in bug 1160313
loader.lazyRequireGetter(this, "Services");
/**
* For line graphs
*/
@ -165,6 +168,24 @@ const GRAPH_DEFINITIONS = {
}
};
// TODO get rid of retro mode in bug 1160313
const GRAPH_DEFINITIONS_RETRO = {
memory: {
constructor: MemoryGraph,
selector: "#memory-overview",
},
framerate: {
constructor: FramerateGraph,
selector: "#time-framerate",
needsBlueprints: true,
primaryLink: true
},
timeline: {
constructor: TimelineGraph,
selector: "#markers-overview",
}
};
/**
* A controller for orchestrating the performance's tool overview graphs. Constructs,
* syncs, toggles displays and defines the memory, framerate and timeline view.
@ -177,7 +198,9 @@ const GRAPH_DEFINITIONS = {
function GraphsController ({ definition, root, getBlueprint, getTheme }) {
this._graphs = {};
this._enabled = new Set();
this._definition = definition || GRAPH_DEFINITIONS;
// TODO get rid of retro mode in bug 1160313
let RETRO_MODE = Services.prefs.getBoolPref("devtools.performance.ui.retro-mode");
this._definition = definition || (RETRO_MODE ? GRAPH_DEFINITIONS_RETRO : GRAPH_DEFINITIONS);
this._root = root;
this._getBlueprint = getBlueprint;
this._getTheme = getTheme;

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

@ -284,11 +284,16 @@ let PerformanceController = {
* when the front has started to record.
*/
startRecording: Task.async(function *() {
// Store retro-mode here so we can easily list true/false
// values for reverting.
// TODO bug 1160313
let superMode = !this.getOption("retro-mode");
let options = {
withMarkers: true,
withMemory: this.getOption("enable-memory"),
withMarkers: superMode ? true : false,
withMemory: superMode ? this.getOption("enable-memory") : false,
withTicks: this.getOption("enable-framerate"),
withAllocations: this.getOption("enable-memory"),
withAllocations: superMode ? this.getOption("enable-memory") : false,
allocationsSampleProbability: this.getPref("memory-sample-probability"),
allocationsMaxLogLength: this.getPref("memory-max-log-length"),
bufferSize: this.getPref("profiler-buffer-size"),

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

@ -124,3 +124,5 @@ support-files =
[browser_profiler_tree-view-08.js]
[browser_timeline_blueprint.js]
[browser_timeline_filters.js]
# remove in bug 1160313
[browser_retro-test.js]

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

@ -0,0 +1,49 @@
/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Tests that only js-calltree view is on, default, and many things are hidden
* when in retro mode.
*/
const HIDDEN_OPTIONS = ["option-enable-memory", "option-invert-flame-graph", "option-show-jit-optimizations", "option-flatten-tree-recursion"];
Services.prefs.setBoolPref("devtools.performance.ui.retro-mode", true);
function spawnTest () {
let { panel } = yield initPerformance(SIMPLE_URL);
let { EVENTS, DetailsView, PerformanceController, $, $$, JsCallTreeView } = panel.panelWin;
yield startRecording(panel);
yield stopRecording(panel);
let model = PerformanceController.getCurrentRecording();
ok(model.getMemory().length === 0, "model did not record memory.");
ok(model.getTicks().length !== 0, "model did get ticks.");
ok(model.getAllocations().sites.length === 0, "model did get allocation data.");
ok(model.getAllocations().timestamps.length === 0, "model did get allocation data.");
ok(model.getAllocations().frames.length === 0, "model did get allocation data.");
ok(model.getAllocations().counts.length === 0, "model did get allocation data.");
ok(DetailsView.isViewSelected(JsCallTreeView),
"The jscalltree view is selected by default");
for (let option of $$("#performance-options-menupopup > menuitem")) {
if (HIDDEN_OPTIONS.indexOf(option.id) !== -1) {
ok(option.hidden === true, `${option.id} should be hidden.`);
} else {
ok(option.hidden === false, `${option.id} should be visible.`);
}
}
for (let viewbutton of $$("#performance-toolbar-controls-detail-views > toolbarbutton")) {
ok (viewbutton.hidden === true, `${viewbutton.id} should be hidden.`);
}
ok($("#markers-overview").hidden, "markers overview should be hidden.");
ok($("#memory-overview").hidden, "memory overview should be hidden.");
ok(!$("#time-framerate").hidden, "framerate should be shown.");
yield teardown(panel);
finish();
}

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

@ -56,6 +56,7 @@ let DEFAULT_PREFS = [
"devtools.performance.memory.max-log-length",
"devtools.performance.profiler.buffer-size",
"devtools.performance.profiler.sample-frequency-khz",
"devtools.performance.ui.retro-mode",
].reduce((prefs, pref) => {
prefs[pref] = Preferences.get(pref);
return prefs;
@ -67,6 +68,10 @@ Services.prefs.setBoolPref("devtools.performance.enabled", true);
// be affected by this pref.
Services.prefs.setBoolPref("devtools.debugger.log", false);
// Disable retro mode.
// TODO bug 1160313
Services.prefs.setBoolPref("devtools.performance.ui.retro-mode", false);
/**
* Call manually in tests that use frame script utils after initializing
* the tool. Must be called after initializing so we can detect

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

@ -94,9 +94,12 @@ let DetailsView = {
let invalidCurrentView = false;
for (let [name, { view }] of Iterator(this.components)) {
let isSupported = this._isViewSupported(name, false);
// TODO bug 1160313 get rid of retro mode checks.
let isRetro = PerformanceController.getOption("retro-mode");
let isSupported = isRetro ? name === "js-calltree" : this._isViewSupported(name, false);
$(`toolbarbutton[data-view=${name}]`).hidden = !isSupported;
// TODO bug 1160313 hide all view buttons, but let js-calltree still be "supported"
$(`toolbarbutton[data-view=${name}]`).hidden = isRetro ? true : !isSupported;
// If the view is currently selected and not supported, go back to the
// default view.

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

@ -21,6 +21,19 @@ let ToolbarView = {
menupopup: $("#performance-options-menupopup")
});
// TODO bug 1160313 get rid of retro mode checks
// hide option buttons here, and any other buttons in the toolbar
// (details.js takes care of view buttons)
if (PerformanceController.getOption("retro-mode")) {
let RETRO_ELEMENTS = [
"#option-flatten-tree-recursion", "#option-enable-memory", "#option-invert-flame-graph",
"#option-show-jit-optimizations", "#filter-button"
];
for (let selector of RETRO_ELEMENTS) {
$(selector).hidden = true;
}
}
yield this.optionsView.initialize();
this.optionsView.on("pref-changed", this._onPrefChanged);