)]}'
{
  "commit": "7f314dae8ccf72ba399720746e54bcfcd5b68a31",
  "tree": "cb684e0b707d5e2c26a3ac3a4f81fc26e23ae963",
  "parents": [
    "5ef59a6941059614e1fcd9f8b1d2f01c6f0f1eba"
  ],
  "author": {
    "name": "Zimuzo Ezeozue",
    "email": "zezeozue@google.com",
    "time": "Wed Jul 22 16:30:56 2026 +0100"
  },
  "committer": {
    "name": "Zimuzo Ezeozue",
    "email": "zezeozue@google.com",
    "time": "Wed Jul 22 16:30:56 2026 +0100"
  },
  "message": "ui: add a table view to flamegraphs\n\nAdd a Flame/Table toggle to the flamegraph filter bar. Table mode shows\nthe same tree as the canvas — one expandable row per node with self and\ncumulative values and the share of the root total — so metric selection,\nfilters and the top-down/bottom-up/pivot views apply to both modes.\n\nThe table is a DataGrid in id-based tree mode. QueryFlamegraph backs it\nwith a source over the nodes the canvas already holds, so nothing extra\nis loaded: expanding walks only the visible part of the tree and the\ngrid virtualises the DOM. Callers without a resident node array can pass\na SQL data source instead, which fetches one level per expansion. The\nFlamegraph widget delegates the rendering to a renderTableView hook,\nkeeping the widgets layer free of DataGrid dependencies.\n\nChange-Id: Idb509db6acd2fb22cefd51d7775628251aeb56b8\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9a9733ac458d6bd351c2c325512da8bb6eebd672",
      "new_mode": 33188,
      "new_path": "ui/src/components/flamegraph_table.ts"
    },
    {
      "type": "modify",
      "old_id": "bf895fc88046d9d8b7fdce138f1d17de794e77aa",
      "old_mode": 33188,
      "old_path": "ui/src/components/query_flamegraph.ts",
      "new_id": "8c571ed7d6c47de0e17f31db1d0b52c4d2075362",
      "new_mode": 33188,
      "new_path": "ui/src/components/query_flamegraph.ts"
    },
    {
      "type": "modify",
      "old_id": "4506dbb5736d388587ec5044b89261d3fa972019",
      "old_mode": 33188,
      "old_path": "ui/src/plugins/com.android.HeapDumpExplorer/session.ts",
      "new_id": "92dd98a790307a1112e342f128da704048d0d869",
      "new_mode": 33188,
      "new_path": "ui/src/plugins/com.android.HeapDumpExplorer/session.ts"
    },
    {
      "type": "modify",
      "old_id": "99afd0d2af72d162ea0fa9c637a4cca2a44d0ec4",
      "old_mode": 33188,
      "old_path": "ui/src/widgets/flamegraph.scss",
      "new_id": "9bce5a64a376d0c9ad75326aff87248918db3584",
      "new_mode": 33188,
      "new_path": "ui/src/widgets/flamegraph.scss"
    },
    {
      "type": "modify",
      "old_id": "72cb93ac651d6788c66f7997b36ef7a3e62c7c94",
      "old_mode": 33188,
      "old_path": "ui/src/widgets/flamegraph.ts",
      "new_id": "af3673942724265501666153669b97480d8d7f25",
      "new_mode": 33188,
      "new_path": "ui/src/widgets/flamegraph.ts"
    }
  ]
}
