)]}'
{
  "commit": "b9ed6a7a1ddb6bfc3be4db1ccf1f3748a7dc3ebf",
  "tree": "4ee4268f4ace04c33abd85447b7931f48f1376a9",
  "parents": [
    "9729a7e863c7a8ecefeb9189338c55412fd4b672"
  ],
  "author": {
    "name": "Nicolo\u0027 Mazzucato",
    "email": "nicomazz@google.com",
    "time": "Tue Sep 08 20:13:27 2026 +0000"
  },
  "committer": {
    "name": "Nicolo\u0027 Mazzucato",
    "email": "nicomazz@google.com",
    "time": "Fri Sep 11 00:45:54 2026 +0000"
  },
  "message": "ui: [NOT FOR REVIEW] Support viewing traces over reverse proxies\n\nAllow traces recorded on a remote development host to be viewed directly in a browser over reverse proxies without SSH port forwarding. Adds cspAllowRemoteHosts flag, service worker HTTP bypass, HTTPS proxy origin rewrite in loadTraceFromUrl, and CORS/PNA support in python trace tools.\n\nChange-Id: Ia2efb3b65cc6ecea2b8b23c487f81c8eb1553188\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8861b1e34d38b34e3b54851919c357e3c37d6828",
      "old_mode": 33188,
      "old_path": "python/BUILD.gn",
      "new_id": "34541f38a9c25584e60032ed607621d9d49c52bb",
      "new_mode": 33188,
      "new_path": "python/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b326c9aceae66700d67aacd6501f64d0f10aab2a",
      "new_mode": 33188,
      "new_path": "python/perfetto/common/open_trace_server.py"
    },
    {
      "type": "modify",
      "old_id": "5a53a24f8cf1fcbf6e2357bcb32c55eac7841c5e",
      "old_mode": 33261,
      "old_path": "python/run_tests.py",
      "new_id": "eb6d2210ec35919b903f35ec67c6e6a88a4eb41f",
      "new_mode": 33261,
      "new_path": "python/run_tests.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "121a8c5066ab27815ffc125e3172646f72a2c07b",
      "new_mode": 33188,
      "new_path": "python/test/open_trace_e2e_test.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c5483074eac26be59724474c4d95fa74bc06312c",
      "new_mode": 33188,
      "new_path": "python/test/open_trace_server_unittest.py"
    },
    {
      "type": "modify",
      "old_id": "4a1497f176a6ff020c1e8c3d8612bfa8d8d2793f",
      "old_mode": 33261,
      "old_path": "python/tools/record_android_trace.py",
      "new_id": "ed9460f6c8c144d68bd5d79a638b022b57dc4cdc",
      "new_mode": 33261,
      "new_path": "python/tools/record_android_trace.py"
    },
    {
      "type": "modify",
      "old_id": "d644e6545cbcd65c745cd18952a8340375e939bb",
      "old_mode": 33261,
      "old_path": "tools/open_trace_in_ui",
      "new_id": "8e45dfc79678318c4abb538367c845a2d6d2ae27",
      "new_mode": 33261,
      "new_path": "tools/open_trace_in_ui"
    },
    {
      "type": "modify",
      "old_id": "9d1095616273fe055aa825d26c6ac93a618200c3",
      "old_mode": 33261,
      "old_path": "tools/record_android_trace",
      "new_id": "2d272028140bb0bca74a314399f26287bb394953",
      "new_mode": 33261,
      "new_path": "tools/record_android_trace"
    }
  ]
}
