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.
--HG--
rename : devtools/client/memory/actions/dominator-tree-display.js => devtools/client/memory/actions/label-display.js
rename : devtools/client/memory/reducers/dominator-tree-display.js => devtools/client/memory/reducers/label-display.js
Effectively, this moves `inverted` from a global and per-census state, to a
per-`breakdownModel` state. Additionally, a `breakdownModel` is not just a
breakdown spec anymore, but also some extra associated metadata. As such, it has
been split in two and renamed to "censusDisplayModel" and
"dominatorTreeDisplayModel".
--HG--
rename : devtools/client/memory/reducers/breakdown.js => devtools/client/memory/reducers/census-display.js
rename : devtools/client/memory/reducers/dominatorTreeBreakdown.js => devtools/client/memory/reducers/dominator-tree-display.js
rename : devtools/client/memory/test/browser/browser_memory_allocationStackBreakdown_01.js => devtools/client/memory/test/browser/browser_memory_allocationStackDisplay_01.js
rename : devtools/client/memory/test/browser/browser_memory_breakdowns_01.js => devtools/client/memory/test/browser/browser_memory_displays_01.js
rename : devtools/client/memory/test/unit/test_action-set-breakdown-and-refresh-02.js => devtools/client/memory/test/unit/test_action-set-display-and-refresh-02.js
This commit extends the devtools' memory panel's dominators view with a sidebar
that displays the 5 shortest retaining paths from the GC roots for the selected
node in the dominator tree.
This patch overhauls the memory tool's frontend from being in a state of viewing
a snapshot's census (the implicit default) or viewing a census diff (a special
cased kind of thing) to one of three recognized view states: (1) census, (2)
diffing, or (3) dominator tree. The logic surrounding our current view is more
explicit now. View option (3) is the new one, whose introduction required those
clean ups.
Dominator trees are too large to render in full, all at once. Instead, we
eagerly load and render a few levels deep and then incrementally fetch further
subtrees as their parents are expanded in the UI. This means that we get new
Tree component instances across incremental fetches. Before this commit, the
Tree component stored a bunch of state internally (in this.state rather than
this.props) and we would lose focus and expansion state across incremental
fetches. This internal state has been pulled out and made as explicit props,
which are now managed by actions and reducers just like the rest of the state.
--HG--
rename : devtools/client/memory/components/tree-item.js => devtools/client/memory/components/census-tree-item.js