)]}'
{
  "commit": "20dc99a8d89993df6b3182d8bcb37288e79e0fb2",
  "tree": "e1e2a1d4db3462ed23de3c96757ed4910ee65a5f",
  "parents": [
    "776ed75b5924f5104641b68d31ea83d44be49690"
  ],
  "author": {
    "name": "Zimuzo Ezeozue",
    "email": "zezeozue@google.com",
    "time": "Fri Feb 20 11:49:04 2026 +0000"
  },
  "committer": {
    "name": "Zimuzo Ezeozue",
    "email": "zezeozue@google.com",
    "time": "Thu Mar 19 18:30:02 2026 +0000"
  },
  "message": "tp: Track process lifecycle from Android framework events\n\nIn some traces, ftrace only captures an initial process snapshot.\nSubsequent starts and deaths come from the Android framework via\nAndroidProcessStartEvent (process_bound) and AndroidBinderDiedEvent\n(binder_died) track events carrying pid, uid, and process_name.\n\nHook into ProtoToArgsParser::AddParsingOverrideForType to intercept\nthese events during arg parsing. For starts, reuse the existing\nprocess if ftrace already created it (filling in uid only), otherwise\ncreate one via StartNewProcessWithoutMainThread. For deaths, set\nuid/name on the process row before marking it ended.\n\nAdd ProcessTracker::EndProcess() to handle ending processes created\nboth with and without a main thread. Add ProcessTracker::UpidForPid()\nas a public lookup (previously test-only).\n\nChange-Id: I167ed69400f3bbc5f9f753407cdbfae83110fd3f\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c811b359b822531906e945132df9b3ee6a6bd537",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/common/process_tracker.cc",
      "new_id": "22dea82e1e934a475c153b5fdc0fcc38cf4eb8ca",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/common/process_tracker.cc"
    },
    {
      "type": "modify",
      "old_id": "9b8bde4547232adf366030c25fb68b4c3145aa4a",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/common/process_tracker.h",
      "new_id": "eeba29599f6abcc5945b1b9514e78330dcb5e604",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/common/process_tracker.h"
    },
    {
      "type": "modify",
      "old_id": "b272a2e940b342acf3310e89b026c2e2ab230532",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/common/process_tracker_unittest.cc",
      "new_id": "7c5c7bcb9426ac4cf7b106725fecd527d8bf6d10",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/common/process_tracker_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "034d4071cb9419291495370ce64da7975e93ad83",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/proto/track_event_event_importer.h",
      "new_id": "5b176e514e099aed5bf2c7c4de89ea4a503d99e1",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/proto/track_event_event_importer.h"
    },
    {
      "type": "modify",
      "old_id": "4780e0d3ba1f2733fb650102f8eced25afc07206",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/proto/track_event_parser.cc",
      "new_id": "06e0e83d1e3a3256a96525c56259450aaa129e49",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/proto/track_event_parser.cc"
    }
  ]
}
