This adds the INDIVIDUALS view state to the memory panel, renames "dominator tree display" to "label display", and adds a view for listing the individual nodes in a census group and inspecting each nodes' retaining paths.
50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
"use strict";
|
|
|
|
const { assert } = require("devtools/shared/DevToolsUtils");
|
|
const { actions, viewState } = require("../constants");
|
|
|
|
const handlers = Object.create(null);
|
|
|
|
handlers[actions.POP_VIEW] = function (view, _) {
|
|
assert(view.previous, "Had better have a previous view state when POP_VIEW");
|
|
return Object.freeze({
|
|
state: view.previous.state,
|
|
previous: null,
|
|
});
|
|
};
|
|
|
|
handlers[actions.CHANGE_VIEW] = function (view, action) {
|
|
const { newViewState, oldDiffing, oldSelected } = action;
|
|
assert(newViewState);
|
|
|
|
if (newViewState === viewState.INDIVIDUALS) {
|
|
assert(oldDiffing || oldSelected);
|
|
return Object.freeze({
|
|
state: newViewState,
|
|
previous: Object.freeze({
|
|
state: view.state,
|
|
selected: oldSelected,
|
|
diffing: oldDiffing,
|
|
}),
|
|
});
|
|
}
|
|
|
|
return Object.freeze({
|
|
state: newViewState,
|
|
previous: null,
|
|
});
|
|
};
|
|
|
|
const DEFAULT_VIEW = {
|
|
state: viewState.TREE_MAP,
|
|
previous: null,
|
|
};
|
|
|
|
module.exports = function (view = DEFAULT_VIEW, action) {
|
|
const handler = handlers[action.type];
|
|
return handler ? handler(view, action) : view;
|
|
};
|