)]}'
{
  "commit": "93a4689c6c5a2837310dbd69ac226d0c74dfcb86",
  "tree": "f22b344d4cd5d2e7717f2d2ee8b7a7eaaac42f3b",
  "parents": [
    "4cae574dfe1ce3d5d6351f4f12ff52cdd7493504"
  ],
  "author": {
    "name": "Steve Golton",
    "email": "stevegolton@google.com",
    "time": "Mon Aug 24 10:05:07 2026 +0100"
  },
  "committer": {
    "name": "Steve Golton",
    "email": "stevegolton@google.com",
    "time": "Mon Aug 24 12:22:22 2026 +0100"
  },
  "message": "ui: Add \u0027Share to GDrive\u0027 for the current trace\n\nBuild on the Google Drive client to let internal users upload and share\nthe currently loaded trace to Google Drive.\n\n- Add a \u0027Share to GDrive\u0027 sidebar button (gated to internal users) that\n  opens a modal with a ShareForm.\n- Add ShareForm (presentation-only, driven by callbacks) with an upload\n  form and an already-uploaded success state (open in Drive / copy link /\n  share), plus its styles.\n- Extend the GDrive client with uploadFile, pickFolder and\n  openSharingDialog, and track each trace\u0027s uploaded file id so the form\n  can show the already-uploaded state.\n- Support opening a trace from a ?openFileId\u003d share link (generated by the\n  ShareForm), reusing the same authenticate-then-open flow as the \"Open\n  with\" deep link.\n- Store the trace file size in a dedicated TraceInfo field (fileSizeBytes)\n  instead of baking it into the title, and surface it in the sidebar.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "36c68377c7e14ea534a7a059e62bf0d87371d244",
      "old_mode": 33188,
      "old_path": "CHANGELOG",
      "new_id": "e1b389bf76e9272e5f238a318bc65642af781fcf",
      "new_mode": 33188,
      "new_path": "CHANGELOG"
    },
    {
      "type": "modify",
      "old_id": "e21e8508aa68af9a3c8632e041094d2920e40ec4",
      "old_mode": 33188,
      "old_path": "ui/src/core/load_trace.ts",
      "new_id": "5dfe07c848499bdc5a111dbd974e5e73d7d0c1a5",
      "new_mode": 33188,
      "new_path": "ui/src/core/load_trace.ts"
    },
    {
      "type": "modify",
      "old_id": "8ad6b8cb98e8eb463a2ed639ea2782f8fbc85235",
      "old_mode": 33188,
      "old_path": "ui/src/core_plugins/dev.perfetto.GoogleDrive/gdrive_client.ts",
      "new_id": "cc26ba9152271ae90adb18fcaaf38947d1ca4e89",
      "new_mode": 33188,
      "new_path": "ui/src/core_plugins/dev.perfetto.GoogleDrive/gdrive_client.ts"
    },
    {
      "type": "modify",
      "old_id": "433fcf5707e8fd4a91a3fa29eea38f77e00cf423",
      "old_mode": 33188,
      "old_path": "ui/src/core_plugins/dev.perfetto.GoogleDrive/index.ts",
      "new_id": "1cc8734994acc7966a8d3c965896998bf011b838",
      "new_mode": 33188,
      "new_path": "ui/src/core_plugins/dev.perfetto.GoogleDrive/index.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "061d929371df0e5ec89dd467c07a716485980247",
      "new_mode": 33188,
      "new_path": "ui/src/core_plugins/dev.perfetto.GoogleDrive/share_form.ts"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e85f0b55acde4f6ff597d467a211c484774cc9e4",
      "new_mode": 33188,
      "new_path": "ui/src/core_plugins/dev.perfetto.GoogleDrive/styles.scss"
    },
    {
      "type": "modify",
      "old_id": "e6a7ba5fcdbfd12fd231b4c161e883d8b9eafe70",
      "old_mode": 33188,
      "old_path": "ui/src/frontend/views/sidebar.ts",
      "new_id": "2a1171bfd7478740673a0eee5c61a17bd640a053",
      "new_mode": 33188,
      "new_path": "ui/src/frontend/views/sidebar.ts"
    },
    {
      "type": "modify",
      "old_id": "ce97ceee6e2b8c8a2f7bec2b95e2ce8dcf8f8ae0",
      "old_mode": 33188,
      "old_path": "ui/src/public/trace_info.ts",
      "new_id": "2530a7eeca6773d3e3a09f12ba1c7601b27d8974",
      "new_mode": 33188,
      "new_path": "ui/src/public/trace_info.ts"
    },
    {
      "type": "modify",
      "old_id": "9cb810ee66b5b6dcbff2afb3d2be785e72737202",
      "old_mode": 33188,
      "old_path": "ui/src/widgets/copy_to_clipboard_button.ts",
      "new_id": "1f82e9b546e22467967c605189e5dbdb3182c167",
      "new_mode": 33188,
      "new_path": "ui/src/widgets/copy_to_clipboard_button.ts"
    }
  ]
}
