mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 01:05:45 +00:00
Bug 1239495 - Label the GC roots in the dominator tree. r=jdescottes
Before this patch, we used the underlying root list's C++ type as the label of the GC roots node in the dominator tree. This patch changes that label to "GC Roots", which does not require knowing our implementation of heap snapshots to understand.
This commit is contained in:
parent
d5dae46c5f
commit
d09fc47e9a
@ -109,6 +109,10 @@ viewsourceindebugger=View source in Debugger → %S
|
||||
# lazily loaded sub trees in the dominator tree view.
|
||||
tree-item.load-more=Load more…
|
||||
|
||||
# LOCALIZATION NOTE (tree-item.rootlist): The label for the root of the
|
||||
# dominator tree.
|
||||
tree-item.rootlist=GC Roots
|
||||
|
||||
# LOCALIZATION NOTE (tree-item.nostack): The label describing the row in the heap tree
|
||||
# that represents a row broken down by allocation stack when no stack was available.
|
||||
tree-item.nostack=(no stack available)
|
||||
|
@ -78,6 +78,12 @@ const DominatorTreeItem = module.exports = createClass({
|
||||
} else if (piece === "noFilename") {
|
||||
label[i * 2] = dom.span({ key, className: "not-available" },
|
||||
L10N.getStr("tree-item.nofilename"));
|
||||
} else if (piece === "JS::ubi::RootList") {
|
||||
// Don't use the usual labeling machinery for root lists: replace it
|
||||
// with the "GC Roots" string.
|
||||
label.splice(0, label.length);
|
||||
label.push(L10N.getStr("tree-item.rootlist"));
|
||||
break;
|
||||
} else {
|
||||
label[i * 2] = piece;
|
||||
}
|
||||
|
@ -4,6 +4,7 @@ support-files =
|
||||
|
||||
[test_DominatorTree_01.html]
|
||||
[test_DominatorTree_02.html]
|
||||
[test_DominatorTreeItem_01.html]
|
||||
[test_Heap_01.html]
|
||||
[test_Heap_02.html]
|
||||
[test_Heap_03.html]
|
||||
|
@ -35,6 +35,7 @@ var React = require("devtools/client/shared/vendor/react");
|
||||
var ReactDOM = require("devtools/client/shared/vendor/react-dom");
|
||||
var Heap = React.createFactory(require("devtools/client/memory/components/heap"));
|
||||
var DominatorTreeComponent = React.createFactory(require("devtools/client/memory/components/dominator-tree"));
|
||||
var DominatorTreeItem = React.createFactory(require("devtools/client/memory/components/dominator-tree-item"));
|
||||
var Toolbar = React.createFactory(require("devtools/client/memory/components/toolbar"));
|
||||
|
||||
// All tests are asynchronous.
|
||||
|
@ -0,0 +1,45 @@
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
Test that we don't display `JS::ubi::RootList` for the root, and instead show "GC Roots".
|
||||
-->
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Tree component test</title>
|
||||
<script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="chrome://mochikit/content/tests/SimpleTest/test.css">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Give the container height so that the whole tree is rendered. -->
|
||||
<div id="container" style="height: 900px;"></div>
|
||||
|
||||
<pre id="test">
|
||||
<script src="head.js" type="application/javascript;version=1.8"></script>
|
||||
<script type="application/javascript;version=1.8">
|
||||
window.onload = Task.async(function* () {
|
||||
try {
|
||||
const container = document.getElementById("container");
|
||||
|
||||
yield renderComponent(DominatorTreeItem({
|
||||
item: makeTestDominatorTreeNode({ label: ["other", "JS::ubi::RootList"] }),
|
||||
depth: 0,
|
||||
arrow: React.DOM.div(),
|
||||
focused: true,
|
||||
getPercentSize: _ => 50,
|
||||
onViewSourceInDebugger: _ => { },
|
||||
}), container);
|
||||
|
||||
ok(container.textContent.indexOf("JS::ubi::RootList") == -1,
|
||||
"Should not display `JS::ubi::RootList`");
|
||||
ok(container.textContent.indexOf("GC Roots") >= 0,
|
||||
"Should display `GC Roots` instead");
|
||||
} catch(e) {
|
||||
ok(false, "Got an error: " + DevToolsUtils.safeErrorString(e));
|
||||
} finally {
|
||||
SimpleTest.finish();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</pre>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user