)]}'
{
  "log": [
    {
      "commit": "a9ce8546e44a2697302a453aa64137cc39fd2422",
      "tree": "fff83c6c942adfd531cf4fa41c5e9673d846f026",
      "parents": [
        "1090a2235346af05c2c813022396602a42721895"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Sat Sep 05 13:58:05 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Sep 05 14:55:08 2026"
      },
      "message": "Roll Perfetto from d0d8c6fa5f74 to 03eb494aa440 (1 revision)\n\nhttps://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/d0d8c6fa5f74..03eb494aa440\n\n2026-09-05 ivanterescheenko@gmail.com tp: fix the strace importer on real -f and -T output (#7224)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/perfetto-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Perfetto: https://github.com/google/perfetto/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: I2989584d01a9439c5356eb79555c97786a711261\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8360554\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "1090a2235346af05c2c813022396602a42721895",
      "tree": "f4cc55fb6fb87826ebb2c8bd07e747ba51c1754e",
      "parents": [
        "b3c92d2bdea21a59f2f4a96f2d692eb17ae050e0"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Fri Sep 04 19:58:05 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 04 21:11:35 2026"
      },
      "message": "Roll Perfetto from 269b4e55f848 to d0d8c6fa5f74 (10 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/269b4e55f848..d0d8c6fa5f74\n\n2026-09-04 gignat@google.com stdlib: add android.lock_held stdlib module (#7340)\n2026-09-04 ryanvm@gmail.com base: give flat_hash_map\u0027s IsLookupKeyAllowed external linkage (clang 23 -Wunused-template) (#7346)\n2026-09-04 lalitm@google.com tp: prove finalized Dataframe supports concurrent cursors (#7343)\n2026-09-04 lalitm@google.com tp: add concurrency stress-test harness for multi-threaded TP (#7342)\n2026-09-04 sanath099@gmail.com tp: stdlib: add track-event-based JobScheduler queries (#5324)\n2026-09-04 lalitm@google.com tp: order tree rows parent first without breaking the pipeline (#7330)\n2026-09-04 lalitm@google.com tp: order tree rows child first (#7214)\n2026-09-04 lalitm@google.com tp: finish operators after the last input (#7329)\n2026-09-04 lalitm@google.com tp: add pipeline breakers (#7328)\n2026-09-04 lalitm@google.com tp: assign dense tree node numbers (#7213)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/perfetto-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Perfetto: https://github.com/google/perfetto/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: I595e9cf1edddf635e683cda7f97a61f4e872f8b8\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8349957\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b3c92d2bdea21a59f2f4a96f2d692eb17ae050e0",
      "tree": "e10f3fc5e7b2968dc19b23222d9819cce1a15b72",
      "parents": [
        "539a378fe221a84e232d78a5368dc300630bbf2f"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Fri Sep 04 13:57:49 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 04 14:41:55 2026"
      },
      "message": "Roll Perfetto from 3c6ef6dfedd4 to 269b4e55f848 (5 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/3c6ef6dfedd4..269b4e55f848\n\n2026-09-04 gignat@google.com ui: step through aggregate profiles with the arrow keys (#7336)\n2026-09-04 keanmariotti@google.com tools: add java_blob_emitter (#7339)\n2026-09-04 sashwinbalaji@google.com perfetto: add sdk variant of libperfetto_client_experimental (#7311)\n2026-09-04 gignat@google.com bt-ui: convert bigtrace into a single-page application (#7127)\n2026-09-04 stevegolton@google.com ui: Add \u0027Show only direct flows\u0027 setting to FlowEvents plugin (#7296)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/perfetto-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Perfetto: https://github.com/google/perfetto/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: Ideb495ce03cd110377d76b1bb9fe2a17a82a3e00\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8348791\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "539a378fe221a84e232d78a5368dc300630bbf2f",
      "tree": "2ca8dc8c4c067e3a9608b2503f4b6189e391d3f6",
      "parents": [
        "3e252691f2d93051b7b05d2a6910b14824e07794"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Fri Sep 04 01:58:02 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Sep 04 03:06:49 2026"
      },
      "message": "Roll Perfetto from 9aa4e2e09b82 to 3c6ef6dfedd4 (5 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/9aa4e2e09b82..3c6ef6dfedd4\n\n2026-09-04 lalitm@google.com tp: let TraceBlob wrap memory it does not own (#7269)\n2026-09-04 lalitm@google.com protozero: remove Append() and its fastpath (#7267)\n2026-09-04 lalitm@google.com base: stream HTTP and websocket payloads into the handler\u0027s buffer (#7266)\n2026-09-03 safayat@google.com traced: Don\u0027t compress clock snapshot, trace config and uuid (#7300)\n2026-09-03 gignat@google.com ui: add copy button for aggregate profile name and fix initial render (#7333)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/perfetto-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Perfetto: https://github.com/google/perfetto/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: I92528cf00a4aa8e55a77dab39f2790362c861481\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8351992\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "3e252691f2d93051b7b05d2a6910b14824e07794",
      "tree": "0f6d69b0ef6098c1702a71d5b14727399efe5bb9",
      "parents": [
        "6fdc8aee059212df84916043adfb4c8f073c92ec"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Thu Sep 03 19:58:02 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Sep 03 21:14:38 2026"
      },
      "message": "Roll Perfetto from 87f0c25cfa45 to 9aa4e2e09b82 (2 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/87f0c25cfa45..9aa4e2e09b82\n\n2026-09-03 parthsane@gmail.com perfetto: expose PerfettoSDK Java libs to ART modules (#7230)\n2026-09-03 stevegolton@google.com ui: Fix connected flows panel showing all connected flows (#7334)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/perfetto-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Perfetto: https://github.com/google/perfetto/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: Ifef2d9fdf522e3407741617e774bc0f260fa4a0a\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8356248\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "6fdc8aee059212df84916043adfb4c8f073c92ec",
      "tree": "d75e0271ac0ddbfa42c6387987c5b14c37efc0f3",
      "parents": [
        "91926a22dd8256d59b3d6f6cb44a58e27b197ec7"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Thu Sep 03 13:58:02 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Sep 03 14:30:01 2026"
      },
      "message": "Roll Perfetto from b36e97037c37 to 87f0c25cfa45 (8 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/b36e97037c37..87f0c25cfa45\n\n2026-09-03 stevegolton@google.com ui: Serialise workspaces to permalink (#6930)\n2026-09-03 dragosp@google.com Add the new extension merger in the gen_bazel tool (#7332)\n2026-09-03 lalitm@google.com tp: give the RPC layer one framing stream per connection (#7274)\n2026-09-03 lalitm@google.com ui: write wasm RPC requests directly into the tokenizer (#7265)\n2026-09-03 lalitm@google.com protozero: let transports read directly into ProtoRingBuffer (#7264)\n2026-09-03 Zi-Yi) Tai ui: GpuCompute: correct the Summary tab and rename Workload Analysis (#7242)\n2026-09-03 lalitm@google.com tp: validate variant column types (#7167)\n2026-09-03 safayat@google.com profiling: Update RegsFake test helper for libunwindstack API changes (#7200)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/perfetto-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Perfetto: https://github.com/google/perfetto/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: Ifcee52dee7dc3b8e005ed582672c99781ed16c8b\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8349448\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "91926a22dd8256d59b3d6f6cb44a58e27b197ec7",
      "tree": "fb321a09539e3e789be07a844b43d125ac8663d9",
      "parents": [
        "3f6e46abdcb4a2593fdbc8f9364b08b2b9b3ac23"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Thu Sep 03 10:11:02 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Sep 03 11:05:12 2026"
      },
      "message": "Roll Perfetto from 78c48fcab714 to b36e97037c37 (3 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/78c48fcab714..b36e97037c37\n\n2026-09-03 gignat@google.com tp+ui: scope pprof archive members and intern fallback mappings (#7294)\n2026-09-03 lalitm@google.com tp: signifcantly reduce symbolization traffic to llvm-symbolizer (#7315)\n2026-09-03 lalitm@google.com perfetto: pin the PyPI package to its own release prebuilts (#7321)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/perfetto-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Perfetto: https://github.com/google/perfetto/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: Ie9e6d853b8073aa4749fafe6a0f4990865f3dd77\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8349307\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "3f6e46abdcb4a2593fdbc8f9364b08b2b9b3ac23",
      "tree": "44d7b4ee9866f1a26b591c87760b585e9f181880",
      "parents": [
        "686fa1b620a58be30b7b2dda8bc292df07806335"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Thu Sep 03 01:58:01 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Sep 03 02:47:00 2026"
      },
      "message": "Roll Perfetto from feb4ef454b23 to 78c48fcab714 (2 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/feb4ef454b23..78c48fcab714\n\n2026-09-02 lalitm@google.com tp: scan SQL queries into batches (#7151)\n2026-09-02 lalitm@google.com tp: scan dataframes without SQLite (#7165)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/perfetto-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Perfetto: https://github.com/google/perfetto/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: I0134f39c66f7b758635a84ea7a16f2ccfc9c7801\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8348804\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "686fa1b620a58be30b7b2dda8bc292df07806335",
      "tree": "c2d1f5ea8c6758a0a4331693ea145133414a4054",
      "parents": [
        "0b6e4076e83e3cc52a4e21f8431383dc7b7642d3"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Sep 02 19:58:58 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 02 21:05:00 2026"
      },
      "message": "Roll libfuzzer from 0c7e676c3140 to 8c09a8f46157 (1 revision)\n\nhttps://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git/+log/0c7e676c3140..8c09a8f46157\n\n2026-09-02 stan@python.org [libFuzzer] Make -stop_file work with empty files (#220641)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/libfuzzer-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in libfuzzer: https://github.com/llvm/llvm-project/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: Id09e37cc13bc9a47b2fa284cb2d15c8012899a83\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8347865\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "0b6e4076e83e3cc52a4e21f8431383dc7b7642d3",
      "tree": "75cd009a0cb6a9a8197422617d94fe9da2afc61a",
      "parents": [
        "f7965132ccdfb7c3e6751cdd753cc41aa923509c"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Sep 02 19:58:01 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 02 21:00:29 2026"
      },
      "message": "Roll Perfetto from fc6a7ef8e219 to feb4ef454b23 (5 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/fc6a7ef8e219..feb4ef454b23\n\n2026-09-02 lalitm@google.com tp: add a batch execution pipeline (#7135)\n2026-09-02 lalitm@google.com tp: trace SQL columns to dataframes (#7212)\n2026-09-02 runpinglai@google.com tp: Add Wattson CPU power model for Tensor G6 (#7301)\n2026-09-02 lalitm@google.com base: make more tests compile on all platforms (#7310)\n2026-09-02 rzuklie@google.com Promote BatteryStatus and PlugType to top level tracks. (#7303)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/perfetto-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Perfetto: https://github.com/google/perfetto/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: Ib47684aa8ddbb731b425b3f8790e30a0a6a3f4eb\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8342374\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f7965132ccdfb7c3e6751cdd753cc41aa923509c",
      "tree": "304e74e8e6a487b6fb77dec152c740ddf7be71eb",
      "parents": [
        "4fd1fac359e74ad36fb283d0b0b53937bed73aa4"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Sep 02 14:54:01 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 02 16:03:26 2026"
      },
      "message": "Roll Perfetto from 1d9994a93c6a to fc6a7ef8e219 (1995 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/google/perfetto.git/+log/1d9994a93c6a..fc6a7ef8e219\n\n2026-09-02 gignat@google.com ui: AndroidLockContention: link held locks to their slice (#7309)\n2026-09-02 sashwinbalaji@google.com base: Remove use_pcre2 flag (#7306)\n2026-09-02 stevegolton@google.com docs: Update memscope docs for all-channel availability (#7305)\n2026-09-02 stevegolton@google.com ui: Add changelog entries for recent UI changes (#7307)\n2026-09-02 wusamuel@google.com traced: Remove sys_stats_large_read flag (#7304)\n2026-09-02 runpinglai@google.com tp: Add GPU Wattson support for Tensor G6 (#7298)\n2026-09-02 runpinglai@google.com tp: Add Tensor G6 TPU power curves to Wattson (#7299)\n2026-09-01 yforta@google.com trace_redaction: case-sensitive package matching (#7297)\n2026-09-01 staticfloat@gmail.com ui: Add slider to control GPU counters collection (#7285)\n2026-09-01 stevegolton@google.com ui: fix flamegraph crash on heap profiles with negative sizes (#7290)\n2026-09-01 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#7288)\n2026-09-01 safayat@google.com tp: fix trace processor unit tests for chromium (#7293)\n2026-09-01 mohanram.meenakshisundaram@intel.com perfetto: Fix TracingMuxerImpl::Shutdown() crash (#7089)\n2026-09-01 stevegolton@google.com ui: Intelletto: Register tools with Chrome\u0027s WebMCP API (#6883)\n2026-09-01 stevegolton@google.com ui: Consolidate flow events into single plugin and extract connected flows (#7030)\n2026-09-01 andrabivolaru@google.com proto_merger: Keep reserved fields of deleted types in deleted_fields (#7208)\n2026-09-01 stevegolton@google.com ui: Bulk columnar decode for QueryResult (#7277)\n2026-08-31 dragosp@google.com proto_merger: Fix extensions order (#7287)\n2026-08-28 runpinglai@google.com tp: Support dsu_target in linux_devfreq_dsu_counter (#7263)\n2026-08-28 lalitm@google.com tools: remove all obsolete stacked PR tools (#7257)\n2026-08-28 etiennep@chromium.org Fix windows build (#7273)\n2026-08-28 sashwinbalaji@google.com tbV2: relocate fully-read chunks when re-scraped (#7271)\n2026-08-28 lalitm@google.com ui: improve performance of queryresult deser by 40% (#7272)\n2026-08-28 ivanterescheenko@gmail.com docs: fix the Instruments XML import docs and the export command (#7253)\n2026-08-28 stevegolton@google.com ui: Add pprof export to HDE flamegraph (#7255)\n2026-08-28 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#7262)\n2026-08-27 stevegolton@google.com ui: Add v58.3 changelog entry (#7260)\n2026-08-27 safayat@google.com tp: expose recovered trace info in metadata and trace_medata metric (#7258)\n2026-08-27 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#7137)\n2026-08-27 etiennep@chromium.org Disable failing tests on windows (#7259)\n2026-08-27 parthsane@gmail.com tp: add android process state and freezer dump parsing (#6907)\n2026-08-27 primiano@google.com docs: Replace GN+ninja with a build.mjs for perfetto.dev (#7256)\n2026-08-27 ivanterescheenko@gmail.com docs: fix the pprof collection instructions (#7254)\n2026-08-27 dragosp@google.com proto_merger: Add a new extension merger tool (#7247)\n2026-08-27 lalitm@google.com ui: offer ART heap dumps as pprof from the flamegraph export menu (#7240)\n2026-08-27 lalitmaganti@gmail.com ui: read traceconv output through the exported FS entry points (#7239)\n2026-08-27 lalitmaganti@gmail.com traceconv: fail loudly when profile conversion fails (#7238)\n2026-08-27 lalitmaganti@gmail.com tp: build flamegraphs whose frames are all unnamed (#7237)\n2026-08-27 lalitm@google.com tp: remove recursive Perfetto SQL functions (#7244)\n2026-08-27 stevegolton@google.com ui: Make widget attrs properties readonly (#7250)\n2026-08-27 lalitm@google.com perfetto: fix tempfile behavior on Windows tests (#7236)\n2026-08-27 lalitm@google.com ui: make a bunch of UI plugins multi-machine aware (#7243)\n2026-08-27 stevegolton@google.com uI: Fix permalinks failing to open when a single selection is present (#7248)\n2026-08-27 stevegolton@google.com ui: Add setting to default to flamegraph tab in Heap Dump Explorer (#7246)\n2026-08-27 stevegolton@google.com ui: Move Memscope settings registration to onActivate (#7245)\n2026-08-26 sanath099@gmail.com ui: Fix Day Explorer flamegraph root selection for selected tracks (#7187)\n2026-08-26 edgararriaga@google.com Fix unit tests failing on windows when redactor writes into temporary files already created (#7234)\n2026-08-26 stevegolton@google.com ui: Drop legacy eslint-config-google and @eslint/eslintrc (#7232)\n2026-08-26 stevegolton@google.com ui: memscope: Don\u0027t truncate frames in native callstack snippet table (#7231)\n2026-08-26 lalitm@google.com perfetto_sql: add reusable semantic analysis (#7219)\n2026-08-26 stevegolton@google.com ui: Fix memscope process profitability false negatives. (#7228)\n2026-08-26 duhamelantoine1995@gmail.com build: add `perfetto_use_system_zstd` flag (#7220)\n2026-08-26 lalitm@google.com tp: speed up ART hprof import and cut its peak memory (#7227)\n2026-08-26 nicomazz@google.com Eliminate cuj_id remapping in android_jank_latency_cujs (#7216)\n2026-08-26 lalitm@google.com tp: avoid using heap_graph_object when heap_graph would do the job (#7225)\n2026-08-26 lalitm@google.com ui: split postMessage trace sharing/downloading into shareable + downloadable (#7045)\n2026-08-26 duhamelantoine1995@gmail.com build: add `perfetto_use_system_re2` flag (#7217)\n2026-08-26 bogdan.lionte1997@gmail.com proto_merger: fix map field serialization and skip synthetic map entries (#7211)\n2026-08-25 56400880+adilburaksen@users.noreply.github.com trace_processor: reject overflowing offset+length in TraceBlobViewReader::SliceOff (#6517)\n2026-08-25 sanath099@gmail.com tp: allow scalar \u003c-\u003e enum extension transitions in DescriptorPool (#7185)\n2026-08-25 edgararriaga@google.com Add multi-pass redactor support and implement process tree merging with it (#6979)\n2026-08-25 lalitm@google.com tools: move pfsql out of trace processor (#7218)\n2026-08-25 pohengshen@google.com ftrace: Update sched_wakeup_task_attr event format (#7209)\n2026-08-25 lalitm@google.com ui: remove redundant flamegraph highlight Hide button (#7199)\n2026-08-25 lalitm@google.com tp: improve error messages for syncing two multi-clock traces (#7210)\n2026-08-25 stevegolton@google.com ui: Autofocus query page editor on tab creation (#5875)\n2026-08-25 stevegolton@google.com ui: Fix flicker when selecting between track events (#7205)\n2026-08-25 bogdan.lionte1997@gmail.com perfetto: renumber recovered_trace_info field ID to 138 (#7207)\n2026-08-25 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#7206)\n2026-08-25 lalitm@google.com tp: make FlexVector::shrink_to_fit a no-op at minimal capacity (#7198)\n2026-08-24 278437629+perfetto-automation[bot]@users.noreply.github.com Roll prebuilts to v58.2 (#7201)\n2026-08-24 michaelquigley@google.com Support parsing mergedClasses metadata to better de-obfuscate heap dumps. (#6911)\n2026-08-24 lalitm@google.com ui: add call tree and flat function views to the tree explorer (#7070)\n2026-08-24 jessemckenna@google.com Add stack_sampling_debug_ids to ETW config (#7183)\n2026-08-24 lalitm@google.com ui: split flamegraph into tree explorer building blocks (#7069)\n2026-08-24 etiennep@chromium.org [tp] Include all stack samples in symbolization candidates (#7197)\n2026-08-24 lalitm@google.com tp: validate remaining query buffer accesses (#7195)\n2026-08-24 lalitm@google.com tp: validate tree intrinsic node ids (#7194)\n2026-08-24 lalitm@google.com tp: bounds-check graph traversal node ids (#7193)\n2026-08-24 lalitm@google.com tp: validate graph node ids before narrowing (#7192)\n2026-08-24 lalitm@google.com perfetto: sharpen SQL and heap dump guidance in AI skills (#7191)\n2026-08-24 safayat@google.com Support Perfetto trace recovery across device reboot (#6928)\n2026-08-24 iw4p@protonmail.com ui: Handle null navigator.keyboard (#7186)\n2026-08-22 zezeozue@google.com tp: record responsible thread on process-scoped counters (#7182)\n2026-08-21 reveman@meta.com rust-sdk: add missing proto bindings (#7181)\n2026-08-21 reveman@meta.com rust-sdk: update proto bindings and crate versions (#7180)\n2026-08-21 lalitm@google.com base: fix Windows subprocess format signedness (#7178)\n2026-08-21 lalitm@google.com perfetto: bump CHANGELOG to v58.2 (#7177)\n2026-08-21 MichaelForrQuigley@gmail.com Make simple_json_parser a perfetto_component (#6909)\n2026-08-21 lalitm@google.com perfetto: bump CHANGELOG to v58.1 (#7172)\n2026-08-21 lalitm@google.com base: fix compile on windows (#7170)\n2026-08-21 parthsane@gmail.com perfetto: update frameworks/base tracing protos (#7138)\n2026-08-21 elrakadm@google.com Add is aggregtable dimension metadata field to metrics v2 (#7164)\n2026-08-19 lalitm@google.com ui: don\u0027t show memory overview page without smaps or heap dumps (#7139)\n2026-08-19 edgararriaga@google.com Trace size optimization: Remove unreferenced intern table entries in redacted traces (v2) (#7129)\n2026-08-19 gignat@google.com tp: Fix negative self_size in heap graph aggregation (#7141)\n2026-08-19 lalitm@google.com tp: describe dataframe queries as a sequence of logical operations (#7133)\n2026-08-19 gignat@google.com tp: Fallback unnamed classes to \u0027\u0027 in heap graph aggregation (#7140)\n2026-08-19 lalitm@google.com tp: split access-path selection out of dataframe bytecode emission (#7132)\n2026-08-19 lalitm@google.com tp: stop double-counting selectivity in dataframe row estimates (#7131)\n2026-08-19 andrabivolaru@google.com tools/proto_merger: preserve upstream declaration order for fields (#7113)\n2026-08-18 sanath099@gmail.com ui: Support filtering Day Explorer flamegraph by selected tracks (#7031)\n2026-08-18 sashwinbalaji@google.com perfetto: fix remaining -Wformat-signedness errors after clang uprev (#7126)\n2026-08-18 lalitm@google.com tp: align Arrow buffers and slabs to 64 bytes (#7123)\n2026-08-18 lalitm@google.com tp: fix compile on clang debug (#7121)\n2026-08-18 elrakadm@google.com Remove invalid utf-8 chars from aflag events (#7122)\n2026-08-18 kevin_svetlitski@berkeley.edu Ensure `object-src: \u0027none\u0027` CSP directive is applied as intended (#6988)\n2026-08-18 zezeozue@google.com tp: add dur_without_trampoline to android_startups (#7111)\n2026-08-17 lalitm@google.com tp: convert service event timestamps to trace time (#7117)\n2026-08-17 lalitm@google.com perfetto: uprev clang to Chromium latest version (#7118)\n2026-08-17 runpinglai@google.com tp: make Wattson TPU frequency slices gapless across trace (#7104)\n2026-08-17 lalitm@google.com ai: improve skill by adding various important notes (#7115)\n2026-08-17 rsavitski@google.com Revert \"Update test RegsFake to get ready for update to remove memory allocations in libunwindstack (#7106)\" (#7114)\n2026-08-17 safayat@google.com ui: Handle macro command errors gracefully and add validation in settings (#7100)\n2026-08-17 sashwinbalaji@google.com perfetto: pick JNI lib name matching SDK build variant (#7102)\n2026-08-16 lalitm@google.com ui: fix crash with flamegraph on remount of area select (#7109)\n2026-08-15 lalitm@google.com ui: fix stdlib module loading (#7108)\n2026-08-15 lalitm@google.com tp: unify stdlib object discovery (#7096)\n2026-08-15 lalitm@google.com tp: ignore journald stats when parsing logs (#7107)\n2026-08-15 17357301+Jake-The-Human@users.noreply.github.com Update test RegsFake to get ready for update to remove memory allocations in libunwindstack (#7106)\n2026-08-14 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#7101)\n2026-08-14 gignat@google.com tp: Support self_count in __intrinsic_tree_dominator_summary (#7091)\n2026-08-14 parthsane@gmail.com Loading JNI in corresponding classes (#7077)\n2026-08-13 lalitm@google.com tp: stop experimental_flamegraph from using the heap graph tracker (#7048)\n2026-08-13 lalitm@google.com ui: fix crash with null message in logs track (#7087)\n2026-08-13 99329845+ivan-chong@users.noreply.github.com tp: stdlib: Fix event time and action in android_input_events (#7084)\n2026-08-13 gignat@google.com tp: update live_tid cache when reaffirming thread parent process (#7085)\n2026-08-13 edgararriaga@google.com Fix trace redactor bug that causes data from target process to be dropped (#7079)\n2026-08-13 99329845+ivan-chong@users.noreply.github.com tp: stdlib: Ensure SF-less frames are associated with input (#6857)\n2026-08-13 stevegolton@google.com ui: Fix parameterised aggregate columns in pivot tables (#7083)\n2026-08-13 stevegolton@google.com ui: Add joinable track fields to thread slice aggregation (#7082)\n2026-08-13 stevegolton@google.com ui: Remove the pivot table tab (#7009)\n2026-08-12 nicomazz@google.com Normalize spaces and underscores in PinAndroidPerfMetrics (#7078)\n2026-08-12 jjaggi@google.com Exclude waitForBufferRelease from DrawFrames blocking calls (#7063)\n2026-08-12 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#7076)\n2026-08-12 pohengshen@google.com ftrace: Add pixel_metrics long_irq and long_softirq events (#7073)\n2026-08-11 sadrul@google.com tp: Add support for tracking debug wallpaper string properties (#7064)\n2026-08-11 etiennep@chromium.org [chrome] Add chromium heap and stack sampling configs (#6906)\n2026-08-11 rsavitski@google.com tests: allow unwinding test to compile against libunwindstack header changes (#7032)\n2026-08-11 lalitm@google.com tp: copy dense Arrow columns straight from their pieces (#7061)\n2026-08-11 lalitm@google.com tp: load Arrow validity buffers with a memcpy (#7060)\n2026-08-11 lalitm@google.com tp: dictionary encode strings in Arrow export (#7059)\n2026-08-11 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#7038)\n2026-08-11 lalitm@google.com tp: persist an id -\u003e row index on Tree (#7052)\n2026-08-11 lalitm@google.com tp: make flamegraph diff tests order-independent (#7055)\n2026-08-11 lalitm@google.com ui: default bare postMessage ArrayBuffers to local-only (#7042)\n2026-08-11 lalitm@google.com ui: prefer URL state-hash placeholder over GCS upload when sharing (#7043)\n2026-08-11 bogdan.floris@gmail.com perfetto: expose drop_count in C and C++ SDKs (#7039)\n2026-08-11 sashwinbalaji@google.com tp: anchor TraceProcessor_PlatformInterface vtable in storage_minimal (#7040)\n2026-08-11 andrabivolaru@google.com tools/proto_merger: handle reserved fields by marking them deprecated (#7036)\n2026-08-11 lalitm@google.com ui: use persistent flamegraph operators (#6952)\n2026-08-11 lalitm@google.com tp: expose flamegraphs through PerfettoSQL (#6945)\n2026-08-10 sashwinbalaji@google.com tp: fix Windows path handling in local symbolizer (#7037)\n2026-08-10 elrakadm@google.com Optimize heap graph dominator tree summary computation using a C++ intrinsic. (#7035)\n2026-08-10 stevegolton@google.com docs: Add memscope docs. (#7034)\n2026-08-10 stevegolton@google.com ui: Open aggregation drilldowns in new tab (#6866)\n2026-08-07 lalitm@google.com tp: migrate SQLite export to the Export API (#6998)\n2026-08-07 lalitm@google.com ui: focus slices on double click (#7029)\n2026-08-07 sashwinbalaji@google.com perfetto: fix unittest failures on Windows and Fuchsia (#7028)\n2026-08-07 stevegolton@google.com ui: Add thread/process fields to slice aggregations (#7006)\n2026-08-07 stevegolton@google.com ui: Add preview badges and header to memscope pages (#6934)\n2026-08-07 safayat@google.com profiling:x86_64: use stack pointer instead of frame address for heapprofd (#7015)\n2026-08-07 lalitm@google.com tp: improve symbolization error logging (#6830)\n2026-08-07 lalitm@google.com tp: improve symbolization error logging (#6830)\n2026-08-07 stevegolton@google.com ui: Handle nullable type_name in Memscope Java section (#7026)\n2026-08-07 stevegolton@google.com ui: Make Memscope process search box fill available width (#7027)\n2026-08-07 nicomazz@google.com tp: Add android_cuj_blocking_calls to stdlib and use in PinAndroidPerfMetrics (#7013)\n2026-08-07 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump mermaid from 11.16.0 to 11.16.1 in /infra/perfetto.dev in the npm_and_yarn group across 1 directory (#7025)\n2026-08-07 stevegolton@google.com ui: Bump vite to 8.2.1 (#7024)\n2026-08-07 sashwinbalaji@google.com perfetto: fix GetFileSize() compile break on Windows (#7023)\n2026-08-07 sashwinbalaji@google.com tp: Report buffer overwrites in long traces as a data loss (#7016)\n2026-08-07 lalitm@google.com tp: rebuild flamegraphs from typed trees (#6942)\n2026-08-06 sashwinbalaji@google.com tp: add missing stdint.h include in symbolizer elf.h (#7020)\n2026-08-06 lalitm@google.com tp: read only the ELF headers needed to extract the build-id (#6995)\n2026-08-06 lalitm@google.com tp: add SQLite VFS backed by abstract I/O (#6997)\n2026-08-06 sashwinbalaji@google.com perfetto: cut v58.0 in the CHANGELOG (#6990)\n2026-08-06 17357301+Jake-The-Human@users.noreply.github.com Fix dangling reference in UnwindingMetadata::GetBuildId (#6975)\n2026-08-05 zezeozue@google.com ui: add a select-all checkbox to the contained-traces merge panel (#6989)\n2026-08-05 99329845+ivan-chong@users.noreply.github.com tp: stdlib: Ensure irq_slices are non-negative (#7001)\n2026-08-05 stevegolton@google.com ui: Support preset configurations in aggregation tabs (#6987)\n2026-08-05 nicomazz@google.com ui: Fix table name in PinAndroidPerfMetrics cujScopedTrackConfig (#7002)\n2026-08-05 stevegolton@google.com ui: Use memos in aggregation adapter (#6985)\n2026-08-05 stevegolton@google.com ui: Return getGridConfig from aggregator probe step (#6984)\n2026-08-04 runpinglai@google.com tp: convert continuous_estimates from TABLE to VIEW for UI startup speed (#6994)\n2026-08-04 lalitm@google.com docs: document trace_processor export formats (#6970)\n2026-08-04 lalitm@google.com tp: overhaul error handling and diagnostics for the shell and bundle (#6969)\n2026-08-04 zezeozue@google.com ui: add contained-traces merge panel (#6977)\n2026-08-04 lalitm@google.com perfetto: attach offline-installable AI skill zip to releases (#6982)\n2026-08-04 lalitm@google.com tp: add reusable tree transformation helpers (#6944)\n2026-08-04 wusamuel@google.com wattson: Additional freq entry for 8750 (#6978)\n2026-08-03 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6976)\n2026-08-03 51092706+rishuranjanofficial@users.noreply.github.com tp: fix size_t overflow in non-TracePacket field skip path (#6968)\n2026-08-03 sashwinbalaji@google.com tp: partially revert \"tp: remove the standalone traceconv binary\" (#6973)\n2026-08-03 safayat@google.com perfetto_cmd: fix typo and usage formatting in trigger_perfetto (#6935)\n2026-08-03 lalitm@google.com tp: enforce parent-before-child Tree ordering (#6941)\n2026-08-03 etiennep@chromium.org [API] Fix build for windows ubsan client api (#6938)\n2026-08-03 sashwinbalaji@google.com tp: fix -Wformat error on 32-bit Windows in local_file_system (#6972)\n2026-08-03 nicomazz@google.com Source Android jank CUJ pin from stdlib summary table (#6924)\n2026-08-03 lalitm@google.com ai: make trace_processor sessions the default querying workflow (#6959)\n2026-08-03 zezeozue@google.com ui: add \"Copy main thread tracks to workspace\" command (#6939)\n2026-08-03 lalitm@google.com ai: save a report at the end of every skill analysis (#6955)\n2026-08-03 lalitm@google.com docs: merge traces with util merge, not cat (#6967)\n2026-08-03 lalitm@google.com ai: add TraceConfig reference and exemplar configs to skill (#6954)\n2026-08-03 lalitm@google.com perfetto: document how to update the AI skill (#6957)\n2026-08-03 sashwinbalaji@google.com docs: polish the trace_processor CLI documentation (#6962)\n2026-08-03 junov@google.com tp: Support Xcode 27 tagged-backtrace tag in Instruments XML importer (#6937)\n2026-08-03 lalitm@google.com docs: document trace_processor sessions and --remote (#6961)\n2026-08-03 lalitm@google.com tp: remove the standalone traceconv binary (#6410)\n2026-08-03 lalitm@google.com docs: point trace conversion docs at trace_processor (#6417)\n2026-08-03 lalitm@google.com perfetto: point the traceconv wrapper at trace_processor_shell (#6415)\n2026-08-03 lalitm@google.com tp: add opt-in abstract filesystem access (#6894)\n2026-08-02 lalitm@google.com tp: introduce a typed core Tree representation (#6900)\n2026-08-01 ivanterescheenko@gmail.com trace_processor: add a parser for strace -t output (#6588)\n2026-07-31 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6933)\n2026-07-31 safayat@google.com increase kWatchdogDefaultMemorySlack to 64 mb (#6929)\n2026-07-31 99329845+ivan-chong@users.noreply.github.com ui: tp: Add DrawFrames and SurfaceFlinger to AndroidFrames extension (#6725)\n2026-07-31 99329845+ivan-chong@users.noreply.github.com ui: tp: Move Choreographer stage from core to extension (#6724)\n2026-07-31 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6925)\n2026-07-30 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6922)\n2026-07-30 gignat@google.com tp: add and parse UIDs for Android process lifecycle events (#6916)\n2026-07-29 sashwinbalaji@google.com tbV2: relocate fully-read scraped chunks instead of rewriting them (#6767)\n2026-07-29 stevegolton@google.com ui: Memscope: Improve landing page experience (#6917)\n2026-07-29 99329845+ivan-chong@users.noreply.github.com ui: Add global settings toggles for input lifecycle extensions (#6671)\n2026-07-29 zezeozue@google.com ui: fix HDE hierarchy filter for classes without instances (#6910)\n2026-07-29 gignat@google.com ui: AndroidAnr plugin: add fallback 0 to coalesce (#6914)\n2026-07-29 stevegolton@google.com ui: Improve Intelletto UX (#6905)\n2026-07-28 jingjiewang@google.com ui: Support pinning tracks and drawing all flows for a selected app (#6655)\n2026-07-28 stevegolton@google.com docs: AGENTS.md - remove custom depot-tools commands (#6893)\n2026-07-28 safayat@google.com tp: Handle empty CpuInfo packets without crashing (#6898)\n2026-07-28 akahuang@google.com proto: Add Android proc state events to TrackEvent proto (#6847)\n2026-07-28 nicomazz@google.com Migrate CUJ counter metrics to stdlib (#6903)\n2026-07-28 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6901)\n2026-07-27 sashwinbalaji@google.com perfetto: don\u0027t count aborted packets as ABI violations (#6902)\n2026-07-27 lalitm@google.com tp: extract reusable core row operations (#6891)\n2026-07-27 nicomazz@google.com Migrate remaining CUJ SF slices metric to stdlib (#6899)\n2026-07-27 sashwinbalaji@google.com perfetto: don\u0027t reference nonexistent zstd targets in embedder builds (#6897)\n2026-07-27 nicomazz@google.com Migrate CUJ SF slice metric to stdlib (#6896)\n2026-07-27 zezeozue@google.com tp: add __intrinsic_zstd(X) to compress a blob/string in SQL (#6873)\n2026-07-27 lalitm@google.com tp: base: use saturating multiple to handle timestamp overflows (#6890)\n2026-07-27 nicomazz@google.com Migrate CUJ slices metric to stdlib (#6882)\n2026-07-27 lalitm@google.com ui: improve flamegraph controls and filtering (#6870)\n2026-07-24 junov@google.com [tracing] Emit dev.perfetto.clock_sync events on all Apple platforms (#6886)\n2026-07-24 stevegolton@google.com ui: Improve memscope page performance (#6828)\n2026-07-24 stevegolton@google.com ui: Select Memscope native profile range (#6879)\n2026-07-24 stevegolton@google.com ui: Prioritize populated Memscope sections (#6878)\n2026-07-24 stevegolton@google.com ui: Clean up memoization primitives (#6877)\n2026-07-24 zezeozue@google.com docs: document the Heap Dump Explorer Callstack tab and OOM overview (#6876)\n2026-07-24 zezeozue@google.com ui: don\u0027t crash the flamegraph measure picker when no metric is selected (#6868)\n2026-07-23 lalitm@google.com tp: support case-insensitive regexp matching (#6869)\n2026-07-23 lalitm@google.com tp: fix crash due to inability to access urandom in wasm (#6867)\n2026-07-23 rzuklie@google.com Use sparse counters in kernel wakelock module. (#6864)\n2026-07-23 rzuklie@google.com Fix trace_bounds when last event is unfinished. (#6863)\n2026-07-23 wusamuel@google.com ui: Toggle task colors based on niceness (#6846)\n2026-07-23 zezeozue@google.com ui: show OOME heap-dump metadata as a key-value grid (#6865)\n2026-07-23 reveman@meta.com ui: Relayout merged GPU-by-process tracks (#6845)\n2026-07-23 primiano@google.com tp: drop the atrace_apps wildcard trace_diagnostics rule (#6824)\n2026-07-23 primiano@google.com ui: fix circular dependency build error printing (#6669)\n2026-07-23 parthsane@gmail.com tp: parse start_seq_id for Android process lifecycle events (#6818)\n2026-07-23 lalitm@google.com tp: add streaming table export (#6839)\n2026-07-23 zezeozue@google.com ui: fix Heap Dump Explorer deeplink class filter being dropped (#6843)\n2026-07-23 lalitm@google.com tp: remove prototype tree operators (#6861)\n2026-07-23 lalitm@google.com ui: normalize unknown flamegraph node names (#6860)\n2026-07-23 lalitm@google.com ui: fix integration tests with rootless Docker (#6859)\n2026-07-23 stevegolton@google.com ui: Fix fuzzy search matching by replacing MiniSearch with fuzzysort (#6852)\n2026-07-23 lalitm@google.com ui: unify stack sample tracks and flamegraphs (#6840)\n2026-07-23 lalitm@google.com tp: add C++ flamegraph computation library (#6851)\n2026-07-23 lalitm@google.com ui: fix traceconv filesystem calls (#6854)\n2026-07-23 lalitm@google.com ui: add flamegraph download menu (#6855)\n2026-07-23 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6848)\n2026-07-23 lalitm@google.com docs: clean up the converting and synthetic track event pages (#6853)\n2026-07-23 sashwinbalaji@google.com tp: fix FlatBufferWriter crash on empty writes (#6850)\n2026-07-23 lalitm@google.com tp: add generic stack sample prelude tables (#6841)\n2026-07-23 jernej@google.com Fix query for application startup (#6844)\n2026-07-22 adyabr@google.com Add jank tooltip descriptions.  (#6727)\n2026-07-22 zezeozue@google.com android: add bitrate to DisplayVideoConfig (#6842)\n2026-07-22 sashwinbalaji@google.com perfetto: keep TrackEvent\u0027s inline callstack out of the profiling package (#6838)\n2026-07-22 lalitm@google.com tp: rationalize sample stdlib onto the stack_sample view (#6836)\n2026-07-22 zezeozue@google.com java_sdk: add weighted overload to expensiveDebugCallStack (#6834)\n2026-07-22 lalitm@google.com tp: add Arrow support for dataframes (#6827)\n2026-07-22 lalitm@google.com tp: migrate macOS instruments samples onto profiler_sample (#6832)\n2026-07-22 lalitm@google.com tp: migrate the cpu_profile sample sources onto profiler_sample (#6822)\n2026-07-22 lalitm@google.com docs: document weighted TrackEvent callstack measures (#6826)\n2026-07-22 lalitm@google.com protozero: add support for multi-line string literals in textpb (#6821)\n2026-07-22 abhilash.menchithara@arm.com ui: arm telemetry pmu recording page (#5286)\n2026-07-22 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6825)\n2026-07-22 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6765)\n2026-07-22 lalitm@google.com tp: allow TarWriter to write to an abstract sink (#6808)\n2026-07-21 lalitm@google.com tp: introduce the generic profiler_sample table (#6809)\n2026-07-21 lalitm@google.com ui: massively improve performance of callstack flamegraph (#6820)\n2026-07-21 rsavitski@google.com tperf: remove references to the now-obsolete LSM sysprop (#6816)\n2026-07-21 stevegolton@google.com ui: Bump echarts (#6813)\n2026-07-21 rsavitski@google.com tp: rename import logs tracker methods to be less error-centric (#6812)\n2026-07-21 lalitm@google.com ui: fix infinite refetch in track event callstack flamegraph (#6810)\n2026-07-21 zzj523439346@126.com traced_probes: Add missing sde_evtlog data fields (#6804)\n2026-07-21 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6805)\n2026-07-21 lalitm@google.com tp: add minimal flatbuffer reader and writer (#6795)\n2026-07-21 lalitm@google.com tp: ui: add weighted TrackEvent callstack measures (#6752)\n2026-07-21 lalitm@google.com tp: add support for multiple statements in query (#6794)\n2026-07-21 lalitm@google.com tp: sort chrome streaming profile samples individually (#6800)\n2026-07-21 zezeozue@google.com tools: fix trace_video_conv on ring-buffer traces (#6803)\n2026-07-20 sashwinbalaji@google.com tp: fix Fuchsia build of shell_utils_unittest (#6802)\n2026-07-20 lalitm@google.com perfetto: make the StackSample inline callstack fully inline (#6793)\n2026-07-20 rsavitski@google.com tp: process_tracker: treat parent pid changes as reparenting (#6363)\n2026-07-20 sashwinbalaji@google.com perfetto: allow mmapping files that others have open for writing (#6801)\n2026-07-20 sashwinbalaji@google.com tp: fix perfetto_unittests failures on Fuchsia (#6798)\n2026-07-20 gignat@google.com tp: add flags_enum annotation to broadcast_type (#6797)\n2026-07-20 lalitm@google.com tp: add interned callstacks to stack sampling (#6791)\n2026-07-20 sashwinbalaji@google.com tp: look up the default SQLite VFS name for export (#6792)\n2026-07-20 lalitm@google.com tp: add async attribution to stack sampling (#6775)\n2026-07-20 elrakadm@google.com Revert \"tp: improve performance of jank_cuj metric (#6650)\" (#6790)\n2026-07-20 sashwinbalaji@google.com tp: Fix TraceRedactorTest.EmptyTimelineReturnsError on Windows (#6787)\n2026-07-20 stevegolton@google.com ui: Fix WebGL context leak (#6782)\n2026-07-20 stevegolton@google.com ui: Format UI codebase with Prettier 3.9.5 (#6781)\n2026-07-20 stevegolton@google.com ui: Remove inlineDynamicImports from vite.config.mjs (#6784)\n2026-07-20 stevegolton@google.com ui: Fix bigtrace and open_perfetto_trace tsconfig settings (#6783)\n2026-07-19 stevegolton@google.com ui: Update sass to 1.101.0 (#6766)\n2026-07-19 stevegolton@google.com ui: Add note about vite \u0026 typescript bumps (#6778)\n2026-07-19 zezeozue@google.com tools: fix trace_video_conv playback timing (#6780)\n2026-07-18 stevegolton@google.com ui: Remove unused packages (#6773)\n2026-07-18 stevegolton@google.com ui: Bump typescript to v7 (#6772)\n2026-07-18 zezeozue@google.com tools: add trace_video_conv.py to extract display-video to mp4 (#6777)\n2026-07-17 stevegolton@google.com ui: Update to vite 8.1.5 (#6763)\n2026-07-17 stevegolton@google.com ui: Bump pnpm to version 10.34.5 (#6764)\n2026-07-17 reveman@meta.com tp: fix export subcommand writing to in-memory database (#6768)\n2026-07-17 stevegolton@google.com ui: Speed up integration tests (#6769)\n2026-07-17 edgararriaga@google.com Report redactor error if no process timeline present (#6732)\n2026-07-17 99329845+ivan-chong@users.noreply.github.com ui: Add PixelInputLifecycle extension (#6670)\n2026-07-17 99329845+ivan-chong@users.noreply.github.com tp: Add pixel.touch stdlib module for touch events (#6664)\n2026-07-17 99329845+ivan-chong@users.noreply.github.com ui: Add extensions framework to Android Input Lifecycle plugin (#6577)\n2026-07-17 stevegolton@google.com ui: guard SharedArrayBuffer check in assertIsArrayBufferView (#6760)\n2026-07-17 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6762)\n2026-07-16 zezeozue@google.com tp: add (pid)/(tid) field options and annotate frameworks_base (#6756)\n2026-07-16 lalitm@google.com tp: add follower counters to stack sampling (#6742)\n2026-07-16 lalitm@google.com ui: extract TrackEvent callstack flamegraph tab (#6754)\n2026-07-16 stevegolton@google.com ui: Tint track shell when the track is selected (#6753)\n2026-07-16 stevegolton@google.com ui: Bump vite and vitest (#6673)\n2026-07-16 lalitm@google.com ui: switch recording page to detect diff based on config snaps (#6631)\n2026-07-16 stevegolton@google.com ui: DataGrid: Style missing cells \u0026 invalidate invalid fields instead of guessing (#6750)\n2026-07-16 bogdan.lionte1997@gmail.com perfetto: fix preventing duplicate comments for deleted elements in proto_merger (#6743)\n2026-07-16 stevegolton@google.com ui: HeapDumpExplorer: Remove dead code (#6748)\n2026-07-16 stevegolton@google.com ui: HDE plugin tidyup (#6747)\n2026-07-16 stevegolton@google.com ui: Add DataGrid playground as a separate widgets subpage (#6744)\n2026-07-16 stevegolton@google.com ui: Datagrid: Escape dots in field names (#6721)\n2026-07-16 stevegolton@google.com ui: Simplify DataGrid schema models (#6710)\n2026-07-16 lalitm@google.com ui: rank table search by relevance then importance (#6719)\n2026-07-16 stevegolton@google.com ui: add flag to keep current page when loading a new trace (#6741)\n2026-07-16 sashwinbalaji@google.com perfetto: make the SDK implementation define sufficient for export (#6731)\n2026-07-16 lalitm@google.com ui: passthrough missing filename from postMessage (#6740)\n2026-07-16 stevegolton@google.com ui: Fix bigtrace build (#6720)\n2026-07-16 stevegolton@google.com ui: prefer readonly T[] syntax over ReadonlyArray\u003cT\u003e in style guide (#6734)\n2026-07-16 lalitm@google.com tp: improve performance of jank_cuj metric (#6650)\n2026-07-16 kongyi521@gmail.com Fix build with the latest libc++ (#6733)\n2026-07-16 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6735)\n2026-07-15 zezeozue@google.com tp,ui,docs: Surface the display-video user-build sysprop in docs, record page and trace doctor (#6717)\n2026-07-15 lalitm@google.com tp: workaround SQLite bug with LEFT JOINs (#6723)\n2026-07-15 sashwinbalaji@google.com Revert \"perfetto: rework C SDK shared library export macros (#6706)\" (#6722)\n2026-07-15 lalitm@google.com tp: add transport-neutral stack sampling protos and parsing (#6679)\n2026-07-15 reveman@meta.com sdk: Add PerfettoDsGetTimestamp to data source ABI (#6707)\n2026-07-15 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6716)\n2026-07-15 rsavitski@google.com pb: choose a more unique extension id for FieldOptions (#6715)\n2026-07-15 nicomazz@google.com tp: Migrate CUJ SF boundaries to stdlib (#6713)\n2026-07-14 zezeozue@google.com proto: Add and annotate foreground_service_type with flags_enum (#6712)\n2026-07-14 sharjeelkhan@google.com Add algorithm header for std::transform (#6711)\n2026-07-14 sashwinbalaji@google.com perfetto: rework C SDK shared library export macros (#6706)\n2026-07-14 zezeozue@google.com tp: annotate frameworks_base flag fields with flags_enum (#6709)\n2026-07-14 sashwinbalaji@google.com docs: speed up docs-site search (#6702)\n2026-07-14 zezeozue@google.com tp: expand (flags_enum)-annotated fields into per-flag args (#6472)\n2026-07-14 lalitm@google.com tp: improve query planning for multiple-selective constraints (#6694)\n2026-07-14 stevegolton@google.com ui: Add ability to pivot on arg values (#4976)\n2026-07-14 lalitm@google.com ui: don\u0027t crash query page when duplicate table names (#6704)\n2026-07-14 lalitm@google.com ui: tp: speed up trace load performance (#6705)\n2026-07-14 lalitm@google.com ui: make regex opt-in instead of happening by default (#6691)\n2026-07-14 lalitm@google.com infra: set cache control private header (#6703)\n2026-07-14 varyvonchyk.anatol@gmail.com ui: pin relevant tracks for dma memory regression (#6701)\n2026-07-14 varyvonchyk.anatol@gmail.com ui: Pin tracks for memory regressions investigations (#6685)\n2026-07-14 rzuklie@google.com Collapse isolated UIDs into one CPU per UID track (#6644)\n2026-07-14 stevegolton@google.com ui: Update changelog (#6700)\n2026-07-14 sashwinbalaji@google.com tp: set android_aflags_errors as kError (#6688)\n2026-07-14 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6699)\n2026-07-14 nicomazz@google.com Migrate CUJ render thread boundaries to stdlib (#6596)\n2026-07-13 rzuklie@google.com Use SparseCounterTracker in CPU per UID module (#6696)\n2026-07-13 rsavitski@google.com perfetto_cmd: add --txt-lossy that skips unknown fields (#4043)\n2026-07-13 reveman@meta.com tp: fix dropped traces when merging same-remote-machine files (#6687)\n2026-07-13 rzuklie@google.com Add a tracker to write counters only when changed. (#6675)\n2026-07-13 lalitm@google.com tp: add experimental_slice_layout benchmark (#6692)\n2026-07-13 bogdan.lionte1997@gmail.com perfetto: add passthrough proto group to gen_bazel (#6693)\n2026-07-13 lalitm@google.com tp: pack merged slice layout tallest-first (#6686)\n2026-07-13 sashwinbalaji@google.com tp: Update statsd atoms.descriptor (#6689)\n2026-07-13 stevegolton@google.com ui: Don\u0027t attempt to render the timeline canvas when its size is 0 (#6690)\n2026-07-13 gignat@google.com ui: SQL editor syntaqlite Lsp integration  (#6237)\n2026-07-13 stevegolton@google.com ui: Add status field to allow plugins to be marked experimental (#6684)\n2026-07-13 stevegolton@google.com infra: Update node to latest 22.x version (#6672)\n2026-07-12 sashwinbalaji@google.com docs: document trace compression (zstd/deflate) config (#6674)\n2026-07-12 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6681)\n2026-07-10 sashwinbalaji@google.com tp+ui: show concurrent tracing sessions as state tracks (#6647)\n2026-07-10 primiano@google.com ui: Add TraceDoctor in Overview page and details panel (#6642)\n2026-07-10 primiano@google.com tp: remove compact_sched rule from TraceDoctor (#6676)\n2026-07-10 sashwinbalaji@google.com perfetto: list other tracing sessions in trace (#6627)\n2026-07-10 safayat@google.com ui: Wrap errors in CommandError for command execution (#6612)\n2026-07-10 lalitm@google.com tp: add a Notices severity and surface ftrace setup errors on it (#6658)\n2026-07-10 99329845+ivan-chong@users.noreply.github.com ui: Ensure Core settings are at the top (#6667)\n2026-07-10 lalitm@google.com ui: add textarea for arbitrary ftrace events (#6662)\n2026-07-10 stevegolton@google.com ui: Fail loudly on webgl context loss (#6665)\n2026-07-10 sashwinbalaji@google.com docs: merge Android boot \u0026 OOM pages into recording cookbook (#6661)\n2026-07-10 ilkos@google.com Add OOME-related stats to heap_graph_stats (#6663)\n2026-07-10 sashwinbalaji@google.com perfetto: fully reinitialize getopt state before cmdline parsing (#6660)\n2026-07-10 rsavitski@google.com tools/record_android_trace: fix reconnects and \"sh\" spam (#6593)\n2026-07-10 sashwinbalaji@google.com perfetto: unify trace attributes across config, packets and manifest (#6651)\n2026-07-10 lalitm@google.com tracing: fix flaky test (#6659)\n2026-07-10 lalitm@google.com ui: improve overview page for multiple traces and machines (#6649)\n2026-07-10 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6648)\n2026-07-10 bogdan.lionte1997@gmail.com proto_merger: allow passthrough fields (#6628)\n2026-07-10 lalitm@google.com tp: fix quadratic blowup in android_monitor_contention_chain (#6640)\n2026-07-10 99329845+ivan-chong@users.noreply.github.com ui: Replace deltas with durations in AndroidInputLifecycle (#6566)\n2026-07-10 lalitm@google.com tp: expose Chrome JSON top-level metadata (#6653)\n2026-07-09 lalitm@google.com tp: fix ubsan crash in proto trace reader tests (#6652)\n2026-07-09 77778393+carlscabgro@users.noreply.github.com tp: Defer parsing of extra descriptors until TrackEvent descriptors have been registered (#6528)\n2026-07-09 lalitm@google.com ui: restructure trace info page metadata and stats tabs (#6602)\n2026-07-09 lalitm@google.com tp: improve tar parsing and ignore . files in archives (#6646)\n2026-07-09 lalitm@google.com tp: migrate the perf_text importer to a plugin (#6645)\n2026-07-09 safayat@google.com perfetto: Fix trace statistics emission at the end of tracing sessions (#6637)\n2026-07-09 lalitm@google.com tp: fix intervals stdlib layering violation and guard against them (#6639)\n2026-07-09 lalitm@google.com tp: signifcantly improve performance of blocking calls in CUJ (#6635)\n2026-07-09 lalitm@google.com tp: model IN-filter selectivity as a union of equalities (#6638)\n2026-07-09 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6474)\n2026-07-09 primiano@google.com tp: Add trace_diagnostics table to detect bad trace configs (#6576)\n2026-07-09 safayat@google.com ui: Fix circular dependency crash in Data Explorer Smart Graph (#6636)\n2026-07-09 etiennep@chromium.org [chrome] Fix chrome_browser_main_thread_duration performance issue (#6632)\n2026-07-09 lalitm@google.com tp: order context-join stdlib views fact-table-last (#6634)\n2026-07-09 rsavitski@google.com ui: ftrace plugin: support area selections of raw ftrace tracks (#6560)\n2026-07-09 gignat@google.com ui: make MemoryViz LMK events visible to area-selection aggregation (#6558)\n2026-07-09 rsavitski@google.com ui: thread_state_track: disable same-title slice highlighting (#6615)\n2026-07-09 rsavitski@google.com slice_track: ensure dataFrameSlot refetches for dynamic SQL (e.g. ftrace tracks) (#6597)\n2026-07-09 lalitm@google.com tp: estimate equality-filter selectivity from per-column NDV (#6619)\n2026-07-09 lalitm@google.com tp: model trace types as importers, remove the TraceType enum (#6618)\n2026-07-09 sashwinbalaji@google.com perfetto: statically link libzstd in CTS test binaries (#6629)\n2026-07-09 lalitm@google.com tp: order metric repeated fields deterministically (#6620)\n2026-07-09 etiennep@chromium.org [chrome] Update reliable_range to  (#6616)\n2026-07-09 lalitm@google.com tp: support metatrace capture against --remote sessions (#6621)\n2026-07-09 zezeozue@google.com ui: video frame plugin fixes (#6611)\n2026-07-09 zezeozue@google.com docs: add a guide for the display video frames feature (#6606)\n2026-07-09 2463436064@qq.com docs: explain perf clock selection for merged traces (#6623)\n2026-07-09 56400880+adilburaksen@users.noreply.github.com trace_processor: bounds-check id lookups in the instruments importer (#6518)\n2026-07-09 chenzikai@google.com Add proto events for capability update in ProcessStateController (#6586)\n2026-07-09 primiano@google.com ui: allow vite to serve from any host (#6607)\n2026-07-09 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6625)\n2026-07-09 lalitm@google.com Revert \"Emit CPU per UID counters only when the value changes. (#6578)\" (#6622)\n2026-07-08 lalitm@google.com ui: improve organization of Android traces (#6617)\n2026-07-08 sashwinbalaji@google.com perfetto: roll zstd to 1.5.7 (#6614)\n2026-07-08 sashwinbalaji@google.com docs: replace docs-site search with a local full-text index (#6565)\n2026-07-08 sashwinbalaji@google.com tp: DecompressTraceSlowly -\u003e DecompressTrace (#6610)\n2026-07-08 lalitm@google.com tp: add zip64 support to the streaming zip reader (#6580)\n2026-07-08 etiennep@chromium.org [chrome] Add chrome_browser_main_thread_duration (#6605)\n2026-07-08 eseckler@google.com gn: Disable Zstd when building with Chromium (#6604)\n2026-07-08 sashwinbalaji@google.com perfetto: drop deprecated pipes import, plug TraceProcessor fd leak (#6601)\n2026-07-08 sashwinbalaji@google.com perfetto: log when a data source type is registered twice (#6600)\n2026-07-08 stevegolton@google.com Update changelog with recent UI changes (#6592)\n2026-07-08 zezeozue@google.com ui: enable the Video Frames plugin by default (#6598)\n2026-07-08 sashwinbalaji@google.com perfetto: fix zstd GN deps for Chromium builds (#6595)\n2026-07-08 lalitm@google.com tp: ui: bump syntaqlite to 0.7.1 and create roll script (#6594)\n2026-07-08 stevegolton@google.com ui: Remap Mod+Shift+P to F1 on firefox (#6589)\n2026-07-08 sashwinbalaji@google.com tp: add zstd decompression support (#6461)\n2026-07-08 bogdan.lionte1997@gmail.com tools: support allowlisting options in proto merger (#6557)\n2026-07-08 rzuklie@google.com Emit CPU per UID counters only when the value changes. (#6578)\n2026-07-08 gignat@google.com ui: roll syntaqlite to v0.7.0 (#6585)\n2026-07-08 lalitm@google.com perfetto: roll emscripten to 5.0.3, enable -mavx2 for wasm (#6581)\n2026-07-08 lalitm@google.com perfetto: document fresh Debian/Ubuntu build prerequisites (#6579)\n2026-07-08 sashwinbalaji@google.com perfetto: add Zstd as a trace compression codec (#6459)\n2026-07-07 safayat@google.com ui/tp: Fix empty Linux perf flamegraph counter options (#6573)\n2026-07-07 lalitm@google.com tp: roll syntaqlite to v0.7.0 (#6572)\n2026-07-07 lalitm@google.com perfetto: document custom timestamp types in the SDK (#6574)\n2026-07-07 lalitm@google.com perfetto: document TracedValue type-support failures (#6569)\n2026-07-07 278437629+perfetto-automation[bot]@users.noreply.github.com Roll prebuilts to v57.2 (#6567)\n2026-07-07 lalitm@google.com ui: improve error dialogs for corrupt, not present and unknown formats (#6563)\n2026-07-07 lalitm@google.com perfetto: fix leak of calling thread\u0027s TLS in Tracing::Shutdown() (#6564)\n2026-07-07 99329845+ivan-chong@users.noreply.github.com tp: stdlib: Ensure fields without frames are populated (#6469)\n2026-07-07 99329845+ivan-chong@users.noreply.github.com tp: stdlib: Simplify frame_id lookup (#6470)\n2026-07-07 sashwinbalaji@google.com perfetto: add CTS coverage for OOT tracing descriptors (#6556)\n2026-07-07 lalitm@google.com ui: add ring buffer size control to stack sampling record page (#6540)\n2026-07-07 sashwinbalaji@google.com update CHANGELOG (#6555)\n2026-07-07 sashwinbalaji@google.com tp: keep parsing traces after wire-compatible schema changes (#6553)\n2026-07-07 safayat@google.com ui: Fix eslint warnings (#6550)\n2026-07-06 zezeozue@google.com ui: Add android.display.video record option (#6551)\n2026-07-06 lalitm@google.com ci: export UI test results as a GitHub step summary (#6542)\n2026-07-06 lalitm@google.com ui: fix pprof download for traces with multiple profile types (#6536)\n2026-07-06 77778393+carlscabgro@users.noreply.github.com tp: add IsPowerOfTwo helper (#6522)\n2026-07-06 sashwinbalaji@google.com perfetto: fix TempDir teardown crash in traced integration tests (#6547)\n2026-07-06 lalitm@google.com perfetto: publish self-hostable UI zip as a release artifact (#6548)\n2026-07-06 stevegolton@google.com ui: Fix bug where hitting enter in the track filter reloads the page (#6534)\n2026-07-06 safayat@google.com Remove debugfs tracing fallback for Android (#6531)\n2026-07-06 lalitm@google.com docs: document track filtering in the Perfetto UI (#6546)\n2026-07-06 sashwinbalaji@google.com perfetto: document that changes must land on GitHub upstream (#6545)\n2026-07-06 stevegolton@google.com ui: Add recently opened traces section to the home page (#6544)\n2026-07-06 lalitm@google.com perfetto: document TraceAttributes in the converting guide (#6541)\n2026-07-06 lalitm@google.com ui: add support for exporting data from flamegraph (#6539)\n2026-07-06 bogdan.floris@gmail.com protovm: export compiler binary and blob emitter to Android.bp (#6527)\n2026-07-06 bogdan.lionte1997@gmail.com tools: support binary compatible type changes in proto_merger (#6538)\n2026-07-06 lalitm@google.com tp: fix Python API startup timeout racing prebuilt download (#6537)\n2026-07-06 sashwinbalaji@google.com perfetto: build the x64 CPU check for the baseline ISA (#6533)\n2026-07-06 reveman@meta.com GpuCompute: fix summary stack overflow for large kernel counts (#6535)\n2026-07-06 jernej@google.com Update list of columns for Android Jank CUJs (#6463)\n2026-07-06 ilkos@google.com Introduce android_device_name_from_fingerprint helper (#6532)\n2026-07-06 sashwinbalaji@google.com perfetto: expose trace protos as a Python library (#6530)\n2026-07-06 sashwinbalaji@google.com tp: plumb CpuInfo features bitmap into cpu table args (#6529)\n2026-07-06 stevegolton@google.com ui: Add openai compatible LLM protocol (#6523)\n2026-07-06 khokhlov@google.com Fix AddressRange creation in JitCache::MoveCode (#6487)\n2026-07-06 sashwinbalaji@google.com tp: Refuse to write binary trace output to a TTY (#6462)\n2026-07-06 stevegolton@google.com ui: Intelletto: Add more timeline tools (#6521)\n2026-07-06 stevegolton@google.com ui: Add intelletto tools for building DE graphs (#6520)\n2026-07-06 sashwinbalaji@google.com Update OWNERS file (#6524)\n2026-07-06 sashwinbalaji@google.com perfetto: remove TraceBufferV1WithV2Shadow (#6525)\n2026-07-04 stevegolton@google.com ui: Add Intelletto assistant plugin (#6512)\n2026-07-03 lalitm@google.com docs: add comprehensive documentation for trace merging (#6493)\n2026-07-03 stevegolton@google.com ui: Add Gemini LLM protocol plugin (#6511)\n2026-07-03 stevegolton@google.com ui: Add LLM core gateway plugin + chrome API provider + test chat page (#6509)\n2026-07-03 zezeozue@google.com third_party: sync track_event protos with platform source (#6510)\n2026-07-03 zezeozue@google.com Android.bp: include DisplayVideoConfig in the winscope javastream filter (#6508)\n2026-07-03 zezeozue@google.com tp: fix HASH(NULL) crash on heap-graph classes without a name (#6507)\n2026-07-03 etiennep@chromium.org [chrome] Show chrome memory snapshot on timeline (#6503)\n2026-07-03 zezeozue@google.com ui: warn on an incomplete flamegraph in the Heap Dump Explorer (#6449)\n2026-07-03 stevegolton@google.com ui: Switch to using Grid rather than DataGrid for heterogeneous data in HDE overview page (#6505)\n2026-07-03 lalitm@google.com ui: open multiple traces from drag and drop and the file picker (#6489)\n2026-07-03 lalitm@google.com ui: escape regex to deal with functions and arrays (#6492)\n2026-07-02 lalitm@google.com tp: add \u0027util merge\u0027 to pack traces into a mergeable archive (#6495)\n2026-07-02 278437629+perfetto-automation[bot]@users.noreply.github.com Roll prebuilts to v57.1 (#6497)\n2026-07-02 lalitm@google.com docs: add docs for flamegraph in Heap Dump Explorer (#6494)\n2026-07-02 lalitm@google.com ui: constrain multi-trace status panel to the list width (#6496)\n2026-07-02 lalitm@google.com tp: ui: warn about dropped events before opening merged traces (#6491)\n2026-07-02 sashwinbalaji@google.com proto: reorder fw/native trace_packet message (#6488)\n2026-07-02 amayzner@snapchat.com trace_processor: fix stdlib docs enumeration for dotted package names (#6484)\n2026-07-02 luci.grigore99@gmail.com tp: Strip non-canonical elements from Java stack frame names (#6479)\n2026-07-02 lalitm@google.com tp: improve documentation for AI skills and add pointer from cookbook (#6486)\n2026-07-02 lalitm@google.com ui: enable multi trace opening by default (#6473)\n2026-07-02 safayat@google.com update owners list (#6483)\n2026-07-02 lalitm@google.com smb: add ipc splitting to smb scraping (#6482)\n2026-07-02 safayat@google.com tp: Fix LogMaxDepthExceeded build failure in debug builds (#6471)\n2026-07-02 nicomazz@google.com Migrate CUJ frames metrics to stdlib (#6478)\n2026-07-02 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6476)\n2026-07-02 lalitm@google.com perfetto: bundle trace_processor wrapper inside the AI skill (#6475)\n2026-07-02 bogdan.floris@gmail.com protovm: add support for proto descriptors in the compiler (#6465)\n2026-07-02 lalitm@google.com perfetto: add native allocation profiling start timestamp (#6442)\n2026-07-01 safayat@google.com Fix missing interned_data export in frameworks_native_interned_data (#6468)\n2026-07-01 reveman@meta.com rust-sdk: update proto bindings and crate versions (#6467)\n2026-07-01 amayzner@snapchat.com ui: Use the trace_processor-generated stdlib documentation (#6437)\n2026-07-01 lalitm@google.com ui: add summary of allocation/free information to profiling slices (#6443)\n2026-07-01 zezeozue@google.com sdk: add state track event support (C HL API + Java SDK) (#6464)\n2026-07-01 lalitm@google.com ui: add a \"gutter\" at left/right of timeline for selecting edge events (#6447)\n2026-07-01 safayat@google.com proto: Relocate FrameTimeline, ProtoLog, and ViewCapture to OOT extensions (#6456)\n2026-07-01 77778393+carlscabgro@users.noreply.github.com tp: fix symbolization when using debug only binaries (#6403)\n2026-07-01 38379024+tudormot@users.noreply.github.com Make boot tracing trigger robust (#6455)\n2026-07-01 reveman@meta.com tp: avoid duplicate machine row for an adopted machine (#6450)\n2026-07-01 stevegolton@google.com ui: Add \u0027show in timeline\u0027 links to memscope overview sections (#6458)\n2026-07-01 stevegolton@google.com ui: Add \u0027where the growth went\u0027 bar to memscope overview (#6457)\n2026-07-01 lalitm@google.com smb: account for size of patches when splitting commit IPCs (#6454)\n2026-07-01 stevegolton@google.com ui: Add smaps detail tab to memscope overview (#6453)\n2026-07-01 stevegolton@google.com ui: Add native memory section to memscope overview (#6452)\n2026-07-01 stevegolton@google.com ui: Add java memory breakdown sections to memscope (#6451)\n2026-07-01 stevegolton@google.com ui: Add memory over time chart + mini memory breakdown flamegraph (#6445)\n2026-06-30 nicomazz@google.com Migrate CUJ frame/CUJ boundaries from metrics to stdlib (#6404)\n2026-06-30 lalitm@google.com ui: fix missing machine labels on process/thread groups (#6448)\n2026-06-30 nicomazz@google.com Migrate CUJ relevant slices from metrics to stdlib (#6351)\n2026-06-30 lalitm@google.com tp: deduplicate on class name not on type id (#6441)\n2026-06-30 stevegolton@google.com ui: Add trace summary billboards to the memory overview page (#6440)\n2026-06-30 etiennep@chromium.org [state] Fix overly strict state track tokenization (#6406)\n2026-06-30 stevegolton@google.com ui: Add process info strip at the top of the memory overview page (#6439)\n2026-06-30 lalitm@google.com ui: docs: make docs/UI memory terminology consistent and fix mixed art/native traces (#6434)\n2026-06-30 reveman@meta.com sdk/ui: only surface machines that received packets (#6366)\n2026-06-30 stevegolton@google.com ui: Add barebones memory overview page (#6438)\n2026-06-30 stevegolton@google.com ui: Extract reusable components and utils out of memscope (#6435)\n2026-06-30 stevegolton@google.com ui: Add status msg before notifying onTraceReady listeners (#6436)\n2026-06-30 lalitm@google.com ai: add explicit skill root and handle multi-heap dump traces (#6433)\n2026-06-30 stevegolton@google.com ui: Fix issue where headless tracks interfere with pinTrackByRegex command (#6388)\n2026-06-30 stevegolton@google.com ui: Fix omnibox test (again) \u0026 integration tests running under docker (#6432)\n2026-06-30 gignat@google.com ui: MemoryViz: Sort LMK buckets by OOM score adjustment (#6431)\n2026-06-30 stevegolton@google.com uI: Add two new charts: ProportionBar and Flamegraph (#6429)\n2026-06-30 lalitm@google.com ui: complete multi-trace merging dialog (#6422)\n2026-06-30 stevegolton@google.com ui: Fix flaky omnibox test (#6427)\n2026-06-30 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6428)\n2026-06-29 zezeozue@google.com android_sdk: add a boolean addField overload to the track event builder (#6424)\n2026-06-29 lalitm@google.com tp: fix missing null check when doing dfs (#6423)\n2026-06-29 parthsane@gmail.com Add HostingTypeId to  frameworks_base_track_event.proto (#6416)\n2026-06-29 zezeozue@google.com android_sdk: remove skipFrames from expensiveDebugCallStack (#6420)\n2026-06-29 lalitm@google.com tp: fix compile on Windows (#6419)\n2026-06-29 rzuklie@google.com Rename package_lookup to _intrinsic_package_lookup. (#6380)\n2026-06-29 lalitm@google.com perfetto: enable track_event_incremental_state_clear_not_destroy (#6418)\n2026-06-29 lalitm@google.com tp: make ArgsInserter non-virtual (#6411)\n2026-06-29 lalitm@google.com tp: readd missing bundle tests (#6414)\n2026-06-29 nicomazz@google.com  Fix crash when opening traces with jank CUJ data (#6413)\n2026-06-29 parthsane@gmail.com Update frameworks_base_track_event.proto to be in sync with upstream (#6412)\n2026-06-29 safayat@google.com Revert \"Relocate FrameTimeline, ProtoLog, and ViewCapture to OOT exte… (#6408)\n2026-06-29 etiennep@chromium.org [state] Add state track tables and account for it in _process_available_info_summary (#6407)\n2026-06-29 sergey.miryanov@gmail.com Fix small typos in the perfetto-sql-syntax.md (#6402)\n2026-06-29 lalitm@google.com tp: ui: simplify multi-trace syncing logic (#6399)\n2026-06-29 lalitm@google.com tp: handle being invoked as traceconv (#6400)\n2026-06-29 sashwinbalaji@google.com tp: use portable getopt shim in subcommand_flags_unittest (#6405)\n2026-06-28 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6398)\n2026-06-26 lalitm@google.com tp: inline traceconv conversion into the shell subcommands (#6396)\n2026-06-26 lalitm@google.com ui: nest work period tracks under gpu section (#6389)\n2026-06-26 lalitm@google.com tp: collapse ArgsTracker into a per-cell pooled ArgsInserter (#6354)\n2026-06-26 rzuklie@google.com Downgrade common kernel wakelock errors to kInfo. (#6381)\n2026-06-26 nicomazz@google.com ui: Fix crash when no frame found for blocking call metric (#6390)\n2026-06-26 reveman@meta.com rust-sdk: Fix GPU counters example (#6393)\n2026-06-26 lalitm@google.com docs: add linux system tracing to homepage (#6395)\n2026-06-26 lalitm@google.com tp: add better docs for Linux tracing (#6394)\n2026-06-26 stevegolton@google.com ui: Use import.meta.glob to find and import plugins (#6392)\n2026-06-26 stevegolton@google.com ui: Allow createPerfettoTable() to take a list of rows as records (#6261)\n2026-06-26 khokhlov@google.com Fix trace processor crashes with JIT traces (#6349)\n2026-06-26 stevegolton@google.com ui: Fix eslint errors (#6387)\n2026-06-26 stevegolton@google.com ui: Don\u0027t null-check WebGL object creation (#6386)\n2026-06-26 stevegolton@google.com ui: Remove unused error bindings from catch clauses (#6385)\n2026-06-26 lalitm@google.com ui: add multi-trace \"at the same time\" merge configurator (#6378)\n2026-06-26 eseckler@google.com tp: Fix crash when JIT range is subset of mapping (#6368)\n2026-06-26 zezeozue@google.com tp: store android_framework_track_event enum columns as names (#6376)\n2026-06-26 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6384)\n2026-06-26 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6382)\n2026-06-26 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6365)\n2026-06-26 gignat@google.com ui: BreakdownTracks: consolidate interval logic and improve BinderViz (#6216)\n2026-06-26 safayat@google.com Relocate FrameTimeline, ProtoLog, and ViewCapture to OOT extensions (#6377)\n2026-06-25 lalitm@google.com tp: switch unix rpc server to use base::Daemonize (#6333)\n2026-06-25 sashwinbalaji@google.com perfetto: consolidate Android OOT allocations in extensions.json (#6375)\n2026-06-25 lalitm@google.com tp: add hidden tokenize-only dev flag to shell (#6373)\n2026-06-25 lalitm@google.com ui: add support for bundling even with dev server (#6374)\n2026-06-25 stevegolton@google.com ui: Improve assert*() functions with assertion signatures (#6372)\n2026-06-25 elrakadm@google.com Make android_jank_cuj_layer_name public table to fix downstream dependencies (#6371)\n2026-06-25 lalitm@google.com perfetto: scope agents-install to the Perfetto skill only (#6369)\n2026-06-25 zezeozue@google.com tp: android_framework_track_event plugin + process lifecycle table (#6364)\n2026-06-24 lalitm@google.com tp: remap multi-machine protos in perfetto_manifest (#6359)\n2026-06-24 lalitm@google.com tp: add support for track event extension parsing in plugins (#6340)\n2026-06-24 lalitm@google.com ui: redesign flamegraph node action menu (#6361)\n2026-06-24 lalitm@google.com tp: don\u0027t filter on machine id in remote_clock_sync test (#6362)\n2026-06-24 lalitm@google.com tp: switch flamegraph to regexp and improve help (#6358)\n2026-06-24 lalitm@google.com tp: add cross-file clock sync to perfetto_manifest (#6352)\n2026-06-24 lalitm@google.com tp: fix negative timestamps in remote clock sync (#6355)\n2026-06-24 jernej@google.com Fix name of the layers table (#6356)\n2026-06-24 lalitm@google.com tp: improve performance of IsThreadAlive by adding a fast cache (#6353)\n2026-06-24 tudorp@google.com ui: Added \u0027OOME callstack\u0027 track (#6259)\n2026-06-23 lalitm@google.com tp: memoize proto arg keys to avoid re-interning per field (#6348)\n2026-06-23 lalitm@google.com tp: add perfetto_manifest machine overrides and cross-machine clocks (#6350)\n2026-06-23 sashwinbalaji@google.com Revert^2: Remove AndroidCameraFrameEvent and AndroidCameraSessionStats (#6347)\n2026-06-23 nicomazz@google.com Migrate CUJ ui thread resolution queries to stdlib (#6343)\n2026-06-23 jernej@google.com Fix \"Run Query: Android Jank CUJs\" for application jank (#6346)\n2026-06-23 lalitm@google.com tp: speed up and shrink SliceTracker (#6344)\n2026-06-23 lalitm@google.com tp: memoize and unify string-like interned messages (#6345)\n2026-06-23 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6342)\n2026-06-22 nicomazz@google.com Move android_jank_cuj_layer_name from metrics to stdlib (#6341)\n2026-06-22 rsavitski@google.com tprobes: ps: explicit thread message for main thread (#6287)\n2026-06-22 lalitm@google.com tp: unify clock handling into a single cross-machine graph (#6339)\n2026-06-22 zezeozue@google.com tp: Place video frames at presentation time (#6294)\n2026-06-22 lalitm@google.com tp: add perfetto_manifest clock overrides (#6329)\n2026-06-22 lalitm@google.com perfetto: add Linux perf test data for stripped-ELF symbolization (#6338)\n2026-06-22 hikaph+oss@gmail.com MessageTest: Avoid null reference (#6336)\n2026-06-22 reveman@meta.com tp+ui: add SystemInfo.machine_name for machine UI labels (#6335)\n2026-06-22 rsavitski@google.com protos: smaps: fixup recording_type scope (#6330)\n2026-06-22 sashwinbalaji@google.com perfetto: attribute TraceBufferV2 data loss by cause (#6082)\n2026-06-21 gignat@google.com bt-ui: keep SettingsPage mounted across route changes (#6326)\n2026-06-19 lalitm@google.com perfetto: cut v57.0 in the CHANGELOG (#6332)\n2026-06-19 stevegolton@google.com ui: Fix bug in ResizableArrayBuffer (#6334)\n2026-06-19 lalitm@google.com perfetto: publish the Python package to PyPI from CI (#6327)\n2026-06-19 etiennep@chromium.org [State] Support State tracks in UI [4/4] (#6091)\n2026-06-19 lalitm@google.com tp: switch unixd to use base::CtrlCHandler (#6324)\n2026-06-19 lalitm@google.com tp: fix compile on chromium (#6325)\n2026-06-19 sashwinbalaji@google.com Partial Revert tp: remove AndroidCameraFrameEvent and AndroidCameraSessionStats (#6322)\n2026-06-19 rsavitski@google.com proto: smaps: add field to discriminate which impl wrote the snapshot (#6319)\n2026-06-19 lalitm@google.com tp: fix compile of getppid (#6320)\n2026-06-19 ilkos@google.com Introduce runtime config for OOME thread dump (#6317)\n2026-06-19 stevegolton@google.com ui: Fix bad type assertion in isPostedTraceWrapped (#6316)\n2026-06-19 lalitm@google.com tp: record all clock graph edges in the clock_snapshot table (#6312)\n2026-06-19 lalitm@google.com tp: support `--remote host:port` over WebSocket (#6313)\n2026-06-19 lalitm@google.com tp: fix race in unix ctrl-c causing CI flakiness (#6315)\n2026-06-19 lalitm@google.com tp: gate --remote behind Perfetto IPC availability (#6314)\n2026-06-19 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6309)\n2026-06-19 gignat@google.com bt-ui: Add BigTrace trace presets  (#6283)\n2026-06-19 gignat@google.com bt-ui: Bigtrace UI fixes and polish (#6225)\n2026-06-19 lalitm@google.com ui: normalize postMessage trace buffers to a pure ArrayBuffer (#6311)\n2026-06-19 lalitm@google.com tp: replace GetExtensionSlowly with SelectiveTracePacketDecoder (#6218)\n2026-06-19 lalitm@google.com tp: add detailed import logging for debugging overlapping slices (#6307)\n2026-06-18 sashwinbalaji@google.com tp: remove AndroidCameraFrameEvent and AndroidCameraSessionStats (#6308)\n2026-06-18 lalitm@google.com tp: add `server kill` to stop unix sessions (#6303)\n2026-06-18 lalitm@google.com tp: allow `server unix` to start without a trace file (#6302)\n2026-06-18 lalitm@google.com tp: fix compile on no IPC codepaths (#6306)\n2026-06-18 lalitm@google.com tp: rename perfetto_metadata to perfetto_manifest (#6304)\n2026-06-18 lalitm@google.com tp: add workaround for overlapping X event (#6284)\n2026-06-18 lalitm@google.com tp: rename perfetto_metadata to perfetto_manifest (#6305)\n2026-06-18 reveman@meta.com sdk: support machine_id on the in-process backend (#6299)\n2026-06-18 reveman@meta.com ui: compute tracing time bounds per (machine, trace) (#6300)\n2026-06-18 primiano@google.com docs: Add agents instructions for UI antipatterns (#6102)\n2026-06-18 lalitm@google.com tp: add self-managing lifecycle (idle timeout + orphan detection) (#6289)\n2026-06-18 lalitm@google.com ui: insert 1px gap on right edge of slices (#6252)\n2026-06-18 lalitm@google.com tp: move fatal framing error check out of valid block (#6301)\n2026-06-18 lalitm@google.com tp: add RemoteTraceProcessor and the `--remote` client (#6286)\n2026-06-18 lalitm@google.com tp: improve logic for distict sorting (#6295)\n2026-06-17 wusamuel@google.com ui: Wattson: Fix per thread track display (#6298)\n2026-06-17 primiano@google.com ci: switch to actions@v5 (#6292)\n2026-06-17 lalitm@google.com tp: fix incorrect handling of distinct on new versions of SQLite (#6293)\n2026-06-17 shayba@google.com sdk: Support full callstacks in Perfetto Java SDK (#6278)\n2026-06-17 primiano@google.com CI: use nvmes as scratch disks for /tmp (#6291)\n2026-06-17 zezeozue@google.com android_sdk: add track event correlation ids (#6276)\n2026-06-17 zezeozue@google.com github: regenerate CODEOWNERS for the rust-sdk perfetto-team owner (#6290)\n2026-06-17 noamraph@gmail.com converting.md: simplify examples a bit (#6264)\n2026-06-17 safayat@google.com Relocate evdev OOT mirror to frameworks/native (#6247)\n2026-06-17 lalitm@google.com tp: fix bug with multiple filters in structured query generation (#6285)\n2026-06-17 lalitm@google.com tp: fix unix server when ipc is not enabled (#6281)\n2026-06-17 bogdan.lionte1997@gmail.com perfetto: prevent duplicate comments for deleted elements in proto_merger (#6282)\n2026-06-17 fmeawad@users.noreply.github.com tp: Fix Fuchsia process-scoped and cross-process flow correlation (#6279)\n2026-06-17 stevegolton@google.com ui: Remove stray console.log (#6280)\n2026-06-16 zezeozue@google.com rust-sdk: let the Perfetto team own simple changes (#6274)\n2026-06-16 zezeozue@google.com android_sdk: Add nested-track ordering and merging (#6262)\n2026-06-16 rsavitski@google.com rename plugin owners file for downstream repos (#6273)\n2026-06-16 reveman@meta.com ai/skills: add GPGPU compute kernel analysis skills (#6270)\n2026-06-16 rsavitski@google.com integrationtests: remove dependency on pblite (#6271)\n2026-06-16 etiennep@chromium.org [State] Expose TRACE_STATE API in SDK [3/4] (#6086)\n2026-06-16 lalitm@google.com tp: add unix socket protocol for RPCs (#6248)\n2026-06-16 lalitm@google.com protozero: add selective decoding to TypedProtoDecoder (#6227)\n2026-06-16 stevegolton@google.com ui: Chore - tidy up timeline page plugin (#6265)\n2026-06-16 lalitm@google.com docs: add copy to clipboard button for code and fix expand/collapse hand (#6267)\n2026-06-16 stevegolton@google.com ui: Use shift + mouse wheel to horizontally scroll timeline + DE page (#6263)\n2026-06-16 lalitm@google.com tp: allow empty json trace events and migrate to import logging (#6254)\n2026-06-16 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6246)\n2026-06-16 lalitm@google.com protozero: speed up TypedProtoDecoder (#6213)\n2026-06-16 abhilash.menchithara@arm.com ui: Arm telemetry cpu manager, telemetry plugin, and page to load cpus (#5284)\n2026-06-16 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6257)\n2026-06-15 lalitm@google.com docs: hint that users can have their own git workflows (#6245)\n2026-06-15 lalitm@google.com perfetto: Add native/Java allocation AI workflows (#6239)\n2026-06-15 etiennep@chromium.org [State] Support state tracks in trace_processor [2/4] (#6084)\n2026-06-15 lalitm@google.com tp: refactor IteratorImpl to be an abstract base for remote iterators (#6238)\n2026-06-15 safayat@google.com tp: support explicit thread and process ordering in track descriptors (#6219)\n2026-06-15 keanmariotti@google.com tracing: fix TBv2 patching regression (#6221)\n2026-06-15 sashwinbalaji@google.com tp: tolerate unresolvable type in OOT extension compatibility check (#6236)\n2026-06-13 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6231)\n2026-06-13 staticfloat@gmail.com ftrace: Add `psci_domain_idle_{exit,enter}` ftrace events (#6137)\n2026-06-12 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6229)\n2026-06-12 gignat@google.com bt-ui: bigtrace add SQL formatting to the query editor (#6226)\n2026-06-12 stevegolton@google.com ui: Synthesize version number and git hash at bundle time (#6223)\n2026-06-12 stevegolton@google.com ui: Use real file path for plugin barrel modules (#6222)\n2026-06-12 gignat@google.com stdlib: memory_breakdown: attribute zygote baseline to forking parent and  scope to primary zygotes (#6214)\n2026-06-12 sashwinbalaji@google.com tp: move heap graph, network and bluetooth traces out of tree (#6208)\n2026-06-11 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6220)\n2026-06-11 bogdan.floris@gmail.com protovm: fix del_if_src_empty if skip_submessages is set (#6212)\n2026-06-11 lalitm@google.com protoprofile: transparently ungzip traces passed to it (#6215)\n2026-06-11 lalitm@google.com tp: add perfetto_metadata sidecar detection and envelope (#6202)\n2026-06-11 gignat@google.com ui: OomAdjScoreViz: improve track ordering, descriptions, and rendering (#6206)\n2026-06-11 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6207)\n2026-06-11 bogdan.lionte1997@gmail.com tp: Parse and ingest ART OOME metadata into Trace Processor (#6175)\n2026-06-11 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6204)\n2026-06-11 gignat@google.com bt-ui: Revamp Bigtrace settings architecture and UI (#6205)\n2026-06-10 lalitm@google.com tp: write back converted timestamps for systrace lines (#6200)\n2026-06-10 sashwinbalaji@google.com perfetto: expose android_extensions protos as a public Bazel proto group (#6199)\n2026-06-10 rsavitski@google.com smaps plugin: instants track, datagrid details panel (#6184)\n2026-06-10 278437629+perfetto-automation[bot]@users.noreply.github.com Roll prebuilts to v56.1 (#6196)\n2026-06-10 lalitm@google.com ai: bundle the tag\u0027s ai skills *not* main\u0027s (#6198)\n2026-06-10 lalitm@google.com python: explicitly prepend http:// when bare address is specified (#6180)\n2026-06-10 lalitm@google.com ai: fix crash when building skills bundle (#6195)\n2026-06-10 lalitm@google.com github: run release workflow on self hosted runner (#6193)\n2026-06-10 stevegolton@google.com ui: Clean up dependencies (#6192)\n2026-06-10 sashwinbalaji@google.com perfetto: export trace protos from winscope_extensions for Bazel (#6191)\n2026-06-10 sashwinbalaji@google.com proto_merger: keep oneof fields and enum values deleted upstream (#6189)\n2026-06-10 reveman@meta.com ai/skills: add GPU frequency residency workflow (#6190)\n2026-06-10 sashwinbalaji@google.com tp: move winscope out-of-tree as proto2 extensions (#6105)\n2026-06-10 lalitm@google.com tp: support inline zip/tar archive traces in diff tests\n2026-06-10 lalitm@google.com tp: add expected-error support to diff tests (#6186)\n2026-06-10 lalitm@google.com tp: fix python blaze compile (#6185)\n2026-06-10 stevegolton@google.com ui: Allow editing custom textproto record configs (#6178)\n2026-06-10 lalitm@google.com tp: fix force teardown of subprocess in Python API on Windows (#6168)\n2026-06-09 etiennep@chromium.org [State] Add protos to describe state tracks and events [1/4] (#6068)\n2026-06-09 zezeozue@google.com android_sdk: add nested tracks  (#6085)\n2026-06-09 ilkos@google.com java_hprof_config: Add min_java_heap_size_kb option (#6174)\n2026-06-09 safayat@google.com perfetto: move android_job_name interned data out-of-tree (#6154)\n2026-06-09 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6173)\n2026-06-08 reveman@meta.com ai/skills: add GPU timeline occupancy workflow (#6172)\n2026-06-08 lalitm@google.com ai: remove eval files (#6171)\n2026-06-08 etiennep@chromium.org [SDK] Defer track descriptor writes until first event (#6111)\n2026-06-08 lalitm@google.com ai: refactor skill template and add recording reference (#6170)\n2026-06-08 lalitm@google.com ai: cleanup old skills setup in favor of new central Perfetto skill (#6169)\n2026-06-08 rsavitski@google.com heapprofd: add glob support to cmdline matching (only for running targets) (#6167)\n2026-06-08 zezeozue@google.com ui: VideoFrames plugin (#6155)\n2026-06-08 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump the npm_and_yarn group across 1 directory with 4 updates (#6166)\n2026-06-08 sashwinbalaji@google.com perfetto: package perfetto.prebuilts in Android python_library (#6165)\n2026-06-08 stevegolton@google.com ui: chore: Bump deps to patch security issues (#6160)\n2026-06-08 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#6153)\n2026-06-07 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6162)\n2026-06-06 18453608+yuzhy8701@users.noreply.github.com Fix trace processor build with bazel (#6161)\n2026-06-05 runpinglai@google.com tp: Add performance comparison option to diff test runner (#6159)\n2026-06-05 sashwinbalaji@google.com perfetto: fix proto compilation with sandboxed protoc (#6150)\n2026-06-05 lalitm@google.com ai: refactor multiple skills -\u003e single skill (#6156)\n2026-06-05 zezeozue@google.com ui: Persist Heap Dump Explorer state in shared links (#6115)\n2026-06-05 lalitm@google.com ui: add docs on how to embed the UI in other tools (#6138)\n2026-06-05 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5808)\n2026-06-05 lalitm@google.com tp: fix ifdef guard for http trace fetching (#6151)\n2026-06-05 lalitm@google.com base: fix SDK compile by adding default constructor to circularqueue (#6141)\n2026-06-05 stevegolton@google.com ui: Bump dependencies (#6140)\n2026-06-05 sashwinbalaji@google.com perfetto: fix --set-socket-permissions failing in traced_relay (#6149)\n2026-06-05 zezeozue@google.com tp: android.display.video data source, importer, table and stats (#6143)\n2026-06-05 sashwinbalaji@google.com ai: fix OWNERS file (#6147)\n2026-06-05 ilkos@google.com Do not strip stats pull slice names (#6148)\n2026-06-05 staticfloat@gmail.com open_trace_in_ui: Fix `--origin` having a path component (#6136)\n2026-06-04 reveman@meta.com perfetto_cmd: Fix use-after-free of the output FILE on shutdown (#6144)\n2026-06-04 jjaggi@google.com Fix broken matching (#6142)\n2026-06-04 lalitm@google.com perfetto: move prebuilts and AI bundling scripts to CI and add AI docs (#6135)\n2026-06-04 edgararriaga@google.com Add heap analysis skill to find caching opportunities in java heap dumps (#6100)\n2026-06-04 jjaggi@google.com Update android blocking calls metrics and tests to add more RenderThread slices (#6124)\n2026-06-04 staticfloat@gmail.com ui: Add dev.perfetto.JournaldLog plugin and update AndroidLog (3/3) (#5798)\n2026-06-04 lalitm@google.com py: cache prebuilts by SHA-256 so versions coexist (#6134)\n2026-06-04 lalitm@google.com py: ship pinned trace_processor with the package (#6133)\n2026-06-04 lalitm@google.com tp: add support for URLs and UI permalinks in shell (#6132)\n2026-06-04 wusamuel@google.com stdlib: Wattson: Add MT6858 support (#6117)\n2026-06-04 lalitm@google.com tools: add tool for downloading permlink traces (#6131)\n2026-06-04 lalitm@google.com tp: fix deferred sync handling for merged traces (#6130)\n2026-06-04 lalitm@google.com tp: fix crash in experimental_flat_slice and switch how STF work (#6129)\n2026-06-04 lalitm@google.com tp: move gpu descriptor parsing to tokenization and prevent 0 ts packets (#6121)\n2026-06-04 lalitm@google.com ui: add copy functionality to distribution panel and cap title (#6108)\n2026-06-04 sashwinbalaji@google.com perfetto(python): Update download_url for v0.56.0 (#6127)\n2026-06-03 sashwinbalaji@google.com perfetto(python): fix the PyPI release flow (#6120)\n2026-06-03 sashwinbalaji@google.com perfetto: roll prebuilts to v56.0 (#6119)\n2026-06-03 sashwinbalaji@google.com perfetto: make promote-stable skip the CHANGELOG Unreleased block (#6114)\n2026-06-03 stevegolton@google.com ui: Hide out-of-tree Tooltip/CursorTooltip portals when their in-tree elements are not visible (#6110)\n2026-06-03 etiennep@chromium.org Fix ordering of global tracks (#6107)\n2026-06-03 stevegolton@google.com ui: Avoid using screenshots to assert omnibox behavior (#6109)\n2026-06-03 rsavitski@google.com proto_merger: actually remove pre-editions \"packed\" option (#6095)\n2026-06-02 wusamuel@google.com ui: Wattson: Display track name in pinned track (#6092)\n2026-06-02 gignat@google.com ui: Fix column sort, reorder, and hide in QueryPage results grid (#6030)\n2026-06-02 etiennep@chromium.org [etw] Fix deprecated fields in EtwConfig (#6096)\n2026-06-02 zezeozue@google.com ui: Default to the Heap Dump Explorer on more traces (#6104)\n2026-06-02 stevegolton@google.com ui: Add option to make settings headless (#6103)\n2026-06-02 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6101)\n2026-06-02 shinyuw@google.com Add disp_dpu_line_underrun ftrace (#6080)\n2026-06-01 sashwinbalaji@google.com Keep core protos out of the embedded extension descriptor (#6098)\n2026-06-01 reveman@meta.com rust-sdk: update proto bindings (#6099)\n2026-06-01 reveman@meta.com rust-sdk: update crate version in preperation for stable release (#6097)\n2026-06-01 lalitm@google.com tp: fix parsing of asterik/star in Pigweed messages (#6077)\n2026-06-01 zezeozue@google.com android_sdk: Increase default track event cache size (#6094)\n2026-06-01 wilczynskip@google.com LayoutParams brightness unit (#6089)\n2026-06-01 gignat@google.com ui: QueryPage: read sidebar-visible setting inline (#6083)\n2026-06-01 petrcermak@users.noreply.github.com Add a missing SCSS import to echart_view.ts (#6088)\n2026-06-01 stevegolton@google.com ui: Fix query formatting on prod (#6024)\n2026-06-01 sashwinbalaji@google.com tp: populate parent_id in counter_track (#6081)\n2026-06-01 gignat@google.com ui: QueryPage collapsible right sidebar with persistence (#6031)\n2026-05-30 lalitm@google.com tp: fix mismatching argument count causing OOB reads in II (#6078)\n2026-05-30 lalitm@google.com tp: fix OOB read while parsing TCP event (#6076)\n2026-05-30 sashwinbalaji@google.com perfetto: keep zlib out of libperfetto_client_experimental (#6075)\n2026-05-30 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6074)\n2026-05-30 ilkos@google.com OOME proto: add exception message string (#6073)\n2026-05-29 sashwinbalaji@google.com perfetto: honor PERFETTO_REGEX_FORCE_STD in regex backend headers (#6072)\n2026-05-29 sashwinbalaji@google.com protozero: make test_messages extensions import public to fix build (#6071)\n2026-05-29 etiennep@chromium.org [etw] Add system_io_provider_events (#6069)\n2026-05-29 primiano@google.com TraceBufferV2: add test after today investigation (#6067)\n2026-05-29 sashwinbalaji@google.com run tools/gen_android_bp (#6066)\n2026-05-29 rossning92@gmail.com trace_processor: Parse adreno_cmdbatch_retired/sync events (#5817)\n2026-05-29 lalitm@google.com tp: fix slice breakdown to correctly use stack_id (#6063)\n2026-05-29 sashwinbalaji@google.com perfetto: move app_wakelock trace packets out-of-tree (#6060)\n2026-05-29 sashwinbalaji@google.com perfetto: add proto2 extension support to protozero and trace_processor (#6059)\n2026-05-29 staticfloat@gmail.com tp: Parse JournaldEventPacket into unified LogTable (2/3) (#5797)\n2026-05-29 wusamuel@google.com Android.bp.extras: Expose Wattson power curves in Android (#6042)\n2026-05-29 primiano@google.com gen_android_bp: add way to emit a flat filegroup with all transitive protos (#6062)\n2026-05-28 lalitm@google.com sdk: allow zlib and re2 to be enabled with the amalgamated SDK (#6034)\n2026-05-28 lalitm@google.com perfetto: scope RelayPort to explicitly opted-in producer sockets (#5908)\n2026-05-28 lalitm@google.com relay: fix silent chunk loss with TCP producer socket (#6052)\n2026-05-28 lalitm@google.com sdk: don\u0027t match data source id 0 against any datasource (#5927)\n2026-05-28 rossning92@gmail.com tp: use raw ftrace timestamp in ftrace_event table via dual-push (#6058)\n2026-05-28 lalitm@google.com ui: fix extension server shared link behavior (#6057)\n2026-05-28 etiennep@chromium.org [SDK] Avoid DCHECK Track::FromPointer in uninitialized perfetto (#6032)\n2026-05-28 lalitm@google.com skills: add an out of band json file instead of targets frontmatter (#6056)\n2026-05-28 lalitm@google.com ai: improve skills for single heap dump and add cluster heap dump (#6037)\n2026-05-28 100331525+zzl360@users.noreply.github.com base: avoid strerror text in sched boost tests (#6048)\n2026-05-28 lalitm@google.com skills: improve evals for querying traces (#6047)\n2026-05-28 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6049)\n2026-05-27 rsavitski@google.com tp: decode new smaps packets into process_memory_mappings (#6043)\n2026-05-27 lalitm@google.com ai: add extensions for coding agents and add bundling scripts (#6046)\n2026-05-27 rsavitski@google.com perfetto_hprof: make new smaps parser accessible (#6035)\n2026-05-27 rsavitski@google.com smaps: add path name redaction rules (#5985)\n2026-05-27 sashwinbalaji@google.com traced_probes: reduce noise in disconnect-trigger captures (#6045)\n2026-05-27 sashwinbalaji@google.com perfetto: unify OOT extension registries and reserve TracePacket range (#6039)\n2026-05-27 nicomazz@google.com Optimize android_blocking_calls_cuj_per_frame_metric (#6044)\n2026-05-26 lalitm@google.com tp: fix clash with \"DEBUG\" on MacOS toolchain (#6038)\n2026-05-26 zezeozue@google.com ui: Show oom_score_adj on heap dump explorer overview (#6025)\n2026-05-26 harshit.rawat612@gmail.com perfetto: enhance trace querying skill with guidelines and execution protocol (#5983)\n2026-05-25 reveman@meta.com docs: document GPU UI plugins and add example query (#6028)\n2026-05-23 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6026)\n2026-05-22 lalitm@google.com tp: add Transaction + parameterized Execute to PerfettoSqlConnection (#6020)\n2026-05-22 lalitm@google.com tp: bump SQLite per-connection lookaside slab (#6023)\n2026-05-22 gignat@google.com ui: Enable MemoryViz by default and improve load performance (#6011)\n2026-05-22 lalitm@google.com tp: lazily materialize SqlSource::rewritten_sql (#6021)\n2026-05-22 lalitm@google.com tp: avoid 4 MB zero-fill on StringPool block alloc (#6022)\n2026-05-22 luchris@google.com Add panel settings ftrace (#6012)\n2026-05-22 chinglinyu@google.com tp: fix android input end-to-end latency app frame matching (#6009)\n2026-05-22 stevegolton@google.com ui: Improve QueryLog tab UX (#6018)\n2026-05-22 ilkos@google.com Proto changes for additional data collection at OutOfMemoryError time (#6017)\n2026-05-22 zezeozue@google.com android_sdk: exclude test-only androidx host stub  (#6016)\n2026-05-22 stevegolton@google.com ui: Fix public comments (#6015)\n2026-05-22 stevegolton@google.com ui: Surface SQL errors properly in DataGrid (#6014)\n2026-05-22 lalitm@google.com ui: consistently show the same details panel regardless of counter mode (#6005)\n2026-05-22 stevegolton@google.com ui: Add new side panel extension point (#5960)\n2026-05-22 lalitm@google.com perfetto: add release notes for v56.0 release (#6007)\n2026-05-22 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#6010)\n2026-05-21 runpinglai@google.com ui: Fix Wattson estimate aggregator registration for GPU/TPU only traces (#6008)\n2026-05-21 lalitm@google.com tp: add support for forwards looking GPU counters (#6006)\n2026-05-21 runpinglai@google.com tp: merge Wattson interconnect power into cpu_2d curves (#5818)\n2026-05-21 staticfloat@gmail.com traced_probes: Add linux.journald data source (1/3) (#5796)\n2026-05-21 lalitm@google.com ui: add opt-in engine startup benchmark (#5945)\n2026-05-21 morrita@google.com ui: Add GoogleCamera memory tracks command (#5990)\n2026-05-21 gignat@google.com ui: Add details panel and process navigation to AndroidStartup plugin (#6002)\n2026-05-21 gignat@google.com ui: Add details panel and process navigation to AndroidAnr plugin (#6001)\n2026-05-21 lalitm@google.com tp: PerfettoSqlConnection hot-path rewrite + benchmarks (#5971)\n2026-05-21 lalitm@google.com tp: fix use after move when populating stdlib (#5999)\n2026-05-21 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5996)\n2026-05-21 rzuklie@google.com Migrate battery modules to _intervals_fill_gaps. (#5995)\n2026-05-21 pmuetschard@users.noreply.github.com Add the total weighted jank to the frame timeline metric. (#5997)\n2026-05-21 lalitm@google.com tp: PerfettoSqlParser supports Reset() + faster parse path (#5970)\n2026-05-21 lalitm@google.com tp: add defensive check to dominator tree for incomplete heap graphs (#5974)\n2026-05-20 hcutts@google.com protos: add trace_evdev_events bool for input tracing (#5989)\n2026-05-20 54920066+YasserDbeis@users.noreply.github.com Correct skill name guideline in README (#5993)\n2026-05-20 rsavitski@google.com tools: update android health aidl version to match internal tree (#5991)\n2026-05-20 gignat@google.com bt-ui:  Implement and polish Bigtrace asynchronous queries (#5822)\n2026-05-20 gignat@google.com ui: add memcg reclaim tracks and update descriptions in MemoryViz (#5986)\n2026-05-20 rzuklie@google.com Add stdlib function to fill data from trace start to end. (#5976)\n2026-05-20 keanmariotti@google.com protovm: add compiler (#5784)\n2026-05-20 stevegolton@google.com ui: Colocate all frontend styles next to their typescript counterparts (#5953)\n2026-05-20 stevegolton@google.com ui: Format build.mjs and vite.config.mjs (#5988)\n2026-05-20 stevegolton@google.com ui: Colocate grammar.d.ts file rather than relying on an ambient declaration (#5987)\n2026-05-20 lalitm@google.com tp: fix parsing of delegates to function in stdlib docs (#5981)\n2026-05-20 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5984)\n2026-05-20 zezeozue@google.com android_sdk: Host JVM test runner for PerfettoTraceTest (#5973)\n2026-05-20 gmtr@google.com tp: Optimize Fuchsia trace wakeup event parsing (#5868)\n2026-05-19 lalitm@google.com shared_lib: restrict to build generator only (#5975)\n2026-05-19 bienvenu@davidbienvenu.org trace_processor: Add Windows ETW disk I/O event parsing (#5563)\n2026-05-19 lalitm@google.com tp: stream stdlib into engine without copies (#5968)\n2026-05-19 zezeozue@google.com android_sdk: host stubs for perfetto_trace_lib_java host build (#5967)\n2026-05-19 natsu@google.com shared_lib: Expose header only library in Bazel build (#5955)\n2026-05-19 stevegolton@google.com ui: Memscope - Profiling support (#5786)\n2026-05-19 eseckler@google.com ui: Support viewing screenshots on mouse hover over track (#5954)\n2026-05-19 zezeozue@google.com Revert: host_supported on perfetto_trace_lib_java_defaults (#5966)\n2026-05-19 sashwinbalaji@google.com tp: bump prebuilts for v55.3 (#5965)\n2026-05-19 lalitm@google.com tp: refuse PERFETTO FUNCTION redefinition of C++ intrinsics to fix UAF (#5957)\n2026-05-19 sashwinbalaji@google.com gitignore: jetski (#5962)\n2026-05-19 zezeozue@google.com android_sdk: make libperfetto_jni host_supported (#5939)\n2026-05-18 sashwinbalaji@google.com v55.3 changelog (#5956)\n2026-05-18 sashwinbalaji@google.com descriptors: Match by type and fields rather than name (#5948)\n2026-05-18 stevegolton@google.com ui: Forward env vars to vite dev server process (#5952)\n2026-05-18 lalitm@google.com ai: fix skill names to conform to spec (#5951)\n2026-05-18 ilkos@google.com Update heap profiler documentation (#5949)\n2026-05-18 lalitm@google.com ai: add license to fix G3 import (#5950)\n2026-05-18 lalitm@google.com ui: speed up trace_processor worker startup (#5941)\n2026-05-18 stevegolton@google.com ui: Switch to vite dev server (#5937)\n2026-05-18 zezeozue@google.com Reland: android_sdk: PERFETTO_JNI_HOST_PARAMS shim for non-ART JVMs (#5946)\n2026-05-18 stevegolton@google.com ui: Colocate widget styles with TypeScript components (#5947)\n2026-05-18 lalitm@google.com tp: fix potential UAF in tree operations code (#5930)\n2026-05-18 lalitm@google.com tp: make all functions keyed by lowercase in hashmap (#5934)\n2026-05-18 lalitm@google.com tp: validate that the origin is in allowlist for all origin queries (#5938)\n2026-05-18 zezeozue@google.com Revert \"android_sdk: PERFETTO_JNI_HOST_PARAMS shim for non-ART JVMs\" (#5940)\n2026-05-18 stevegolton@google.com ui: Attempt to fix playwright flakes (#5935)\n2026-05-18 eseckler@google.com Handle invalid utids in export_json.cc (#5932)\n2026-05-18 lalitm@google.com ui: explicitly await user confirmation contacting opening add extension server URL (#5933)\n2026-05-18 zezeozue@google.com android_sdk: PERFETTO_JNI_HOST_PARAMS shim for non-ART JVMs (#5924)\n2026-05-18 stevegolton@google.com ui: Migrate jest-\u003evitest (#5929)\n2026-05-18 eseckler@google.com ui chrome extension: Add comment about loading unpacked extension. (#5735)\n2026-05-18 lalitm@google.com perfetto: fix owners files (#5928)\n2026-05-18 peter@pcc.me.uk gn: Stop passing -Werror in non-hermetic builds (#5916)\n2026-05-18 peter@pcc.me.uk gn: Simplify logic for finding Clang resource directory (#5915)\n2026-05-18 peter@pcc.me.uk Fix musl build (#5914)\n2026-05-17 lalitm@google.com ai: switch skills from using - to _ (#5920)\n2026-05-17 stevegolton@google.com ui: Switch to es6 output for protobuf (#5921)\n2026-05-16 lalitm@google.com tp: fix pigweed detokenization with truncated formatting args (#5918)\n2026-05-16 lalitm@google.com tp: add various bounds checking to art method tokenization (#5919)\n2026-05-16 lalitm@google.com perfetto: fix build on latest Fedora (#5922)\n2026-05-16 lalitm@google.com ui: sanitize permalink filename coming from url/postmessage (#5917)\n2026-05-16 lalitm@google.com ai: add Bazel build rules for AI skills (#5912)\n2026-05-15 lalitm@google.com tp: fix UI crashing due to trying to create an intrinsic index (#5911)\n2026-05-15 lalitm@google.com tp: remove FindById and replace with operator[] (#5906)\n2026-05-15 lalitm@google.com tp: improve experience of casting to id in SQL functions (#5905)\n2026-05-15 lalitm@google.com tp: make adding index create a new dataframe and add support for intrinsic indexes (#5909)\n2026-05-15 stevegolton@google.com ui: Hoist lezer grammar generation into vite/rollup (#5904)\n2026-05-15 gignat@google.com stdlib: android_lmk_events use evt.pid instead of process.pid (#5898)\n2026-05-15 lalitm@google.com tp: delete the legacy PerfettoSqlPreprocessor (#5472)\n2026-05-15 stevegolton@google.com ui: Replace plugin barrel codegen with a Vite virtual module (#5903)\n2026-05-15 lalitm@google.com base: permute positional arguments vs flags in getopt_compat similar to GNU (#5878)\n2026-05-15 peter@pcc.me.uk perf: allocate Unwinder on the heap (#5871)\n2026-05-15 stevegolton@google.com ui: Import scss files via typescript module imports (#5902)\n2026-05-15 stevegolton@google.com ui: Migrate to Vite for TS transpilation and bundling (#5900)\n2026-05-15 sashwinbalaji@google.com android: enable system_tracing_protos_descriptor (#5901)\n2026-05-15 stevegolton@google.com ui: Remove genai and modelcontextprotocol dependencies (#5889)\n2026-05-15 gignat@google.com ui: MemoryViz move reclaim events under Memory group (#5899)\n2026-05-15 sashwinbalaji@google.com perfetto: convert android_track_event.proto to shim (#5835)\n2026-05-15 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5897)\n2026-05-15 keanmariotti@google.com protovm: optimize node memory footprint (#5805)\n2026-05-14 lalitm@google.com tp: bump prebuilts for v55.2 (#5893)\n2026-05-14 lalitm@google.com tp: ignore container trace files in JSON export stats check (#5891)\n2026-05-14 lalitm@google.com ui: scroll flamegraph to root in top down/bottom up/pivot (#5887)\n2026-05-14 stevegolton@google.com ui: Format build.mjs (#5890)\n2026-05-14 stevegolton@google.com ui: Move generated lezer grammar file. (#5888)\n2026-05-14 stevegolton@google.com ui: Add type prefix to relevant type imports everywhere (#5883)\n2026-05-14 lalitm@google.com tp: add changelog for v55.2 (#5884)\n2026-05-14 lalitm@google.com tp: emit flags before positionals in classic-\u003esubcommand translation (#5882)\n2026-05-14 lalitm@google.com tp: migrate winscope importer to be a plugin (#5867)\n2026-05-14 lalitm@google.com tp: create new plugin to handle all the storage dataframe -\u003e connection registration (#5865)\n2026-05-14 lalitm@google.com tp: fix OOB read in to_ftrace softirq handling (#5881)\n2026-05-14 lalitm@google.com tp: replace FixedStringWriter with DynamicStringWriter (#5880)\n2026-05-14 petrcermak@users.noreply.github.com [ChromeScrollJank plugin] Handle traces containing only preferred frame timelines (#5876)\n2026-05-14 andrii.nakryiko@gmail.com ui: Move distribution histogram to the left column in slice details (#5860)\n2026-05-14 petrcermak@users.noreply.github.com Update omnibox integration test screenshots (#5877)\n2026-05-14 lalitm@google.com tp: migrate all intrinsic table functions to plugins (#5864)\n2026-05-14 lalitm@google.com tp: fix proto to args parsing not correctly draining stack on error (#5873)\n2026-05-14 reveman@meta.com ui: Fix GpuByProcess plugin and nest tracks under process groups (#5789)\n2026-05-14 andrii.nakryiko@gmail.com ui: Move distribution histogram to the left column in slice details (#5860)\n2026-05-14 petrcermak@users.noreply.github.com Wrap around when using the keyboard to navigate the command palette (#5849)\n2026-05-14 ilkos@google.com perfetto_hprof proto changes for process \u0026 package metadata (#5855)\n2026-05-14 stevegolton@google.com ui: Add initial page plumbing (#5869)\n2026-05-14 stevegolton@google.com ui: Refresh query page columns on each query (#5872)\n2026-05-14 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5870)\n2026-05-14 lalitm@google.com perfetto: bump prebuilts to v55.1 (#5866)\n2026-05-13 zezeozue@google.com ui: Add bitmap metadata to the HeapDumpExplorer page (#5861)\n2026-05-13 jackmiller403@users.noreply.github.com Add FileIo_PathOperation events to tracing protos (#5768)\n2026-05-13 lalitm@google.com Reapply \"tp: route PerfettoSqlParser through syntaqlite macro expansion\" (#5854)\n2026-05-13 lalitm@google.com tp: refactor function intrinsics to be plugins and simplify connection init (#5811)\n2026-05-13 lalitm@google.com perfetto: add adreno fix to changelog (#5858)\n2026-05-13 lalitm@google.com changelog: add v55.1 for windows fix (#5856)\n2026-05-13 zezeozue@google.com stdlib: Add bitmap specific table with bitmap metadata. (#5824)\n2026-05-13 lalitm@google.com Revert \"Update references to old windows toolchain (#5759)\" (#5853)\n2026-05-13 lalitm@google.com tp: temporarily fix syntaqlite formatting for SQL (#5852)\n2026-05-13 3242828+arpitjain099@users.noreply.github.com perfetto: declare empty permissions for pr-branch-check workflow (#5839)\n2026-05-13 57577698+PriyankaSPX@users.noreply.github.com tp: Account for width/height in ViewCapture visibility computation. (#5850)\n2026-05-13 stevegolton@google.com ui: Migrate build.js commonjs -\u003e ESM and rename to build.mjs (#5848)\n2026-05-13 99329845+ivan-chong@users.noreply.github.com ui: Enable com.android.AndroidLockContention by default (#5831)\n2026-05-13 zezeozue@google.com ui: Control HeapDumpExplorer auto-opening via feature flag (#5845)\n2026-05-13 lalitm@google.com perfetto: upgrade syntaqlite version to 0.5.9 (#5821)\n2026-05-13 sashwinbalaji@google.com tp: Downgrade android_aflags_errors to kInfo (#5844)\n2026-05-13 zezeozue@google.com ui: Keep timeline default for native profiles and perf samples (#5843)\n2026-05-13 3242828+arpitjain099@users.noreply.github.com perfetto: fix typos in design, contributing, and analysis docs (#5840)\n2026-05-13 petrcermak@users.noreply.github.com [ChromeScrollJank plugin] Add a command for visualizing frame timelines (#5833)\n2026-05-13 petrcermak@users.noreply.github.com Add support for a PARTITION BY clause to generateSqlWithInternalLayout() (#5842)\n2026-05-13 pmuetschard@users.noreply.github.com Add the total weighted missed frames to the CUJ metrics. (#5803)\n2026-05-13 lalitm@google.com tp: add new tool for computing lineage of sql modules (#5837)\n2026-05-13 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5838)\n2026-05-12 zezeozue@google.com ui: Stop auto-selecting heap-graph dumps on the timeline (#5836)\n2026-05-12 runpinglai@google.com ui: Restrict Wattson GPU track to supported devices (#5834)\n2026-05-12 sashwinbalaji@google.com perfetto: revert schema declarations from third_party Android protos (#5832)\n2026-05-12 stevegolton@google.com ui: Chart tweaks (#5828)\n2026-05-12 zezeozue@google.com ui: Rename HeapDumpExplorer CSS classes from ah- to pf-hde- (#5830)\n2026-05-12 stevegolton@google.com ui: Use compact font in RadioGroup (#5829)\n2026-05-12 99329845+ivan-chong@users.noreply.github.com ui: Improve UX of com.android.AndroidLockContention (#5392)\n2026-05-12 stevegolton@google.com ui: Memscope - Live dashboard page (#5785)\n2026-05-12 lalitm@google.com protovm: fix UAF in protovm::ParseSelect (#5795)\n2026-05-12 keanmariotti@google.com protovm: fix merge of repeated fields (#5804)\n2026-05-12 parthsane@gmail.com sdk: Add Android process binding events (#5773)\n2026-05-12 sashwinbalaji@google.com perfetto: prepare for OOT TrackEvent extensions (#5807)\n2026-05-12 rsavitski@google.com exclude smaps test on non-linux, and temporarily embedder targets (#5825)\n2026-05-12 zezeozue@google.com ui: Prefix HeapDumpExplorer setting ID with com.android (#5787)\n2026-05-12 shaseley@google.com ui: Update Chrome\u0027s built-in categories (#5814)\n2026-05-12 lalitm@google.com Revert \"tp: route PerfettoSqlParser through syntaqlite macro expansion (#5616)\" (#5823)\n2026-05-12 stevegolton@google.com ui: SegmentedButtons fixes \u0026 rename to RadioGroup (#5820)\n2026-05-12 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5816)\n2026-05-12 adyabr@google.com frametimeline: add a new field for animationTime on SurfaceFrame (#5815)\n2026-05-12 amanvr@google.com Add missing standard library headers to smaps.cc (#5819)\n2026-05-11 wusamuel@google.com stdlib: Wattson: Explicit cast of rail\u0027s macro output (#5812)\n2026-05-11 lalitm@google.com tp: remove unnecessary hacky workaround (#5810)\n2026-05-11 lalitm@google.com tp: handle cross-connection xConnect module calls (#5806)\n2026-05-11 lalitm@google.com traced_perf: add support for in-kernel frame pointer unwinding (#5706)\n2026-05-11 lalitm@google.com tp: drop ftrace based on raw timestamps not forged ones (#5809)\n2026-05-11 lalitm@google.com tp: route PerfettoSqlParser through syntaqlite macro expansion (#5616)\n2026-05-11 rsavitski@google.com profiling: add new parser for /proc/pid/smaps (#5767)\n2026-05-11 stevegolton@google.com ui: Highlight the selected slice dur in distrubution histogram (#5690)\n2026-05-11 stevegolton@google.com ui: Use Roboto typeface in Echarts-based chart widgets (#5778)\n2026-05-11 stevegolton@google.com ui: Add SVG based histogram chart component (#5802)\n2026-05-11 pohengshen@google.com Add IRQ mapping information to SystemInfo. (#5547)\n2026-05-11 pmuetschard@users.noreply.github.com Revert \"Don\u0027t filter frames by process in the jank metric. (#5351)\" (#5801)\n2026-05-11 lalitm@google.com tp: improve handling of includes to prepare for multi-connection (#5791)\n2026-05-11 stevegolton@google.com ui: Add custom SVG-based line chart component (#5783)\n2026-05-11 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5792)\n2026-05-09 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5794)\n2026-05-08 lalitm@google.com Revert \"trace_processor: Parse adreno_cmdbatch_retired/submitted events (#5519)\" (#5793)\n2026-05-08 lalitm@google.com ui: show trace start and duration in timeline header (#5711)\n2026-05-08 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5775)\n2026-05-08 lalitm@google.com tp: refactor *Engine -\u003e Connection and split out Database (#5766)\n2026-05-08 keanmariotti@google.com protovm: extend merge operation with del_if_src_empty (#5744)\n2026-05-08 ilkos@google.com Java heap: Treat soft references as strong references (#5790)\n2026-05-08 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5788)\n2026-05-08 rapiteanu.sora@gmail.com tp: Display all messages involved in hash collisions (#5554)\n2026-05-08 keanmariotti@google.com protos: extend windowmanager for AOT (protovm) (#5743)\n2026-05-08 zezeozue@google.com ui: Default to Heapdump Explorer for traces with heap-graph data (#5761)\n2026-05-08 sashwinbalaji@google.com tp: Update unittest to use EXPECT_DEATH_IF_SUPPORTED (#5781)\n2026-05-08 stevegolton@google.com ui: Add onSeriesClick handler to LineChart (#5782)\n2026-05-08 ilkos@google.com TP bitmap metadata support for heap graphs (#5779)\n2026-05-08 stevegolton@google.com ui: Add yAxisMinInterval to LineChart (#5780)\n2026-05-08 petrcermak@users.noreply.github.com Add name for Chrome\u0027s \"VSyncThread\" (#5777)\n2026-05-08 lalitm@google.com tp: add macro for unparenthesizing a list of expressions (#5776)\n2026-05-08 lalitm@google.com perfetto: seed ai/skills/ for RFC-0025 (#5770)\n2026-05-08 lalitm@google.com docs: add docs for multi-machine tracing (#5765)\n2026-05-08 sashwinbalaji@google.com tp+ui: make stats per machine and trace (#5745)\n2026-05-07 primiano@google.com perfetto: fix UAF race in LockFreeTaskRunner::PostTask (#5771)\n2026-05-07 zezeozue@google.com tp: don\u0027t abort hprof parse when a sub-record spans segment boundaries (#5764)\n2026-05-07 lalitm@google.com perfetto: add multi-machine information to --query (#5762)\n2026-05-07 primiano@google.com traced_probes: add wdog handler to finalize the trace gracefully (#5755)\n2026-05-07 stevegolton@google.com ui: Add CloneSession support to recording targets (#5748)\n2026-05-07 stevegolton@google.com ui: Move traced socket setting to a global (#5746)\n2026-05-07 keanmariotti@google.com sdk: allow passing ProtoVM program at registration (#5750)\n2026-05-07 victor.vianna10@gmail.com Update references to old windows toolchain (#5759)\n2026-05-07 zezeozue@google.com ui: Show tooltips on the HeapDumpExplorer columns (#5757)\n2026-05-07 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5758)\n2026-05-06 wusamuel@google.com stdlib: Wattson: Add support for SM8750 (#5719)\n2026-05-06 primiano@google.com watchdog: Report actual boot/mono/cpu time (#5749)\n2026-05-06 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump the npm_and_yarn group across 2 directories with 10 updates (#5666)\n2026-05-06 mayzner@google.com de: Improve date-explorer-architecture.md (#5752)\n2026-05-06 reveman@meta.com tp: scope gpu_counter custom-groups cache to per-sequence state (#5742)\n2026-05-06 pmuetschard@users.noreply.github.com Update the jank track pin plugin for the JPS metrics. (#5354)\n2026-05-06 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5718)\n2026-05-05 lalitm@google.com perfetto: fix android.bp build (#5734)\n2026-05-05 sashwinbalaji@google.com tbV2: fix silent packet duplication on same-call eviction of recommit chunk (#5695)\n2026-05-05 sashwinbalaji@google.com perfetto: add metatrace to power and kernel-wakelocks data sources (#5732)\n2026-05-05 zezeozue@google.com ui: Embed flamegraph viewer in Heap Dump Explorer (#5731)\n2026-05-05 zezeozue@google.com ui: Extract FlamegraphPanel widget from QueryFlamegraph (#5730)\n2026-05-05 mayzner@google.com tp: Remove mayzner@ from TODOs (#5723)\n2026-05-05 lalitm@google.com tp: replace sqlfluff formatter with syntaqlite (#5525)\n2026-05-05 lalitm@google.com tp: temporarily make wattson plugin not register in static constructor (#5728)\n2026-05-05 mayzner@google.com de: Fix the table undefined error (#5724)\n2026-05-05 mayzner@google.com docs: Add images/videos to DE docs (#5725)\n2026-05-05 reveman@meta.com rust-sdk: add extension_descriptor to TracePacket bindings (#5727)\n2026-05-05 lalitm@google.com perfetto: revert all the attempts to fix blaze build (#5726)\n2026-05-05 stevegolton@google.com ui: Plugins page bugfixes (#5700)\n2026-05-05 57577698+PriyankaSPX@users.noreply.github.com tp: adjust SF transform matrix construction for layers. (#5722)\n2026-05-05 lalitm@google.com perfetto: allow overriding write_version_header SCM revision via env (#5717)\n2026-05-05 sashwinbalaji@google.com perfetto: fix ScrapeEmulatedSharedMemoryBuffer never committing (#5721)\n2026-05-05 stevegolton@google.com ui: Enable thread state by cpu aggregation flag by default (#5720)\n2026-05-04 lalitm@google.com perfetto: add extra_asmflags for cross-compile (#5713)\n2026-05-04 reveman@meta.com rust-sdk: add useful fields to manually generated protos (#5715)\n2026-05-04 nicomazz@google.com Fix blocking call table after latest refactor to consider also the render thread ones (#5709)\n2026-05-02 zezeozue@google.com tp: collapse critical-path walk to one pass (#5707)\n2026-05-01 zezeozue@google.com tp: bounded-window walk for critical path; drop slice_name from join (#5704)\n2026-05-01 me@svmhdvn.name tracebox: allow building on freebsd (#5705)\n2026-05-01 me@svmhdvn.name profiling: guard end_to_end_tests inside enable_perfetto_integration_tests (#5703)\n2026-05-01 rzuklie@google.com Add standard library wrapper around package_lookup (#5393)\n2026-05-01 mayzner@google.com docs: Improve Data Explorer docs (#5699)\n2026-05-01 lalitm@google.com bazel: one more attempt to fix blaze build (#5702)\n2026-05-01 victor.vianna10@gmail.com Fix perfetto build in chromium (#5701)\n2026-05-01 me@svmhdvn.name tests: guard remaining integrationtests inside enable_perfetto_integration_tests (#5697)\n2026-05-01 reveman@meta.com docs: Add Rust SDK getting started guide (#5678)\n2026-05-01 lalitm@google.com tp: import Firefox profiler markers as slices (#5686)\n2026-05-01 reveman@meta.com rust-sdk: Add tracing-perfetto-sdk crate (#5671)\n2026-05-01 stevegolton@google.com ui: Fix theme colors for time-based line and sankey charts (#5693)\n2026-05-01 stevegolton@google.com ui: Disable chart tooltip transitions (#5692)\n2026-05-01 stevegolton@google.com ui: Charts: Add bottom aligned legends (#5691)\n2026-05-01 mayzner@google.com docs: Data Explorer docs stub (#5689)\n2026-05-01 mayzner@google.com tp: Add tables with stdlib documentation data (#5555)\n2026-05-01 mayzner@google.com Add mayzneranna to external contributors (#5688)\n2026-05-01 stevegolton@google.com ui: Fix macos build (#5687)\n2026-05-01 lalitm@google.com bazel: fix remaining layering_check violations (#5685)\n2026-05-01 primiano@google.com perfetto: tbv2: fix bytes_overwritten over-counting consumed chunks (#5676)\n2026-05-01 stevegolton@google.com ui: Overhaul SegmentedButtons widget (#5672)\n2026-05-01 stevegolton@google.com ui: Add optional actions buttons to grid cells (#5669)\n2026-04-30 lalitm@google.com bazel: attempt to fix include violations on blaze (#5684)\n2026-04-30 zezeozue@google.com ui: Add Debug Track button to DistributionPanel header (#5681)\n2026-04-30 zezeozue@google.com ui: Encapsulate plugin state in HeapDumpExplorerSession (#5679)\n2026-04-30 lalitm@google.com tp: emit cc_library for source_sets in gen_bazel (#5664)\n2026-04-30 lalitm@google.com perfetto: fix false data_loss on re-admit in TraceBufferV2 (#5644)\n2026-04-30 arden.bryce@gmail.com sdk: Add track_event_buf_exhausted_policy to TracingInitArgs (#5409)\n2026-04-30 lalitm@google.com ui: add matching-slice action to selection flamegraph (#5667)\n2026-04-30 lalitm@google.com ui: fix histogram SQL when bucketSize is fractional (#5674)\n2026-04-30 george.burgess.iv@gmail.com android_log: add missing include (#5670)\n2026-04-30 lalitm@google.com perfetto: temporarily mark some things as component to fix blaze (#5675)\n2026-04-30 99329845+ivan-chong@users.noreply.github.com tp: stdlib: Fix lock_name in android_monitor_contention (#5656)\n2026-04-30 primiano@google.com Increase traced_perf delay from 50ms to 250ms (#5668)\n2026-04-30 lalitm@google.com ui: add slice duration histogram when single selecting (#5659)\n2026-04-30 lalitm@google.com ui: search and highlight chip text in omnibox commands (#5649)\n2026-04-30 stevegolton@google.com ui: Add startDragGesture helper (#5663)\n2026-04-30 stevegolton@google.com ui: Add QueryPage SQL formatting via syntaqlite (#5662)\n2026-04-30 99329845+ivan-chong@users.noreply.github.com ui: Fix pinning manager to account for manually pinned tracks (#5652)\n2026-04-30 lalitm@google.com tp: fix blaze and android.bp builds (#5657)\n2026-04-30 stevegolton@google.com ui: Add dependencies and dependants to plugins page (#5661)\n2026-04-30 nicomazz@google.com Monitor Render Thread blocking calls during Android CUJs (#5645)\n2026-04-30 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5660)\n2026-04-30 reveman@meta.com gpu: Add GenericGpuFrequencyEvent and move GpuMemTotalEvent (#5654)\n2026-04-29 wusamuel@google.com ui: Wattson: Reduce work in onActivate() (#5651)\n2026-04-29 reveman@meta.com rust-sdk: add track_descriptor and sequence fields to TracePacket (#5653)\n2026-04-29 sashwinbalaji@google.com tools: make cpp_blob_emitter executable (#5650)\n2026-04-29 lalitm@google.com tp: add syntaqlite-driven macro expansion behind a flag (#5615)\n2026-04-29 lalitm@google.com tp: extract IncrementalState to fix CustomState UAF (#5593)\n2026-04-29 lalitm@google.com ui: signifcantly improve performance for incomplete slice fetch (#5637)\n2026-04-29 lalitm@google.com ui: make legacy macro loading flow direct you to extension servers (#5636)\n2026-04-29 lalitm@google.com tp: add wattson plugin for compressed curve data (#5611)\n2026-04-29 lalitm@google.com ui: fix modules stepping one each other in extension servers (#5648)\n2026-04-29 reveman@meta.com rust-sdk: fix codegen for cross-crate proto extensions (#5646)\n2026-04-29 mayzner@google.com de: Improve testing utils (#5647)\n2026-04-29 sashwinbalaji@google.com docs: Document subcommand-based trace_processor CLI (#5632)\n2026-04-29 stevegolton@google.com ui: Refactor sidebar (#5606)\n2026-04-29 zezeozue@google.com ui: Switch active heap dump on \u0027Open in Heapdump Explorer\u0027 (#5641)\n2026-04-29 sashwinbalaji@google.com perfetto: bump CHANGELOG for v55.0 release (#5623)\n2026-04-29 sashwinbalaji@google.com docs: Update links (#5640)\n2026-04-29 reveman@meta.com ui: Fix SQL syntax error for dotted launch arg names (#5638)\n2026-04-29 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5639)\n2026-04-29 shinyuw@google.com Add disp_frame_start/done_missing ftrace (#5617)\n2026-04-28 lalitm@google.com tp: fix compile in G3 (#5635)\n2026-04-28 lalitm@google.com tp: declare nested classes first, before any usage (#5628)\n2026-04-28 reveman@meta.com rust-sdk: generate new proto bindings and bump crate versions (#5633)\n2026-04-28 reveman@meta.com build: re-run gen_android_bp and gen_bazel (#5634)\n2026-04-28 reveman@meta.com gpu: Add structured compute kernel encoding and launch parameters (#5596)\n2026-04-28 sashwinbalaji@google.com heap_profile: docs for android/host split + glibc preload fix (#5630)\n2026-04-28 zezeozue@google.com ui: Disambiguate multi-dump traces in the Heap Dump Explorer (#5631)\n2026-04-28 lalitm@google.com tp: split TrackEventSequenceState into descriptor + delta state (#5590)\n2026-04-28 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5629)\n2026-04-28 petrcermak@users.noreply.github.com Avoid dangling pointers from SizeProfileComputer::Field to ProtoDescr… (#5627)\n2026-04-28 lalitm@google.com tp: fix compile in C++20 (#5626)\n2026-04-28 lalitm@google.com tp: amalgamated SQL via cpp_blob_header primitive (#5613)\n2026-04-28 zezeozue@google.com ui: Add shortest-path option to heap dump explorer bitmap tab (#5620)\n2026-04-28 stevegolton@google.com bigtrace-ui: Fix usage of commands (#5624)\n2026-04-28 lalitm@google.com tp: prep PerfettoSqlParser for a second backend (#5614)\n2026-04-28 stevegolton@google.com ui: Update material icons (#5622)\n2026-04-28 lalitm@google.com ui: dedupe regex track matches under headless containers (#5621)\n2026-04-28 stevegolton@google.com ui: Animate Accordion widget expand/collapse (#5572)\n2026-04-28 stevegolton@google.com ui: Improve TableList performance (#5619)\n2026-04-28 stevegolton@google.com ui: Click Grid column title to sort (#5608)\n2026-04-28 lalitm@google.com perfetto: add perfetto_cpp_blob_header codegen primitive (#5610)\n2026-04-28 lalitm@google.com tp: stop mutating PacketSequenceStateGeneration on packet loss (#5588)\n2026-04-28 gignat@google.com Bigtrace UI V0  (#5243)\n2026-04-28 lalitm@google.com tp: drive DebugAnnotation parsing on the proto-args work stack (#5587)\n2026-04-28 lalitm@google.com ui: surface blocked/failed startup commands in a dialog (#5612)\n2026-04-27 zezeozue@google.com ui: Add shortest path from GC root to heap dump explorer (#5609)\n2026-04-27 stevegolton@google.com ui: Tidy up the public CommandManager interface (#5607)\n2026-04-27 stevegolton@google.com ui: Move command fuzzy out of CommandManager (#5605)\n2026-04-27 zezeozue@google.com docs: Heap Dump Explorer user guide (#5603)\n2026-04-27 mayzner@google.com de: Centralize legacy type migration in the deserialization layer (#5604)\n2026-04-27 reveman@meta.com ui: GpuCompute plugin: performance improvements and bug fixes (#5595)\n2026-04-27 lalitm@google.com tp: Support shared resources in Gecko trace importer (#5050)\n2026-04-27 victor.vianna10@gmail.com Fix perfetto build with C++23 (for Chromium) (#5601)\n2026-04-27 stevegolton@google.com ui: Rename OWNERS file to OWNERS.github (#5602)\n2026-04-27 lalitm@google.com tracing: fix MSVC LNK2019 in DataSourceHelper::type() (#5591) (#5599)\n2026-04-26 lalitm@google.com tp: refactor ProtoToArgsParser::ParseMessage to a work-stack driver (#5589)\n2026-04-26 lalitm@google.com perfetto: refocus trace-processor.md on shell + C++ embedding (#5594)\n2026-04-26 lalitm@google.com perfetto: reserve TracePacket.service_event in SMB validator (#5585)\n2026-04-25 lalitm@google.com tp: fix stack OOB write in ParseChromeEvents Chrome metadata key (#5586)\n2026-04-25 lalitm@google.com tp: fix OOB read in DebugAnnotationParser DICT parsing (#5584)\n2026-04-25 lalitm@google.com perfetto: document trace_processor \u0026 traceconv on Windows (#5583)\n2026-04-25 ccraik@google.com Clarify getting-started/memory-profiling.md naming (#5582)\n2026-04-24 reveman@meta.com ui: Add GpuCompute plugin for GPU kernel performance analysis (#5436)\n2026-04-24 ccraik@google.com Clarify memory profiling features (#5580)\n2026-04-24 lalitm@google.com traceconv: rewrite documentation to be up to date (#5579)\n2026-04-24 lalitm@google.com perfetto: Remove trace_to_hprof converter (#5577)\n2026-04-24 lalitm@google.com ui: Support release-branch deploys that skip the index update (#5573)\n2026-04-24 lalitm@google.com ui: Drive channel deploys from canary/stable branches, race-free (#5492)\n2026-04-24 zezeozue@google.com ui: Fixed class hierarchy in object view in Heap Dump Explorer (#5538)\n2026-04-24 stevegolton@google.com ui: Add combobox widget (#5536)\n2026-04-24 stevegolton@google.com ui: Tabs widget - Add optional rightContent slot (#5558)\n2026-04-24 mayzner@google.com de: Enable connecting inputs to query nodes (#5571)\n2026-04-24 mayzner@google.com de: Further simplify serialization (#5532)\n2026-04-24 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5570)\n2026-04-24 wusamuel@google.com stdlib: Wattson: Cleanup LUTs (#5569)\n2026-04-23 reveman@meta.com rust-sdk: generate new gpu proto bindings (#5567)\n2026-04-23 wusamuel@google.com Add support to poll /proc/slabinfo (#5528)\n2026-04-23 wusamuel@google.com traced: Handle sys_stats pread() returning fewer bytes (#5527)\n2026-04-23 rossning92@gmail.com trace_processor: Parse adreno_cmdbatch_retired/submitted events (#5519)\n2026-04-23 edgararriaga@google.com Make trace redactor run at low priority (#5551)\n2026-04-23 reveman@meta.com tp: Add gpu_api arg for tagging track events with GPU API type (#5539)\n2026-04-23 samccone@gmail.com ui: Add \u0027Name tab\u0027 command to command palette (#5566)\n2026-04-23 lalitm@google.com tp: fix compile in chromium (#5565)\n2026-04-23 nicomazz@google.com Remove depth filter from critical blocking calls (#5559)\n2026-04-23 278437629+perfetto-automation[bot]@users.noreply.github.com Sync generated proto files (#5560)\n2026-04-23 lalitm@google.com tp: fix Chromium Windows build of traceconv bundle test + shell unittests (#5557)\n2026-04-23 lalitm@google.com docs: reorganize TOC and refresh extension docs (#5552)\n2026-04-23 lalitm@google.com perfetto: use perfetto-automation GitHub App for workflow auth (#5553)\n2026-04-23 gignat@google.com ui: AndroidBinderViz fix empty string quoting in BreakdownTracks SQL (#5556)\n2026-04-23 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5543)\n2026-04-23 lalitm@google.com tp: improve tracking of rss_stat events during process teardown (#5524)\n2026-04-22 lalitm@google.com ui: add CoarseCpu plugin for per-CPU /proc/stat counters (#5544)\n2026-04-22 lalitm@google.com gn: add -Wpedantic warning suppression on new clang version (#5537)\n2026-04-22 lalitm@google.com docs: add filter chips and spruce up visual language (#5093)\n2026-04-22 lalitm@google.com tp: emit stdlib SQL bundle as uint8_t arrays (#5542)\n2026-04-22 mako@google.com Allow trace_processor extract screenshot track events. (#5541)\n2026-04-22 lalitm@google.com tp: add documentation for symbolization/deobfuscation and improve bundling (#5535)\n2026-04-22 mayzner@google.com ui: Auto-compute chart grid spacing from measured label width (#5529)\n2026-04-22 reveman@meta.com tp: Add gpu_context table for InternedGraphicsContext (#5523)\n2026-04-22 lalitm@google.com tp: fix crash when creating index on non-ASCII strings (#5530)\n2026-04-21 lalitm@google.com tp: Bump syntaqlite to v0.5.1 (#5522)\n2026-04-21 stevegolton@google.com ui: Add \u0027Go to event on timeline\u0027 menu item in ftrace explorer (#5520)\n2026-04-21 stevegolton@google.com ui: Accordion widget - Add \u0027multi\u0027 option (#5510)\n2026-04-21 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5516)\n2026-04-21 primiano@google.com traced_probes: Refactor + Remove timeout from aflags invocation (#5514)\n2026-04-21 stevegolton@google.com ui: Add Mithril context (#5521)\n2026-04-21 stevegolton@google.com ui: FtraceExplorer: Add cpu filter and export button (#5506)\n2026-04-20 reveman@meta.com rust-sdk: generate new gpu proto bindings (#5517)\n2026-04-20 runpinglai@google.com ui: Fix Wattson package aggregator and marker window queries (#5513)\n2026-04-20 reveman@meta.com gpu: Add FUNCTION_NAME to ActivityNameFilter NameBase enum (#5508)\n2026-04-20 stevegolton@google.com ui: QuerySlot: Don\u0027t require queue to be passed to QuerySlot constructor. (#5511)\n2026-04-20 sashwinbalaji@google.com traced_probes: defer aflags Flush() callback on in-flight subprocess (#5509)\n2026-04-20 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5478)\n2026-04-20 stevegolton@google.com ui: Highlight same-name slices globally (#5501)\n2026-04-20 stevegolton@google.com ui: Record page - allow pasting custom configs (#5505)\n2026-04-20 stevegolton@google.com ui: Don\u0027t use engineering notation in counter track tooltips (#5496)\n2026-04-20 mayzner@google.com de: Simplify serialization (#5346)\n2026-04-20 lalitm@google.com tp: migrate PerfettoSQL parser to syntaqlite (#5445)\n2026-04-20 mayzner@google.com de: Dashboard tweaks and fixes (#5502)\n2026-04-20 zezeozue@google.com ui: Gate heapdump explorer button on plugin enabled (#5499)\n2026-04-20 stevegolton@google.com ui: Remove global same slice id highlighting (#5494)\n2026-04-17 primiano@google.com Update link to AGENTS-ui.md in documentation (#5493)\n2026-04-17 lalitm@google.com perfetto: sync-protos gh install — use curl instead of wget (#5491)\n2026-04-17 lalitm@google.com perfetto: fix sync-protos gh install on self-hosted runner (#5490)\n2026-04-17 lalitm@google.com actions: use deploy-key for pushing to canary/stable (#5489)\n2026-04-17 lalitm@google.com perfetto: dedupe release workflows, clarify names (#5488)\n2026-04-17 sashwinbalaji@google.com doc: Document aflags data source (#5485)\n2026-04-17 stevegolton@google.com Bump pandas version (#5486)\n2026-04-17 primiano@google.com ui: rollup 2.8 -\u003e 4.60, add --no-source-maps --no-treeshake (#5482)\n2026-04-17 stevegolton@google.com ui: Move legacy trace actions to a dedicated plugin (disabled by default) (#5479)\n2026-04-17 sashwinbalaji@google.com tp: plumb aflags flag type (#5484)\n2026-04-16 bienvenu@davidbienvenu.org Add Flt file i/o opcodes (#5483)\n2026-04-16 vincent.coubard@arm.com ui: Add option to connect to custom consumer socket (#2036)\n2026-04-16 wusamuel@google.com stdlib: Wattson: Handle multiple forms of perf events (#5480)\n2026-04-16 lalitm@google.com perfetto: add string_view overloads for base::TrimWhitespace (#5477)\n2026-04-15 vincent.coubard@arm.com Add CPU filter into traced_perf (#2034)\n2026-04-15 runpinglai@google.com tp/ui: Wattson GPU attribution in package level (#5402)\n2026-04-15 sashwinbalaji@google.com tbV2: fix write_wrap_count under-counting and discard-mode overwrite (#5474)\n2026-04-15 rsavitski@google.com tperf: allow raw perf events to specify dynamic pmu by name (#5475)\n2026-04-15 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5470)\n2026-04-15 lalitm@google.com perfetto: fix YAML syntax in release workflows (#5473)\n2026-04-15 reveman@meta.com rust-sdk: generate new gpu proto bindings (#5471)\n2026-04-15 reveman@meta.com gpu: Add InstrumentedSamplingConfig to GpuCounterConfig (#5358)\n2026-04-15 primiano@google.com ui: dev server env-var overrides via env var (#5469)\n2026-04-15 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5424)\n2026-04-15 primiano@google.com ui: improve dev-server caching and compresison (#5468)\n2026-04-15 bogdan.floris@gmail.com protovm: adds the surfaceflinger patch to the trace packet (#5451)\n2026-04-15 stevegolton@google.com ui: Fix several issues with counter tracks (#5449)\n2026-04-15 spvm@chromium.org Add stack samples to ETW events (#5466)\n2026-04-14 reveman@meta.com rust-sdk: Add proto extension support to Rust SDK codegen (#5444)\n2026-04-14 sashwinbalaji@google.com tp: Use import public for TrackEvent in gpu_track_event.proto (#5465)\n2026-04-14 shinyuw@google.com Update gram_collision format (#5446)\n2026-04-14 wusamuel@google.com ui: Wattson: Optimize selection aggregators and track attribution (#5427)\n2026-04-14 sashwinbalaji@google.com Reapply \"tp: Remove trace_processor/util/regex.h, use base::Regex directly (#5294) (#5417)\" (#5460)\n2026-04-14 reveman@meta.com tp: Add GpuCorrelation TrackEvent extension for host-GPU linking (#5425)\n2026-04-14 reveman@meta.com gpu: Support custom GPU counter groups (#5400)\n2026-04-14 stevegolton@google.com Update screenshot dockerfile base image (#5456)\n2026-04-14 lalitm@google.com tp: fix MSan false positives from SQLite on glibc 2.35+ (#5459)\n2026-04-14 lalitm@google.com perfetto: add promote-stable GitHub Actions workflow (#5464)\n2026-04-14 lalitm@google.com perfetto: add cut-canary GitHub Actions workflow (#5463)\n2026-04-14 lalitm@google.com perfetto: add workflow to attach LUCI artifacts to draft release (#5462)\n2026-04-14 lalitm@google.com perfetto: add draft-release GitHub Actions workflow (#5461)\n2026-04-14 lalitm@google.com perfetto: auto-derive Python package version from CHANGELOG (#5458)\n2026-04-14 lalitm@google.com ci: find versioned clang binaries in linux_find_llvm.py (#5455)\n2026-04-14 lalitm@google.com ci: install gh CLI in sync-protos and stop gating gen_merged_protos (#5454)\n2026-04-14 lalitm@google.com ci: fix PyJWT failure caused by rebuilding frontend (#5453)\n2026-04-14 pablogamito@google.com Fix ProtoLog string formatting (#5450)\n2026-04-14 lalitm@google.com ci: upgrade sandbox image to ubuntu 22.04 (#5452)\n2026-04-14 parthsane@gmail.com Fix PerfettoTraceTest.java (#5447)\n2026-04-14 post@clemens-backes.de base: Fix double truncation in DynamicStringWriter and FixedStringWriter (#5438)\n2026-04-13 lalitm@google.com tp: version gate the config_write_into_file_no_flush stat (#5442)\n2026-04-13 rahulrav@google.com Make the `tid` field in `thread_descriptor.proto` an `int64`. (#5406)\n2026-04-13 lalitm@google.com perfetto: add --only-binary\u003d:all: for public PyPI installs (#5443)\n2026-04-13 etiennep@chromium.org Parse new ChromeMetadataPacket field (#5441)\n2026-04-13 ikram20011127@gmail.com Do not partition by layer_id when extending frames (#5440)\n2026-04-13 stevegolton@google.com ui: Roll canary (#5439)\n2026-04-13 44271635+olehkuznetsov@users.noreply.github.com Add PPM and PAM screenshot file formats (#5348)\n2026-04-10 parthsane@gmail.com sdk: Support for @CompileTimeConstant (#5279)\n2026-04-10 parthsane@gmail.com sdk: Support static track names in Java SDK (#5219)\n2026-04-10 etiennep@chromium.org Add minimal ChromeMetadataPacket fields (#5434)\n2026-04-10 sashwinbalaji@google.com base: Re-enable PCRE2 on Android (#5431)\n2026-04-10 primiano@google.com base: make regex a perfetto_component (#5432)\n2026-04-10 natanieljr@yahoo.com.br Create bazel rule for winscope proto and make trace_processor public (#5428)\n2026-04-10 adyabr@google.com frametimeline: remove experimental from some fields (#5430)\n2026-04-09 primiano@google.com base: don\u0027t make base depend on base:regex (#5429)\n2026-04-09 wusamuel@google.com tp: Wattson: Fix usage of ii.dur (#5426)\n2026-04-09 bogdan.floris@gmail.com protovm: add skip_message_fields functionality to the merge opeartion (#5414)\n2026-04-09 sashwinbalaji@google.com Revert \"tp: Remove trace_processor/util/regex.h, use base::Regex directly (#5294) (#5417)\n2026-04-09 sashwinbalaji@google.com Aflags: Enable test only on android (#5405)\n2026-04-08 reveman@meta.com tp: Add event_wait_ids to GpuRenderStageEvent (#5329)\n2026-04-08 lalitm@google.com gn: add suppression for null RE2 failure on Windows (#5423)\n2026-04-08 cferris1000@users.noreply.github.com Add support for free_sized/free_aligned_sized. (#5418)\n2026-04-08 bogdan.floris@gmail.com tp: add LayersPatchProto for surfaceflinger protovm implementation (#5408)\n2026-04-08 thomas.mercier.jr@gmail.com Add memcg reclaim trace events (#5419)\n2026-04-08 stevegolton@google.com ui: NodeGraph background LOD changes dynamically with zoom level (#5394)\n2026-04-07 surbhikadam@google.com Additional logging for corner radii in SF and ViewRootImpl (#5359)\n2026-04-07 reveman@meta.com ui: Improve sorting of GPU tracks (#5416)\n2026-04-07 reveman@meta.com ui: Fix SI prefix display in counter track Y-axis labels (#5410)\n2026-04-07 stevegolton@google.com build.js: Stringify object args passed to tasks to avoid [Object object] in logs (#5395)\n2026-04-07 stevegolton@google.com ui: Move timeline related css files into the timeline plugin (#5413)\n2026-04-07 stevegolton@google.com ui: Prevent area selection handles from being dragged beyond the trace bounds (#5412)\n2026-04-03 reveman@meta.com ui: Sort GPU tracks by gpu_id and machine_id (#5403)\n2026-04-03 reveman@meta.com tp: Expose RenderStageCategory in gpu_slice table (#5401)\n2026-04-03 sashwinbalaji@google.com pcre: Disable on android (#5397)\n2026-04-03 zezeozue@google.com ui: Add Android logs track breakdown (#5370)\n2026-04-02 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5391)\n2026-04-02 lalitm@google.com ui: push sql modules and proto descriptors through extension servers (#5344)\n2026-04-02 lalitm@google.com ui: allow previously allowed domain through SW firewall (#5342)\n2026-04-02 stevegolton@google.com ui: Deduplicate counter track settings between single and bulk edit (#5390)\n2026-04-02 sashwinbalaji@google.com tbV2:  fix scrape + wraparound causing packet loss in TraceBufferV2 (#5372)\n2026-04-02 stevegolton@google.com ui: Consolidate fonts by using Roboto Flex for condensed text (#4908)\n2026-04-02 99329845+ivan-chong@users.noreply.github.com ui: Remove com.android.LockContention plugin (#5389)\n2026-04-02 primiano@google.com docs: Add link to community maintained CN docs (#5386)\n2026-04-02 wusamuel@google.com tp: Fix Wattson power calculation for multi-period windows (#5384)\n2026-04-01 sashwinbalaji@google.com re2: Use source_set for WASM (#5382)\n2026-04-01 sashwinbalaji@google.com re2: Fix mac wasm build (#5381)\n2026-04-01 reveman@meta.com perfetto: Overhaul GPU data source documentation (#5375)\n2026-04-01 sashwinbalaji@google.com Remove flags use_rt_futex and  use_rt_mutex (#5377)\n2026-04-01 lalitm@google.com docs: add cookbook for periodic trace snapshots (#5360)\n2026-04-01 nicomazz@google.com Handle latency CUJ state (as cancelled or timeout) (#5376)\n2026-04-01 sashwinbalaji@google.com tp: Fix missing ChunkedTraceReader defintion (#5374)\n2026-04-01 reveman@meta.com rust-sdk: add missing gpu_counter_descriptors field to InternedData (#5371)\n2026-04-01 lalitm@google.com tp: add tree_propagate_down operator for tree transformations (#5257)\n2026-04-01 lalitm@google.com tp: improve plugin interface (#5368)\n2026-04-01 reveman@meta.com ui: Make GPU plugin track group names consistent (#5369)\n2026-04-01 99329845+ivan-chong@users.noreply.github.com ui: Add android monitor lock contention plugin (#4769)\n2026-04-01 adyabr@google.com frametimeline: add fence latching state (#5188)\n2026-04-01 abpuri@google.com sdk: Add freeze policy fields to the process state change event proto (#5275)\n2026-03-31 sashwinbalaji@google.com Regex: Fix pcre2 gen_android_bp and re2 groups type (#5367)\n2026-03-31 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5364)\n2026-03-31 sashwinbalaji@google.com Explicitly add includes  (#5365)\n2026-03-31 sashwinbalaji@google.com tp: Remove trace_processor/util/regex.h, use base::Regex directly (#5294)\n2026-03-31 sashwinbalaji@google.com base: Add RE2 and PCRE2 to base::Regex (#5261)\n2026-03-31 reveman@meta.com ui: Add defaultPlugins to Embedder interface (#5350)\n2026-03-31 sashwinbalaji@google.com Add base::Regex (#5291)\n2026-03-31 lalitm@google.com tp: introduce Plugin system for trace processor (#5289)\n2026-03-31 sashwinbalaji@google.com sdk: minor cleanup (#5356)\n2026-03-31 mayzner@google.com de: Edit chart in the sidebar (#5352)\n2026-03-31 lalitm@google.com docs: Rewrite PerfettoSQL getting-started guide (#5302)\n2026-03-31 pmuetschard@users.noreply.github.com Don\u0027t filter frames by process in the jank metric. (#5351)\n2026-03-30 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump the pip group across 4 directories with 2 updates (#5295)\n2026-03-30 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump the pip group across 1 directory with 3 updates (#5343)\n2026-03-30 lalitm@google.com tp: introduce TreeColumns and refactor TreeTransformer to use it (#5262)\n2026-03-30 jahdiel@google.com Split commit data requests in SMB emulation mode (#5269)\n2026-03-30 reveman@meta.com perfetto: Add convert subcommand to trace_processor_shell (#5337)\n2026-03-30 sashwinbalaji@google.com tools: install-build-deps add option to use public pypi (#5328)\n2026-03-30 sashwinbalaji@google.com perfetto: Add use_pcre2 aconfig flag for Android PCRE2 regex backend (#5349)\n2026-03-30 mayzner@google.com de: Add grouping (#5234)\n2026-03-30 mayzner@google.com de: stdlib: Add per tables checks, check core and promote some tables (#5347)\n2026-03-30 ikram20011127@gmail.com Create unique IDs for jank and latency CUJs (#5345)\n2026-03-30 lalitm@google.com tp: decouple PerfTracker from ETM (#5287)\n2026-03-30 lalitm@google.com ui: add gae internal server code (#5339)\n2026-03-30 zezeozue@google.com ui: Replace Instances view with closable instance tabs (#5341)\n2026-03-30 stevegolton@google.com ui: Fix counter webgl artifacts (#5340)\n2026-03-30 lalitm@google.com ui: migrate analytics and isInternalUser to embedder server (#4854)\n2026-03-30 lalitm@google.com tp: fix descendant_slice missing boundary instant children (#5239)\n2026-03-30 stevegolton@google.com uiL Fix broken bulk settings menu (#5338)\n2026-03-30 sharanyasaha@google.com tp: Add support for ART Method v2 streaming trace format (#5236)\n2026-03-30 lalitm@google.com ui: move caching to the extension server code (#5336)\n2026-03-30 lalitm@google.com perfetto: add option to disable ext descriptor and use in report test (#5335)\n2026-03-30 reveman@meta.com ui: Add GPU-prefixed names to GPU memory tracks (#5334)\n2026-03-30 lalitm@google.com ui: make mode and range part of the query slot invalidation (#5325)\n2026-03-30 zezeozue@google.com ui: Replace flamegraph view hijack with closable tabs (#5327)\n2026-03-30 mayzner@google.com de: Dashboard tweaks (#5238)\n2026-03-29 reveman@meta.com tp: Add multi-GPU support to GPU memory tracks (#5333)\n2026-03-29 reveman@meta.com rust-sdk: generate new gpu proto bindings (#5332)\n2026-03-29 reveman@meta.com tp: Add SetGpuInfo and use GPU name in UI track labels (#5330)\n2026-03-28 reveman@meta.com ui: Add multi-machine support to GPU track plugins (#5272)\n2026-03-28 zezeozue@google.com ui: preserve DataGrid filters across tab switches in HeapDump Explorer (#5326)\n2026-03-28 44271635+olehkuznetsov@users.noreply.github.com tp: ParseGpuRenderStageEvent use Variadic::UnsignedInteger (#5117)\n2026-03-28 60190631+dfamonteiro@users.noreply.github.com Remove references to `descendant_slice_by_stack` and `ascestor_slice_by_stack` from PerfettoSQL\u0027s \"Getting Started\" guide (#5007)\n2026-03-27 sashwinbalaji@google.com tbV2: On rescraping don\u0027t remove kChunkIncomplete (#5323)\n2026-03-27 sanath099@gmail.com tp: Support interned job names in Android track events (#5072)\n2026-03-27 lalitm@google.com ui: improve counters detail panel to reflect the counter mode (#5321)\n2026-03-27 lalitm@google.com ui: handle rate-delta counters for Android GPU counter events (#5316)\n2026-03-27 stevegolton@google.com ui: Allow bouncy overscroll while keeping overscroll gestures disabled (#5320)\n2026-03-27 stevegolton@google.com ui: Add empty state widget on query page before query is run (#5319)\n2026-03-27 lalitm@google.com tp: properly format gpu counter track units (#5317)\n2026-03-27 simonmacm@google.com Allow extending ValueColumnSpec (#5318)\n2026-03-27 primiano@google.com test: add extension_descriptor to ignore test packets (#5315)\n2026-03-27 zezeozue@google.com ui: Add Show Paths toggle to bitmap gallery view (#5314)\n2026-03-27 stevegolton@google.com ui: Allow slice tracks to be collapsed (#5306)\n2026-03-27 zezeozue@google.com ui: show empty state for object view sections instead of hiding (#5312)\n2026-03-27 zezeozue@google.com ui: Add duplicate arrays detection and Arrays tab to HeapDump Explorer (#5310)\n2026-03-27 lalitm@google.com ui: expand power rail subsystem groups by default (#5292)\n2026-03-27 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5313)\n2026-03-27 shinyuw@google.com Update visualization of vblank_irq_en (#5309)\n2026-03-27 stevegolton@google.com ui: Move the timeline page into a (core) plugin (#5311)\n2026-03-26 peikantsai@gmail.com base: support QNX without QAVF by falling back to inline vsock stubs (#5273)\n2026-03-26 lalitm@google.com ui: temporarily disable extension server caching (#5305)\n2026-03-26 lalitm@google.com ui: separate expand/collapse track buttons (#5301)\n2026-03-26 lalitm@google.com ui: only set extension header when service worker is activated (#5303)\n2026-03-26 zezeozue@google.com ui: Support navigating from Java Flamegraph to Heapdump Explorer (#5298)\n2026-03-26 reveman@meta.com tp: Add gpu table and GpuTracker for multi-machine support (#5271)\n2026-03-26 sashwinbalaji@google.com perfetto: trigger trace capture on traced_probes disconnect (#5299)\n2026-03-26 stevegolton@google.com build.js: Add --typecheck option which runs tsc --noEmit (#5297)\n2026-03-26 145681499+Vikx001@users.noreply.github.com python: add polars dataframe support to TraceProcessor Python API (#5274)\n2026-03-26 zezeozue@google.com infra: Add CI workflow for bigtrace UI builds (#5296)\n2026-03-25 reveman@meta.com Add multi-GPU track support (#5220)\n2026-03-25 reveman@meta.com ui: Move GPU tracks to dedicated dev.perfetto.Gpu plugin (#5270)\n2026-03-25 sashwinbalaji@google.com Remove pid_str from SystraceLine structure (#5285)\n2026-03-25 reveman@meta.com tp: Intern GPU counter descriptors for sequence-scoped counters (#5225)\n2026-03-25 zezeozue@google.com ui: Add Heapdump Explorer plugin (#5276)\n2026-03-25 wusamuel@google.com ui: Wattson: Robust way of getting CPUs on device (#5267)\n2026-03-25 wusamuel@google.com metrics: Wattson: Cleanup usage of android_jank_cuj (#5281)\n2026-03-25 wusamuel@google.com ui: Wattson: Simplify availability check (#5266)\n2026-03-25 lalitm@google.com ui: enable extension server plugin by default (#5265)\n2026-03-25 lalitm@google.com ui: add support for caching extension server requests in SW (#5264)\n2026-03-25 stevegolton@google.com ui: Actually fix build.js initial watch mode tsc build (#5278)\n2026-03-25 stevegolton@google.com ui: build.js don\u0027t break on initial tsc errors when in watch mode (#5277)\n2026-03-25 etiennep@chromium.org [Recorder] Show category description and tags in chrome tab (#4876)\n2026-03-25 shinyuw@google.com Add disp_frame_start/done_timeout ftrace (#4673)\n2026-03-25 lalitm@google.com tp: Introduce NullBitvector struct to unify bv + popcount (#5255)\n2026-03-24 zezeozue@google.com tp: Support HPROF primitive fields and array contents (#5247)\n2026-03-24 lalitm@google.com tp: fix --metric-extension silently dropped with --httpd/--stdiod (#5259)\n2026-03-24 sashwinbalaji@google.com tools: fix merge-base determination in run_presubmit for Android (#5256)\n2026-03-24 lalitm@google.com tp: migrate experimental_slice_layout to use In filter on track_id (#5155)\n2026-03-24 lalitm@google.com tp: Move non-perf sensitive bytecode ops from header to cc file (#5251)\n2026-03-24 lalitm@google.com tp: add IndexedFilterIn bytecode for In on indexed columns (#5158)\n2026-03-24 lalitm@google.com tp: fix shell regressions from classic-to-subcommand migration (#5246)\n2026-03-24 lalitm@google.com perfetto: Speed up tools with parallelism and caching (#4961)\n2026-03-24 sashwinbalaji@google.com order aflags in UI (#5244)\n2026-03-24 sashwinbalaji@google.com aflags proto: Add explanation comment for pkg and container (#5245)\n2026-03-24 peikantsai@gmail.com relay: fix inverted clock_gettime check in QNX GetMachineIdHint (#5242)\n2026-03-24 lalitm@google.com tp: add tests verifying equality \u003c-\u003e in compatibility (#5241)\n2026-03-23 lalitm@google.com Revert \"chore: Migrate gsutil usage to gcloud storage (#4731)\" (#5240)\n2026-03-23 sashwinbalaji@google.com tp/ui: Add support for aflags (#5210)\n2026-03-23 sashwinbalaji@google.com traced_probes: Add android.aflags data source (#5209)\n2026-03-23 ilkos@google.com Introduce Bitmap-specific fields to the heap dump proto (#5235)\n2026-03-23 mayzner@google.com metrics: Make hsc_based_startup_times a PERFETTO TABLE (#5233)\n2026-03-23 lalitm@google.com tp: suppress spurious clock sync errors for deferred packets (#5171)\n2026-03-23 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5217)\n2026-03-23 pmuetschard@users.noreply.github.com Add the weighted jank values to the timeline metrics. (#5232)\n2026-03-23 mayzner@google.com de: Download from metric (#5212)\n2026-03-23 mayzner@google.com de: Add a dashboard 24 squares wide grid (#5231)\n2026-03-23 mayzner@google.com ui: add --title flag to dev server for custom page titles (#5224)\n2026-03-23 gvoleti@google.com chore: Migrate gsutil usage to gcloud storage (#4731)\n2026-03-23 stevegolton@google.com ui: build.js - Choose a new port if 10000 is in use (#5230)\n2026-03-23 stevegolton@google.com ui: build.js - clean up child processes on error (#5228)\n2026-03-21 145681499+Vikx001@users.noreply.github.com ui: fix pivot table count inflation when adding average(dur) (#5213)\n2026-03-21 reveman@meta.com tools: update hash for rustup build dep (#5221)\n2026-03-21 primiano@google.com Add android vendor TrackEvent extensions ranges (#5191)\n2026-03-20 dev.davicheanin@gmail.com doc: updated the perfetto_cmd command line page (#5216)\n2026-03-20 mayzner@google.com ui: Add percentile and count distinct aggregations (#5192)\n2026-03-20 sashwinbalaji@google.com ui: Use display names as keys in DataGrid JSON export (#5215)\n2026-03-20 stevegolton@google.com ui: Tweak logs panel (#5211)\n2026-03-20 lalitm@google.com tp: classic-to-subcommand translation layer (#5149)\n2026-03-20 mayzner@google.com de: Remove unused widgets and merge others (#5208)\n2026-03-20 lalitm@google.com tp: add structured query mode to query subcommand (#5198)\n2026-03-20 stevegolton@google.com ui: Tweak TextInput and Select styles to a simple box (#5202)\n2026-03-20 mayzner@google.com de: More modern charts picker (#5195)\n2026-03-20 reveman@meta.com rust-sdk: generate new gpu proto bindings (#5207)\n2026-03-20 reveman@meta.com tp: use custom name instead of GPU render stage name if available (#5204)\n2026-03-20 reveman@meta.com protos: add CUDA and HIP to GPU graphics context APIs (#5206)\n2026-03-20 reveman@meta.com ui: Improve GPU track naming (#5203)\n2026-03-19 stevegolton@google.com ui: Make switch widget scale better and make it relative to the font size (#5200)\n2026-03-19 stevegolton@google.com ui: Move subtitle and chips to TrackNode (#5201)\n2026-03-19 lalitm@google.com perfetto: add presubmit check for shell include violations (#5197)\n2026-03-19 lalitm@google.com tools: add host side tool for string filtering (#5185)\n2026-03-19 lalitm@google.com tools: fix github being flaky with pr edit (#5196)\n2026-03-19 lalitm@google.com perfetto: extract LoadMessageFilterConfig into shared helper (#5184)\n2026-03-19 lalitm@google.com perfetto: make package list fstream CLOEXEC (#5194)\n2026-03-19 lalitm@google.com perfetto: Add regex filtering support to packages list (#5186)\n2026-03-19 kraskevich@google.com Fix perfetto-\u003echromium autoroller on win (#5193)\n2026-03-19 mayzner@google.com de: Improve the empty state messages on dashboard (#5167)\n2026-03-19 mayzner@google.com de: Removing the dashboards (#5169)\n2026-03-19 pohengshen@google.com ftrace: Add sched_group_tracker event (#5165)\n2026-03-19 lalitm@google.com tp: fix roll into chromium (#5177)\n2026-03-18 lalitm@google.com perfetto: fix issue with passing overlay through service (#5181)\n2026-03-18 lalitm@google.com ui: fix using slice name instead of argument name in visualize args (#5179)\n2026-03-18 mayzner@google.com de: Organize + on node popup menu (#5173)\n2026-03-18 mayzner@google.com de: Cycle detection (#5175)\n2026-03-18 mayzner@google.com ui: Kill orphaned processes (#5174)\n2026-03-18 lalitm@google.com tp: improve help text for subcommand CLI (#5152)\n2026-03-18 mayzner@google.com de: Propagate column set changes to visualizations (#5160)\n2026-03-18 mayzner@google.com de: Dashboards have drivers and consumers (#5168)\n2026-03-18 lalitm@google.com tp: consolidate shell BUILD.gn into single source_set (#5133)\n2026-03-18 lalitm@google.com tp: add help system, file collision detection, classic tests (#5132)\n2026-03-18 99329845+ivan-chong@users.noreply.github.com ui: Add a generic Related Events API (#4767)\n2026-03-18 lalitm@google.com tp: add metrics subcommand (#5131)\n2026-03-18 mayzner@google.com ui: Add scorecard/KPI chart (#5170)\n2026-03-18 lalitm@google.com tp: add summarize and export subcommands (#5130)\n2026-03-18 lalitm@google.com tp: add In filter support to TypedCursor and optimize In bytecode (#5154)\n2026-03-18 lalitm@google.com perfetto: add test for SMB scraping in TraceBufferV2 (#5122)\n2026-03-18 lalitm@google.com tp: add interactive and server subcommands (#5129)\n2026-03-18 lalitm@google.com perfetto: Remove sma_prevent_duplicate_immediate_flushes flag (#5124)\n2026-03-18 lalitm@google.com tp: add common_flags, query subcommand, and dispatcher (#5128)\n2026-03-18 stevegolton@google.com ui: Tweak form \u0026 segmented button styles (#4045)\n2026-03-18 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5164)\n2026-03-18 mayzner@google.com de: Tabs import/export (#5166)\n2026-03-18 77857237+cphlipot1@users.noreply.github.com ui: add track groups for power rails from same subsystem (#4754)\n2026-03-17 stevegolton@google.com ui: Tweak sidebar styles (#5036)\n2026-03-17 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump the npm_and_yarn group across 2 directories with 3 updates (#5071)\n2026-03-17 stevegolton@google.com ui: Nodegraph tweaks (#5103)\n2026-03-17 mayzner@google.com de: Binding columns in the dashboards (#5145)\n2026-03-16 259054981+splint-disk-8i@users.noreply.github.com fix: remove duplicate words in comments (#5151)\n2026-03-16 rahulrav@google.com Rename `TraceMetadata` proto to `TraceAttributes`. (#5150)\n2026-03-16 lalitm@google.com tp: fix BFS/DFS excluding start nodes not in graph (#5147)\n2026-03-16 259054981+splint-disk-8i@users.noreply.github.com fix: typo in socket_relay_handler comment (#5148)\n2026-03-16 lol@anp.lol Support critical path analysis for Fuchsia traces (#4909)\n2026-03-16 rahulrav@google.com Add the ability to add generic metadata pertaining to a trace or the … (#4879)\n2026-03-16 mayzner@google.com de: Improve column typing in android.startups.startups module (#5144)\n2026-03-16 mayzner@google.com ui: Add stats widget (#5121)\n2026-03-16 mayzner@google.com de: Dashboard can connect to only one graph (#5143)\n2026-03-16 mayzner@google.com de: Add dimensions display name and help (#5141)\n2026-03-16 stevegolton@google.com ui: Add stacking and series hovering to line charts (#5118)\n2026-03-16 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5102)\n2026-03-16 lalitm@google.com tp: refactor TreeTransformer to use interpreter directly (#4948)\n2026-03-16 mayzner@google.com de: More powerful smart graph (#5140)\n2026-03-16 mayzner@google.com stdlib: Remove invalid check for android_input_events (#5120)\n2026-03-16 mayzner@google.com ui: Support selection alongside brushing for charts (#5113)\n2026-03-16 primiano@google.com base: Add crash key with watchdog duration (#5139)\n2026-03-16 lalitm@google.com tp: add SubcommandContext to Subcommand interface (#5134)\n2026-03-15 259054981+splint-disk-8i@users.noreply.github.com docs: fix typos and capitalization across documentation (#5137)\n2026-03-14 lalitm@google.com perfetto: improve presubmit failure messages with fix instructions (#5135)\n2026-03-13 mayzner@google.com stdlib: Add core category for tables like \u0027slice\u0027 or \u0027counter\u0027 (#5123)\n2026-03-13 lalitm@google.com ui: add extension server documentation (#5107)\n2026-03-13 gignat@google.com ui: InputEvents negative end_to_end_latency_dur bug (#5126)\n2026-03-13 lalitm@google.com git: update git tools to be worktree-aware (#5125)\n2026-03-13 44271635+olehkuznetsov@users.noreply.github.com tp: improve test coverage for GpuEventParser (#5119)\n2026-03-13 mayzner@google.com de: Fix the fallout from changing to PerfettoSqlType (#5116)\n2026-03-13 stevegolton@google.com ui: Add Sankey chart (#5115)\n2026-03-13 mayzner@google.com de: Fix graph examples (#5114)\n2026-03-13 mayzner@google.com de: Go from id slices to timeline (#5112)\n2026-03-13 mayzner@google.com de: Add dashboard labels (#5111)\n2026-03-13 stevegolton@google.com ui: Add pf-test-volatile class which can be used to hide certain elements during screenshot tests (#5110)\n2026-03-13 gignat@google.com stdlib: add lock name to android_monitor_contention (#4964)\n2026-03-13 158785140+bohemian-miser@users.noreply.github.com Update README.chromium to include Update Mechanism (#5108)\n2026-03-13 stevegolton@google.com ui: Fix query table issues (#5091)\n2026-03-13 stevegolton@google.com ui: Use zero-tolerance pixel diffs for screenshot tests when rebaselining (#5109)\n2026-03-13 44271635+olehkuznetsov@users.noreply.github.com tp: Support multiple command buffers for vkQueueSubmit (#5096)\n2026-03-13 lalitm@google.com tp: fix simpleperf chunked parsing returning error on incomplete data (#5101)\n2026-03-13 lalitm@google.com tp: fix temp file handle leak in Python trace processor API (#5100)\n2026-03-13 stevegolton@google.com ui: Fix chevron anti-aliasing (#5105)\n2026-03-13 mayzner@google.com de: Add dashboard functionality (#5104)\n2026-03-12 runpinglai@google.com stdlib: Wattson Metric Bug Fix, Testcases, and Refactor (#5106)\n2026-03-12 mayzner@google.com de: Use PerfettoSqlType everywhere (#5098)\n2026-03-12 99329845+ivan-chong@users.noreply.github.com tp: stdlib: Update android_input_events to parse eventTime (#5059)\n2026-03-12 lalitm@google.com perfetto: heap_profile: add host subcommand for local Linux profiling (#5049)\n2026-03-12 lalitm@google.com perfetto: heap_profile: introduce android subcommand (#5047)\n2026-03-12 lalitm@google.com perfetto: heap_profile: fix traceconv profile path parsing (#5046)\n2026-03-12 57577698+PriyankaSPX@users.noreply.github.com tp: changes for compatibility with google-protobuf (#5094)\n2026-03-12 stevegolton@google.com ui: Narrow scope of screenshot tests (#5090)\n2026-03-12 parthsane@gmail.com Outline exception throws in PerfettoTrackEventBuilder (#5079)\n2026-03-12 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5092)\n2026-03-12 lalitm@google.com perfetto: heap_profile: extract process_trace, refactor roll-prebuilts (#5039)\n2026-03-11 stevegolton@google.com ui: Align new tab button with other tabs in Tabs widget (#5086)\n2026-03-11 mayzner@google.com de: Rename explore page to data explorer (#5088)\n2026-03-11 mayzner@google.com de: Rename node_explorer to node_panel (#5087)\n2026-03-11 stevegolton@google.com ui: Use dblclick tab renaming to rename tabs in query page (#5078)\n2026-03-11 stevegolton@google.com ui: Improve checkbox appearance (#5085)\n2026-03-11 mayzner@google.com de: Rename data_explorer to results_panel (#5084)\n2026-03-11 mayzner@google.com de: Make sure tabs have unique names (#5083)\n2026-03-11 mayzner@google.com de: Reenable the data availability checks (#5082)\n2026-03-11 mayzner@google.com ui: Add context menu on tabs (#5073)\n2026-03-11 stevegolton@google.com ui: Improve tab look and feel (#5077)\n2026-03-11 mayzner@google.com ui: Modernise example android trace (#5081)\n2026-03-11 stevegolton@google.com ui: Add dedicated \"add new tab\" button to the Tabs widget - fixes reordering bug (#5075)\n2026-03-11 stevegolton@google.com ui: Mark TabStrip as deprecated and point users towards Tabs instead (#5076)\n2026-03-11 mayzner@google.com tp: \u0027Materialize\u0027 as views where it\u0027s optimal (#5074)\n2026-03-10 runpinglai@google.com metrics: Add Wattson TPU v1 and v2 metrics (#5062)\n2026-03-10 mayzner@google.com ui: Add tab renaming (#5065)\n2026-03-10 mayzner@google.com de: Fix preventing CTRL+C copy (#5070)\n2026-03-10 stevegolton@google.com ui: Fix minimap brush clamping issues (#5068)\n2026-03-10 stevegolton@google.com ui: Replace ZonedInteractionHandler on the minimap with DOM elements and native pointer events (#5067)\n2026-03-10 runpinglai@google.com ui: Add Wattson TPU power estimate ui (#5061)\n2026-03-10 wusamuel@google.com UI: Autopin Wattson tracks for SysUI jank metrics (#5057)\n2026-03-10 pmahajan@qti.qualcomm.com Protect VMADDR_FLAG_TO_HOST usage for backward compatibility (#5064)\n2026-03-10 mayzner@google.com de: Fix the broken permalinks (#5055)\n2026-03-10 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5044)\n2026-03-09 stevegolton@google.com ui: Tidy up chart theming (#4905)\n2026-03-09 wusamuel@google.com ui: Pin per thread Wattson power tracks (#5019)\n2026-03-09 stevegolton@google.com ui: Improve fuzzy matching on camelcase strings by splitting them into tokens (#5054)\n2026-03-09 runpinglai@google.com stdlib: Add Wattson TPU power estimation (#5022)\n2026-03-09 mayzner@google.com de: Fix joins example (#5052)\n2026-03-06 stevegolton@google.com ui: Move query tab \u0026 omnibox SQL mode into QueryPage plugin (#5040)\n2026-03-06 reveman@meta.com rust-sdk: add trace processor protos and HTTP client example (#5032)\n2026-03-06 reveman@meta.com rust-sdk: fix nested message naming and improve macro formatting (#5031)\n2026-03-06 mayzner@google.com tp: Remove descendant_slices() false positives (#4992)\n2026-03-06 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#5042)\n2026-03-06 stevegolton@google.com ui: Screenshots (#5041)\n2026-03-06 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump the npm_and_yarn group across 2 directories with 4 updates (#5021)\n2026-03-06 gignat@google.com ui: AndroidAnr expand process on missing main thread (#5038)\n2026-03-06 lalitm@google.com tp: Decompose trace_processor_shell.cc into focused modules (#4959)\n2026-03-06 stevegolton@google.com ui: Reduce ResizeHandle hitbox size (#5025)\n2026-03-06 sashwinbalaji@google.com perfetto: integrate amalgamated SDK generation into LUCI recipe (#5034)\n2026-03-06 sashwinbalaji@google.com tp: Make primary key unique in stats_table (#5037)\n2026-03-06 wuweikai@honor.com docs: Update tracing-sdk.md (#5027)\n2026-03-06 gignat@google.com UI: MemoryViz memory reclaim ksawpd slice fix (#5033)\n2026-03-06 sashwinbalaji@google.com ui: Handle cache key when only global session uuid available. (#4989)\n2026-03-05 zezeozue@google.com tp: Fix HPROF importer for ahat parity (#5029)\n2026-03-05 primiano@google.com Add MD file to notify about SDK move (#5030)\n2026-03-05 mayzner@google.com tp: Make Summarizers truly independent (#5024)\n2026-03-05 stevegolton@google.com ui: Highlight current page in the sidebar (#5011)\n2026-03-05 rsavitski@google.com heapprofd: expose a reallocarray hook (#5018)\n2026-03-04 mayzner@google.com de: Fix hidden data explorer tab (#5015)\n2026-03-04 stevegolton@google.com ui: Relax playwright screenshot tolerances (#5014)\n2026-03-04 gignat@google.com stdlib: memory_breakdown expose schema (#4982)\n2026-03-04 mayzner@google.com de: Add tabs to Data Explorer (#4994)\n2026-03-04 mayzner@google.com de: Add export node category (#5013)\n2026-03-04 mayzner@google.com wasm: TxtToPb for TraceSummary (#4996)\n2026-03-04 stevegolton@google.com ui: Fix malformatted \u0027none\u0027 selector in \u0027interpret id as\u0027 select (#5010)\n2026-03-04 mayzner@google.com de: Extend the editor for the query node to the bottom (#4993)\n2026-03-04 stevegolton@google.com ui: Fix screenshots (#5009)\n2026-03-04 stevegolton@google.com ui: Roll canary (#5004)\n2026-03-03 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump the npm_and_yarn group across 2 directories with 4 updates (#4956)\n2026-03-03 ilkos@google.com Correct package resolution for sdk sandbox and PCC uid ranges (#5002)\n2026-03-03 stevegolton@google.com ui: Clean up shader \u0026 fix incomplete slice rendering (#5003)\n2026-03-03 mayzner@google.com de: Cleanup the navigation sidepanel (#4991)\n2026-03-03 stevegolton@google.com ui: Fix broken search overview track (#5001)\n2026-03-03 sashwinbalaji@google.com tp: process tbV2 stats_version (#4981)\n2026-03-03 stevegolton@google.com ui: Fix same-process sched slice highlighting (#4999)\n2026-03-03 simonmacm@google.com Record empty power rails packets as an error (#5000)\n2026-03-03 stevegolton@google.com ui: Fix broken fillratio on slice tracks (#4998)\n2026-03-03 stevegolton@google.com ui: Fix floating point precision issues in slice renderer (#4977)\n2026-03-03 mayzner@google.com de: Missing node explanations (#4997)\n2026-03-03 mayzner@google.com tp: Intervals Create uses kDense dataframe (#4995)\n2026-03-03 ikram20011127@gmail.com Consider doFrames when extending frame timeline (#4978)\n2026-03-03 mayzner@google.com github: Add hour/min to the UI build comments (#4990)\n2026-03-03 mayzner@google.com tp: Add intervals_create C++ Perfetto SQL function (#4988)\n2026-03-03 lalitm@google.com tp: Add subcommand infrastructure and classic CLI integration tests (#4958)\n2026-03-03 stevegolton@google.com ui: Configurable table links in query results (#4985)\n2026-03-03 mayzner@google.com de: Fix flickering SQL node (#4987)\n2026-03-03 spam-by-github@never-mind.eu Bazel: Set explicit mnemonic for actions. (#4984)\n2026-03-03 mayzner@google.com de: Viz node improvements (#4979)\n2026-03-03 stevegolton@google.com ui: Remove unused DragGestureHandler (#4983)\n2026-03-03 chao@kernel.org f2fs: perfetto/ftrace: add f2fs/f2fs_lock_elapsed_time event (#4963)\n2026-03-02 mayzner@google.com de: Add Trace Summary node (#4975)\n2026-03-02 pablogamito@google.com Add extra debug fields to WM Shell Transition proto (#4934)\n2026-03-02 primiano@google.com Update prebuilts for v54.0 (#4972)\n2026-03-02 stevegolton@google.com ui: Fix screenshot tests (#4974)\n2026-03-02 stevegolton@google.com ui: Use minisearch instead of fzf for fuzzy matching (#4969)\n2026-03-02 primiano@google.com Minor fixes to tools/release/ scripts (#4973)\n2026-03-02 mayzner@google.com de: Fix args extracting (#4970)\n2026-03-02 stevegolton@google.com ui: Reduce size of material icons fonts (#4907)\n2026-03-02 mayzner@google.com de: Change behaviour when adding to node with undocked child (#4966)\n2026-03-02 gignat@google.com stdlib: _normalize_event_channel special case (#4965)\n2026-03-02 primiano@google.com tracing_proto_extesions: change schema, add root (#4939)\n2026-03-02 parthsane@gmail.com [android sdk] add ravenwood policy for native functions (#4920)\n2026-03-01 primiano@google.com LUCI: uprev recipe engine (#4962)\n2026-02-28 primiano@google.com LUCI: update windows SDK path (#4954)\n2026-02-27 primiano@google.com LUCI: update windows SDK version (#4953)\n2026-02-27 primiano@google.com Fix windows build (#4952)\n2026-02-27 primiano@google.com Update CHANGELOG for v54 (#4951)\n2026-02-27 parthsane@gmail.com sdk: Move system registration check from Android framework (#4922)\n2026-02-27 lalitm@google.com tp: best-fit scratch registers + DataframeRegisterCache (#4946)\n2026-02-26 estaats@google.com Add support for FWTP slice traces to Perfetto UI (#4937)\n2026-02-26 primiano@google.com traced: load gzipped descriptors from /etc on Android (#4838)\n2026-02-26 reveman@meta.com ui: add embedder API for sidebar branding badges (#4900)\n2026-02-26 gignat@google.com ui: Make AndroidAnr plugin default (#4919)\n2026-02-26 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#4691)\n2026-02-26 elrakadm@google.com Move check_banned_patterns to sql processing utils (#4936)\n2026-02-26 stevegolton@google.com ui: Return all names when using the datagrid glob filter (#4935)\n2026-02-26 primiano@google.com out-of-tree protos: expose binary tool in the android tree (#4916)\n2026-02-26 pierrick.bouvier.work@gmail.com ui: add AddNote command and allow startup use (#4882)\n2026-02-26 gignat@google.com ui: do not expand User Interaction group  by default (#4931)\n2026-02-26 keanmariotti@google.com windowmanager protos: add rendering_hints to windowlayoutparams (#4913)\n2026-02-25 stevegolton@google.com ui: Fix resizable details panel (#4928)\n2026-02-25 mayzner@google.com de: Accept any type in metrics (#4927)\n2026-02-25 stevegolton@google.com ui: Fix missing cpu by thread aggregation (#4926)\n2026-02-25 mayzner@google.com de: Fix rendering of metrics node (#4925)\n2026-02-25 mayzner@google.com de: Enable datagrid sorting (#4924)\n2026-02-25 cbruni@chromium.org [protos] Prepare trace protos for detailed V8 source positions (#4918)\n2026-02-25 gignat@google.com ui: add LockContention plugin to visualize held locks (#4917)\n2026-02-25 hcutts@google.com protos: Add evdev device addition and removal events (#4872)\n2026-02-25 wuweikai@honor.com tp: Fix PerfettoUI failing to load single logcat file with clock_sync_failure_unknown_source_clock error (#4915)\n2026-02-25 sashwinbalaji@google.com tp: Fix index corruption in StringFilterNe for missing strings (#4910)\n2026-02-24 mayzner@google.com de: Add visualisation node (#4891)\n2026-02-24 77857237+cphlipot1@users.noreply.github.com add trace config option to preserve logcat buffers (#4902)\n2026-02-24 stevegolton@google.com ui: Remove vega and d3 (#4904)\n2026-02-24 ilkos@google.com Render heap profile snapshots separately (#4901)\n2026-02-23 stevegolton@google.com ui: Tweak home page styling (#4092)\n2026-02-23 99329845+ivan-chong@users.noreply.github.com tp: stdlib: Constrain input to frame intersect logic (#4796)\n2026-02-23 stevegolton@google.com ui: Roll stable/canary (#4899)\n2026-02-23 lalitm@google.com ui: fix broken behaviour around imported configs (#4898)\n2026-02-23 gignat@google.com stdlib: add a normalized event_channel to input_events (#4865)\n2026-02-23 gignat@google.com stdlib: _oom_adjuster_intervals fix counter.ts matching with 2 reasons (#4873)\n2026-02-23 reveman@meta.com rust-sdk: update contributor emails (#4897)\n2026-02-23 reveman@meta.com rust-sdk: use per-instance state for gpu_counters example (#4896)\n2026-02-23 mayzner@google.com ui: Add rectangle brush to scatterplot and optional gridlines to all charts (#4890)\n2026-02-23 reveman@meta.com tp: add TraceProcessorShellMain (#4894)\n2026-02-23 lalitm@google.com tp: fix behaviour when multiple userlists are seen in trace (#4892)\n2026-02-23 hans-filip.elo@xperi.com  Changes to websocket_bridge+trace_processor_shell to support using non-default WebUI origin (#4776)\n2026-02-23 lalitm@google.com ui: add support for recording traces with custom config (#4819)\n2026-02-23 lalitm@google.com perfetto: export headers from src for bazel cc_library targets (#4889)\n2026-02-23 zezeozue@google.com sdk: Fix non-standard proto enum patterns in android_track_event.proto (#4888)\n2026-02-23 stevegolton@google.com Revert \"ui: Use modern pointer events \u0026 pointer capture on drawer panel resize handle (#4852) (#4887)\n2026-02-23 primiano@google.com TraceBufferV2: improve stats (#4724)\n2026-02-23 lalitm@google.com tp: migrate all intrinsic scalar functions and tables to prelude (#4856)\n2026-02-23 lalitm@google.com perfetto: fix ODR violation with protovm in G3 (#4884)\n2026-02-23 gignat@google.com ui: add command to visualize memory reclaim events (#4886)\n2026-02-23 49699333+dependabot[bot]@users.noreply.github.com build(deps-dev): bump ajv from 6.12.6 to 6.14.0 in /ui in the npm_and_yarn group across 1 directory (#4885)\n2026-02-23 49699333+dependabot[bot]@users.noreply.github.com build(deps-dev): bump the npm_and_yarn group across 2 directories with 1 update (#4883)\n2026-02-20 stevegolton@google.com ui: Enable webgl rendering by default (#4746)\n2026-02-20 mayzner@google.com ui: Datagrid disabled sorting and filtering unnecessarily (#4793)\n2026-02-20 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#4868)\n2026-02-20 stevegolton@google.com ui: Run playwright tests in a container (#4871)\n2026-02-20 mayzner@google.com de: Multiple metrics in metrics node (#4875)\n2026-02-20 lalitm@google.com tp: fix edge case with descendant slice (#4878)\n2026-02-20 mayzner@google.com ui: Add more charts (#4877)\n2026-02-20 stevegolton@google.com ui: gitignore .playwright (#4874)\n2026-02-20 stevegolton@google.com ui: Separate assert* from logging (#4869)\n2026-02-20 gignat@google.com stdlib: memory_breakdown better anomaly detection (#4870)\n2026-02-20 keanmariotti@google.com tp: integrate ProtoVM (#4768)\n2026-02-19 gignat@google.com ui: MemoryViz order buckets by peak (#4866)\n2026-02-19 gignat@google.com stdlib: anrs add SYSTEM_SERVER_WATCHDOG_TIMEOUT type (#4864)\n2026-02-19 gignat@google.com ui: Input events overlaps visualization command  (#4820)\n2026-02-19 gignat@google.com ui: MemoryViz add new mem tracks (#4814)\n2026-02-19 jjaggi@google.com Update dropped frame description (#4863)\n2026-02-19 gignat@google.com sdtlib: add new tracks to memory_breakdown module (#4862)\n2026-02-19 lalitm@google.com tp: return error on Windows instead of not enabling functions (#4855)\n2026-02-19 wusamuel@google.com stdlib: Merge tables to optimize memory and perf of Wattson (#4859)\n2026-02-19 wusamuel@google.com presubmit: Don\u0027t silently fail on checks (#4860)\n2026-02-18 zezeozue@google.com sdk: Add CPU time reasons to process state changed track event (#4858)\n2026-02-18 stevegolton@google.com ui: Use modern pointer events \u0026 pointer capture on drawer panel resize handle (#4852)\n2026-02-18 jgaillard@google.com Enable Windows support for libperfetto_c in Android (#4853)\n2026-02-18 mayzner@google.com de: Fix the \u0027query doesn\u0027t exist\u0027 bug on empty tables (#4851)\n2026-02-18 mayzner@google.com ui: Simplify charts loader (#4844)\n2026-02-18 primiano@google.com Break down TrackEvent extensions + Add tracing_proto_extension tool (#4833)\n2026-02-18 primiano@google.com TP: Remove jsoncpp dependency (#4850)\n2026-02-18 lalitm@google.com ui: add notion of \"source\" to commands (#4835)\n2026-02-18 lalitm@google.com ui: add support for sso via iframes for ext server + add google one (#4832)\n2026-02-18 lalitm@google.com ui: add infra for having embedder defined extension servers (#4827)\n2026-02-18 lalitm@google.com ui: introduce new \"embedder\" interface to place deployment vars (#4822)\n2026-02-18 mayzner@google.com de: tp: Add metrics v2 node (#4756)\n2026-02-18 mayzner@google.com de: Split explore_page.ts (#4825)\n2026-02-18 stevegolton@google.com ui: Ignore lock if --no-build passed (#4846)\n2026-02-18 lalitm@google.com tp: fix roll into Chromium (#4848)\n2026-02-18 lalitm@google.com tp: fix suspend state for secondary machines (#4849)\n2026-02-18 lalitm@google.com tp: split clock tracker API into composable primitives (#4807)\n2026-02-18 stevegolton@google.com de: Enable perfetto-sql language support in DE (#4845)\n2026-02-18 lalitm@google.com tp: improve printing of error/data loss stats in shell (#4818)\n2026-02-18 57577698+PriyankaSPX@users.noreply.github.com tp: Convert input monotonic field values to boottime and add to args table. (#4843)\n2026-02-18 mayzner@google.com de: Enable children set control (#4828)\n2026-02-18 gignat@google.com stdlib: add startup upid to _android_startup_mipmap_1ms (#4842)\n2026-02-18 wusamuel@google.com tp: Expand interval_intersect to 10 tables (#4840)\n2026-02-18 wusamuel@google.com stdlib: Some performance optimizations for Wattson (#4839)\n2026-02-17 mayzner@google.com de: Migrate charts to echarts (#4761)\n2026-02-17 stevegolton@google.com ui: Always create build.js lockfile (#4834)\n2026-02-17 primiano@google.com proto: factor out MultifileErrorCollector (#4829)\n2026-02-17 ilkos@google.com Split memory profile tracks (#4831)\n2026-02-17 edgararriaga@google.com Add redacted traces PerfettoSQL module (#4790)\n2026-02-17 lalitm@google.com Revert \"Fix Windows compilation and enable libperfetto_c on Windows (#4800)\" (#4830)\n2026-02-17 simonmacm@google.com Trace Processor: Add regexp_replace_simple function to Perfetto SQL (#4763)\n2026-02-17 gignat@google.com ui: BinderViz null aidl name fix (#4824)\n2026-02-17 cbruni@chromium.org ui: Support tags for selecting chrome trace categories (#4425)\n2026-02-17 reveman@meta.com tracebox: Bundle traced_relay (#4823)\n2026-02-17 lalitm@google.com tp: make ClockTracker per trace + machine and fix associated problems (#4805)\n2026-02-17 reveman@meta.com traced_relay: refactor traced_relay to extract library target (#4811)\n2026-02-17 jgaillard85@gmail.com Fix Windows compilation and enable libperfetto_c on Windows (#4800)\n2026-02-16 ali.utku.selen@arm.com perfetto_cmd: allow adding notes to traces (#3495) (#4735)\n2026-02-16 lalitm@google.com tp: fix passthrough of context and sort order for container types (#4804)\n2026-02-16 zezeozue@google.com sdk: Add binder died event (#4817)\n2026-02-16 keanmariotti@google.com protovm: refactor serialization (#4816)\n2026-02-16 stevegolton@google.com ui: Fix crash in slice track tooltips when no dur present in dataset (#4815)\n2026-02-16 lalitm@google.com ui: add support for filtering out zeros in info page (#4806)\n2026-02-16 stevegolton@google.com ui: Fix crosshatching artifacts when RT slices are wider than the clip area (#4812)\n2026-02-16 lalitm@google.com ui: use githubusercontent instread of API when unauth and improve error (#4809)\n2026-02-16 lalitm@google.com ui: fix modal sizing and add HTTPS auth to extension servers (#4802)\n2026-02-15 tfx2001@outlook.com tp: enhance hex formatting utilities and I2C events serialization for ftrace output (#4718)\n2026-02-14 zezeozue@google.com sdk: Returns the builder after writing a callstack (#4810)\n2026-02-13 lalitm@google.com tp: introduce ForgedTracePacketWriter for writing TracePackets efficiently (#4799)\n2026-02-13 zezeozue@google.com sdk: Accept a callstack in the track event sdk instead of dumping (#4803)\n2026-02-13 zezeozue@google.com sdk: Add the process state changed sequence id proto (#4795)\n2026-02-13 gignat@google.com ui: remove AndroidCounterTracks plugin (#4797)\n2026-02-13 lalitm@google.com tp: Split ClockSynchronizer into pure engine and ClockTracker wrapper (#4791)\n2026-02-13 gignat@google.com ui: MemoryViz plugin bucket name add number of processes (#4794)\n2026-02-13 mayzner@google.com tp: Rename trace_config_utils to proto_utils and extend (#4781)\n2026-02-13 zezeozue@google.com sdk: add emitDebugCallStack for local debugging (#4792)\n2026-02-13 gignat@google.com memory vizualizer broken down by oom bucket (#4690)\n2026-02-13 57577698+PriyankaSPX@users.noreply.github.com tp: Provide transition timestamps in table for drawing pending and playing stages. (#4733)\n2026-02-13 99329845+ivan-chong@users.noreply.github.com Fix android_input_events with negative durations (#4784)\n2026-02-12 zezeozue@google.com sdk: Use explicit enums for Android track events (#4788)\n2026-02-12 petrcermak@users.noreply.github.com Add links between the main tracks of the Chrome Scroll Jank plugin (#4786)\n2026-02-12 liamhartery@gmail.com Add support for the Primes (Google Internal) trace format to Trace Processor (#4298)\n2026-02-12 lalitm@google.com ui: switch to having objects in manifest array (#4782)\n2026-02-12 lalitm@google.com ui: add link sharing for server extensions (#4774)\n2026-02-12 stevegolton@google.com ui: Thinner \u0027accent\u0027 highlight when hovering resize handles but keep hitbox the same size (#4785)\n2026-02-12 stevegolton@google.com ui: Fix CI flake (#4789)\n2026-02-12 lalitm@google.com ui: Add auth support and refactor extension servers (#4772)\n2026-02-12 zezeozue@google.com sdk: Add Android process lifecycle and broadcast track events (#4779)\n2026-02-12 petrcermak@users.noreply.github.com Add a details panel for scroll timeline v4 slices (#4760)\n2026-02-12 petrcermak@users.noreply.github.com Move EventLatency table creation to a separate file (#4764)\n2026-02-12 lalitm@google.com ui: remove incorrectly commited shas (#4773)\n2026-02-12 lmilne@qnx.com Add QNX Probes config (#4509)\n2026-02-12 keanmariotti@google.com protovm: fix chromium build (#4777)\n2026-02-12 adyabr@google.com frametimeline: add a new jank type and group together all the non perceivable jank tags (#4775)\n2026-02-11 wusamuel@google.com stdlib: Add Wattson support for MT6897 (#4771)\n2026-02-11 edgararriaga@google.com Add an option to traceconv text to skip unknown fields instead of failing (#4490)\n2026-02-11 99329845+ivan-chong@users.noreply.github.com tp: Change frame logic in android_input_events  (#4745)\n2026-02-11 keanmariotti@google.com tracing: integrate ProtoVM (#3814)\n2026-02-11 lalitm@google.com ui: cleanup incorrectly committed file (#4766)\n2026-02-11 wusamuel@google.com ui: Wattson per thread power counters (#4706)\n2026-02-11 lalitm@google.com tp: make sequence scoped clock ids multi-trace aware (#4708)\n2026-02-11 stevegolton@google.com ui: Improve track shell/button layout (#4750)\n2026-02-11 lalitm@google.com tp: cleanup unused interface (#4757)\n2026-02-11 stevegolton@google.com ui: Resizable track shell (#4748)\n2026-02-11 mayzner@google.com de: Serialization covered in node registry (#4755)\n2026-02-11 lalitm@google.com tp: fix parsing of preempt count as hex (#4749)\n2026-02-11 77857237+cphlipot1@users.noreply.github.com stdlib: make machine_id use JOINID(machine.id) instead of LONG (#4751)\n2026-02-10 77857237+cphlipot1@users.noreply.github.com ui: weight flamegraphs by perf event count (#4638)\n2026-02-10 petrcermak@users.noreply.github.com Generalize `SliceRef` and `SqlRef` (#4729)\n2026-02-10 stevegolton@google.com ui: Add tab reordering support to the Tabs widget (#4740)\n2026-02-10 lalitm@google.com tp: fix proc descriptor names not overriding each other (#4742)\n2026-02-10 stevegolton@google.com ui: Fix screenshot tests (#4747)\n2026-02-10 runpinglai@google.com tp: Wattson Metric v2 implementation (#4665)\n2026-02-10 77857237+cphlipot1@users.noreply.github.com stdlib: add machine_id to android_suspend_state (#4730)\n2026-02-10 stevegolton@google.com ui: Fix query results tab not updating properly (#4739)\n2026-02-10 petrcermak@users.noreply.github.com Centralize specifications of Chrome Scroll Jank plugin\u0027s main tracks (#4734)\n2026-02-10 gignat@google.com ui: OomAdjScoreViz plugin rename the bucket tracks (#4741)\n2026-02-10 stevegolton@google.com ui: Clean up WebGL rendering issues (#4732)\n2026-02-10 mmocny@gmail.com Chrome: Remove totalDuration from WebContentInteraction (#4728)\n2026-02-10 gignat@google.com ui: add pid to slice name in AndroidAnr plugin (#4736)\n2026-02-10 gignat@google.com Add OOM Adjuster Score visualization plugin (#4653)\n2026-02-10 stevegolton@google.com ui: Add tree configuration to datagrid (#4727)\n2026-02-10 77857237+cphlipot1@users.noreply.github.com add perf_sample_with_counters to stdlib (#4579)\n2026-02-09 cbruni@chromium.org ui: Fix ui/run-all-tests (#4647)\n2026-02-09 lalitm@google.com tp: Add tree filtering feature to TreeTransformer (#4702)\n2026-02-09 stevegolton@google.com ui: Refactor DataGrid SQL datasource (#4384)\n2026-02-09 mayzner@google.com ui: Expand chart widgets (#4721)\n2026-02-09 mayzner@google.com de: tp: Add Filter In functionality (#4723)\n2026-02-09 99329845+ivan-chong@users.noreply.github.com ui: Add Android Input Lifecycle plugin (#4716)\n2026-02-09 stevegolton@google.com ui: Massive \u0027slice track\u0027 clean up/refactor + improve WebGL performance (#4722)\n2026-02-09 cbruni@chromium.org ui: add org.chromium.V8 V8SourceView (#4464)\n2026-02-09 56144550+ZRHann@users.noreply.github.com fix: relax ts validation for metadata events (#4712)\n2026-02-06 estaats@google.com Add custom tokenizing on fwtp_perfetto_slice ftrace events (#4715)\n2026-02-06 lalitm@google.com ui: add unit to gpufreq and subgroup (#4710)\n2026-02-06 lalitm@google.com tp: Support multiple concurrent scratch register slots (#4701)\n2026-02-06 lalitm@google.com tp: Refactor GetRegisterInitValue to QueryPlanImpl (#4700)\n2026-02-06 lalitm@google.com tp: Add utility additions for tree filtering support (#4699)\n2026-02-06 lalitm@google.com tp: Add support for variadic arguments in delegate functions (#4698)\n2026-02-06 keanmariotti@google.com tracing: emit TraceProvenance packet (#4501)\n2026-02-06 stevegolton@google.com ui: Early-out track queries if they\u0027ve been superseded by another query (#4705)\n2026-02-05 emrekultursay@gmail.com Update gpu_frequency unit from MHz to kHz (#4707)\n2026-02-05 mayzner@google.com tp: de: Serializer responsiblity moved to Trace Processor (#4682)\n2026-02-05 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump @modelcontextprotocol/sdk from 1.25.2 to 1.26.0 in /ui in the npm_and_yarn group across 1 directory (#4689)\n2026-02-05 lalitm@google.com perfetto: add guidance on how to pick out directory in agents (#4703)\n2026-02-05 stevegolton@google.com ui: Add flag to load track data in the background (#4697)\n2026-02-05 elabadysayed@google.com Add Package name field for Android in Chrome metadata (#4695)\n2026-02-05 chominskib@google.com Change type of LayerProto#metadata to map\u003cint32, bytes\u003e (#4656)\n2026-02-05 stevegolton@google.com tp: Time queries in TP rather than in the UI (#4469)\n2026-02-05 mayzner@google.com de: Add help modal \u0027?\u0027 (#4685)\n2026-02-04 mayzner@google.com de: Improve Query node inputs to show dolar sign (#4686)\n2026-02-04 lalitm@google.com Remove cts tag from testing APKs for perfetto modules. (#4681)\n2026-02-04 lalitm@google.com tp: fix kernel package hint and also document indexed dirs search (#4688)\n2026-02-04 lalitm@google.com tp: rearchitect error/warning/OK logging of symbolization and enrichment (#4683)\n2026-02-04 lalitm@google.com base: fix build due to preprocessor not shortcircuiting (#4684)\n2026-02-04 lalitm@google.com tp: log in the case of empty build ids (#4675)\n2026-02-04 lalitm@google.com tp: add support for breakpad symbolization in traceconv bundle (#4672)\n2026-02-04 lalitm@google.com tp: keep track of mutation count and update trace bounds when needed (#4674)\n2026-02-04 lalitm@google.com traceconv: add support for Android traces to bundle command (#4663)\n2026-02-04 mayzner@google.com de: Save to permalink (#4679)\n2026-02-04 petrcermak@users.noreply.github.com Add basic UI pixel diff tests for org.chromium.ChromeScrollJank plugin (#4668)\n2026-02-04 stevegolton@google.com ui: Roll canary (#4680)\n2026-02-04 lalitm@google.com tp: fix trace blob view offsets going backwards (#4678)\n2026-02-04 mayzner@google.com de: Handle duplicated columns names (#4677)\n2026-02-04 stevegolton@google.com ui: WebGL counters (#4660)\n2026-02-04 stevegolton@google.com ui: Histogram widget (#4655)\n2026-02-04 lalitm@google.com tp: move deobfusctor to tp/util (#4670)\n2026-02-04 lalitm@google.com tp: move src/profiling/symbolizer -\u003e tp/util (#4667)\n2026-02-04 petrcermak@users.noreply.github.com Migrate tools/test_data from `gsutil` to `gcloud storage` (#4669)\n2026-02-03 gignat@google.com ui: Add custom details panel for AndroidBinderViz slices (#4582)\n2026-02-03 lalitm@google.com tp: fix handling of perf.data records without tses in merged traces (#4661)\n2026-02-03 lalitm@google.com tp: split NotifyEndOfFile function into two stages (#4666)\n2026-02-03 petrcermak@users.noreply.github.com Add a new \"Chrome Scroll Timeline v4\" track (#4659)\n2026-02-03 lalitm@google.com Add go library target for interned data (#4662)\n2026-02-03 mayzner@google.com ui: Save recent graphs to local storage (#4654)\n2026-02-03 stevegolton@google.com ui: Minimap and CpuSliceTrack rendering optimizations (#4657)\n2026-02-03 mayzner@google.com ui: Additional controls in nodegraph (#4646)\n2026-02-03 cbruni@chromium.org ui: Add MultiSelect options validation (#4641)\n2026-02-03 cbruni@chromium.org ui: Prevent duplicate chrome trace categories (#4606)\n2026-02-03 stevegolton@google.com ui: Fix canvas resource leak (#4650)\n2026-02-03 lalitm@google.com tp: fix registering intrinsic functions to be able to delegate to (#4651)\n2026-02-03 lalitm@google.com perfetto: add workaround on Windows for protobuf clang-cl failure (#4652)\n2026-02-03 lalitm@google.com tp: signifcantly improve performance of mipmap operators (#4648)\n2026-02-02 arsalan.anwer9050@gmail.com perfetto: Fix CPU spin in traced_probes from max uint32 period values (#4640)\n2026-02-02 jessemckenna@google.com Split file I/O events by thread (#4599)\n2026-02-02 sashwinbalaji@google.com tracing: Increase kAssertAtNStalls to 300 (#4649)\n2026-02-02 stevegolton@google.com ui: Add WebGL renderer (#4630)\n2026-02-02 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump protobuf from 6.33.4 to 6.33.5 in /python in the pip group across 1 directory (#4645)\n2026-02-02 lalitm@google.com tp: fix OOM in JSON DOM handling (#4644)\n2026-02-02 mayzner@google.com github: Append UI build links to PR comments instead of replacing (#4643)\n2026-02-02 cbruni@chromium.org ui: Display warning in chrome probe if extension is not available (#4602)\n2026-02-02 stevegolton@google.com ui: Fix flaky integration tests (#4642)\n2026-02-02 101939095+BryanBradfo@users.noreply.github.com ui: Add AZERTY keyboard support for navigation (#4613)\n2026-01-31 stevegolton@google.com ui: Reduce jank while tracks are processing query results (#4633)\n2026-01-30 161526700+bbadawi1@users.noreply.github.com Allow setting tab name in \u0027dev.perfetto.RunQueryAndShowTab\u0027 command (#4619)\n2026-01-30 mayzner@google.com tp: Allow inlining referenced queries to CTE (#4624)\n2026-01-30 stevegolton@google.com ui: Autofocus search box when navigating to settings, plugins or flags page (#4603)\n2026-01-30 sashwinbalaji@google.com tp: Add incremental_build entry to metadata (#4632)\n2026-01-30 lalitm@google.com tp: refactor query plan builder to make it usable for tree filters (#4618)\n2026-01-30 stevegolton@google.com ui: Move trace.timeline out the hotpath (#4629)\n2026-01-30 stevegolton@google.com ui: Use relative timestamps to avoid expensive bigint conversions in the hotpath while retaining precision (#4628)\n2026-01-30 stevegolton@google.com ui: Add cancellation support to QuerySlot (#4631)\n2026-01-30 stevegolton@google.com ui: Cache colors to avoid hashing in the hotpath (#4627)\n2026-01-30 sashwinbalaji@google.com ui: Filter nulls when detecting multi-trace/machine (#4625)\n2026-01-30 primiano@google.com CI: update self-hosted runners (#4626)\n2026-01-30 sashwinbalaji@google.com ui: Make metadata per machine-trace (#4571)\n2026-01-30 sashwinbalaji@google.com tp: Make metadata per machine-trace (#4570)\n2026-01-29 primiano@google.com Increase ui.perfetto.dev build timeout to 60 min (#4617)\n2026-01-29 sashwinbalaji@google.com test: Fix ProtoTraceReaderTest (#4615)\n2026-01-29 lalitm@google.com tp: cleanup build rules after switching to our JSON logic (#4614)\n2026-01-29 56741989+copybara-service[bot]@users.noreply.github.com Copybara import from Chromium: proto and stdlib changes (#4612)\n2026-01-29 lalitm@google.com tp: add conversion tree -\u003e dataframe and skeleton of tree transformer (#4611)\n2026-01-28 sashwinbalaji@google.com tp/ui: enforce host machine id \u003d 0 (#4604)\n2026-01-28 gignat@google.com stdlib: add upid to android_input_events (#4607)\n2026-01-28 lalitm@google.com tp: Add HorizontalConcat and SelectRows to Dataframe (#4597)\n2026-01-28 lalitm@google.com tp: Refactor AdhocDataframeBuilder to use Storage instead of DataVariant (#4594)\n2026-01-28 99329845+ivan-chong@users.noreply.github.com ui: Handle inner join filtering when merging joins (#4502)\n2026-01-28 49699333+dependabot[bot]@users.noreply.github.com build(deps): bump hono from 4.11.5 to 4.11.7 in /ui in the npm_and_yarn group across 1 directory (#4592)\n2026-01-28 mayzner@google.com de: WSAD control for panning (#4601)\n2026-01-28 mayzner@google.com tp: Reapply #4588 - Revert most of the structured_query_generator change (#4593)\n2026-01-28 gignat@google.com ui: Android ANR plugin (#4524)\n2026-01-28 gignat@google.com ui: find main thread track URI by tag trackIds (#4575)\n2026-01-27 mayzner@google.com ui: Editor should only update on text change (#4585)\n2026-01-27 lalitm@google.com tp: introduce sql function for converting from table -\u003e tree (#4591)\n2026-01-27 shinyuw@google.com Add panel_state metrics (#4587)\n2026-01-27 gignat@google.com stdlib: android_input_events remove MATERIALIZED hints (#4589)\n2026-01-27 lalitm@google.com tp: Normalize StringPool::Id::Null() handling in dataframe (#4590)\n2026-01-27 elrakadm@google.com Revert \"tp: Fix the TraceSummary query generated change (#4572)\" (#4588)\n2026-01-27 pmuetschard@users.noreply.github.com Add the weighted jank metrics (#4569)\n2026-01-27 aandreyeu@meta.com Source code location support for Breakpad Symbolizer (#4559)\n2026-01-27 mayzner@google.com de: Fix too many updates for the query node (#4584)\n2026-01-27 elrakadm@google.com Revert \"Add slices module for CUJs to stdlib. (#4199)\" (#4583)\n2026-01-27 mayzner@google.com tp: Fix the TraceSummary query generated change (#4572)\n2026-01-27 shinyuw@google.com Add gram_collision ftrace (#4560)\n2026-01-27 mayzner@google.com ui: Add Google analytics to opening the Query and Data Explorer pages (#4546)\n2026-01-27 lalitm@google.com tp: add json::Dom and migrate export_json from jsoncpp (#4581)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/perfetto-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Perfetto: https://github.com/google/perfetto/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: b/314981157,b/378560215,b/385103526,b/394861376,b/417943800,b/430220320,b/447426810,b/479140653,b/479785110,b/479830079,b/481290800,b/486145766,b/487405013,b/487412953,b/489892789,b/492610709,b/496506220,b/496682941,b/497001079,b/498785154,b/500743345,b/502067293,b/505652376,b/507384565,b/512176619,b/515625953,b/524849074,b/526490256,b/527353594,b/528202385,b/531962416,b/532849066,b/532853785,b/533388309,b/534157859,b/534699963,b/540079111,b/548916242\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: I93d68aa6bfe12f27d58a140d72eba18fca704826\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8346654\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "4fd1fac359e74ad36fb283d0b0b53937bed73aa4",
      "tree": "11356952323633d590a6ede5702ed00c8c9aefc2",
      "parents": [
        "aff6c8f6f87a7c9c7144fc9d27d7811bbbe9d045"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Sep 02 14:53:56 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 02 16:03:05 2026"
      },
      "message": "Roll modp_b64 from 7c1b3276e727 to 50685101d51e (5 revisions)\n\nhttps://chromium.googlesource.com/chromium/src/third_party/modp_b64.git/+log/7c1b3276e727..50685101d51e\n\n2025-09-18 qjw@chromium.org ssci: update metadata to indicate approved autoroll exemptions\n2025-09-17 rop@google.com Add \u0027Update Mechanism: Manual\u0027 to README.chromium files\n2025-04-11 pkasting@chromium.org Remove myself from all OWNERS files as I\u0027m being laid off.\n2025-04-11 aishwaryarj@google.com Revert \"Remove myself from all OWNERS files as I\u0027m being laid off.\"\n2025-04-11 pkasting@chromium.org Remove myself from all OWNERS files as I\u0027m being laid off.\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/modp-b64-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in modp_b64: https://issues.chromium.org/issues/new?component\u003d1456722\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: Iecb1469e0312c0759f312c89af384bd89a87fbad\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8339295\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "aff6c8f6f87a7c9c7144fc9d27d7811bbbe9d045",
      "tree": "b9287fc81d2db564750b122e0ef1c489215b98f1",
      "parents": [
        "c30dcf2f84b9db37a0fd95f15020b151159db345"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Sep 02 14:53:58 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 02 15:51:21 2026"
      },
      "message": "Roll libfuzzer from bea408a6e01f to 0c7e676c3140 (21 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git/+log/bea408a6e01f..0c7e676c3140\n\n2026-09-01 ahaberlandt@apple.com [libFuzzer] [Darwin] Let the kernel kill fuzzers when OOM (#216836)\n2026-08-06 jakub.jakacki@intel.com Rename Compiler-RT target to compiler-rt in CMake files (#214364)\n2026-08-04 vitalybuka@google.com [NFC][libFuzzer] Remove unused GetModuleName helper in TracePC (#214032)\n2026-07-01 gd.ortuno@gmail.com [libfuzzer] Improve error message for file not found (#207081)\n2026-03-30 mcgrathr@google.com [fuzzer] Use LIBCXX_ABI_UNSTABLE for hermetic libc++ (#189096)\n2026-03-24 vitalybuka@google.com [libFuzzer] Fix -Wunused-variable when building with NDEBUG (#188301)\n2026-03-19 ross.burton@arm.com [compiler-rt] Unify python shebangs (#187285)\n2025-11-07 csanad.hajdu@arm.com [compiler-rt] Add CMake option to enable execute-only code generation on AArch64 (#140555)\n2025-09-27 co63@163.com [NFC] [compiler-rt] fix typos (#160803)\n2025-09-26 co63@163.com [compiler-rt] fix typos (#160799)\n2025-09-19 ipudney@umich.edu Fix libFuzzer array alignment with empty modules (#159661)\n2025-09-16 pandey.kumaramit2023@gmail.com Reapply \"[NFC] Fix CodeQL violations in compiler-rt. (#157793)\" (#157913) (#159097)\n2025-09-10 pandey.kumaramit2023@gmail.com Revert \"[NFC] Fix CodeQL violations in compiler-rt. (#157793)\" (#157913)\n2025-09-10 137622562+ampandey-1995@users.noreply.github.com [NFC] Fix CodeQL violations in compiler-rt. (#157793)\n2025-08-26 6019989+PiJoules@users.noreply.github.com [fuzzer][Fuchsia] Forward fix for undefined StartRssThread (#155514)\n2025-08-25 6019989+PiJoules@users.noreply.github.com Reapply \"[fuzzer][Fuchsia] Prevent deadlock from suspending threads\" … (#155271)\n2025-08-22 gulfem@google.com Revert \"[fuzzer][Fuchsia] Prevent deadlock from suspending threads\" (#155042)\n2025-08-22 6019989+PiJoules@users.noreply.github.com [fuzzer][Fuchsia] Prevent deadlock from suspending threads (#154854)\n2025-08-12 keithr@alum.mit.edu Revert \"[libFuzzer] always install signal handler with SA_ONSTACK\" (#153114)\n2025-08-09 khr@golang.org [libFuzzer] always install signal handler with SA_ONSTACK (#147422)\n2025-07-28 dan_blackwell@apple.com [compiler-rt][libFuzzer] Add support for capturing SIGTRAP exits. (#149120)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/libfuzzer-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in libfuzzer: https://github.com/llvm/llvm-project/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: I1f43331eb8fdf5ddb78b9f03de659d7889b2332a\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8339859\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c30dcf2f84b9db37a0fd95f15020b151159db345",
      "tree": "c7e1a09bd309bf622d0d98ff6fd38c71f0ed6852",
      "parents": [
        "fb748e428dfda43d3b55f3fb8c98d933ef66aa1c"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Sep 02 14:54:13 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Sep 02 15:49:01 2026"
      },
      "message": "Roll clang-format from 37f6e68a107d to 1baf9afe06a7 (32 revisions)\n\nhttps://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git/+log/37f6e68a107d..1baf9afe06a7\n\n2026-08-23 i@maskray.me [git-clang-format] Don\u0027t format the line preceding a deletion (#215946)\n2026-08-22 chandlerc@gmail.com [clang] Trim large(-ish) includes from common headers (#216946)\n2026-08-01 github@eoinrul.es Add option to format a whole file using git-clang-format (#204336)\n2026-05-04 msta@google.com [clang-format] Make ignored files unformatted instead of empty. (#170416)\n2026-05-03 Noname.genial@alpenjodel.de [clang-format] Honor later negated .clang-format-ignore patterns (#195432)\n2026-03-27 107386933+goyaladitya05@users.noreply.github.com [clang-format] Add pre-commit CI env var support to git-clang-format (#188816)\n2026-03-26 bjoern@hazardy.de [clang-format] Don\u0027t crash on an input with a NUL char (#188631)\n2026-03-19 DiamonDinoia@users.noreply.github.com  [clang-format] Fix stale .lock files in git-clang-format (#187379)\n2025-11-16 antonkesy@gmail.com [clang-format]: Fix JSON casing (#168156)\n2025-08-26 aidengrossman@google.com [clang-format] Use proper flags for git diff-tree (#155247)\n2025-07-31 jyknight@google.com NFC: Clean up of IntrusiveRefCntPtr construction from raw pointers. (#151545)\n2025-07-31 jyknight@google.com NFC: Clean up construction of IntrusiveRefCntPtr from raw pointers for llvm::vfs::FileSystem. (#151407)\n2025-07-15 owenpiano@gmail.com Revert \"[clang-format] Fix an off-by-1 bug with -length option (#143302)\"\n2025-06-13 owenpiano@gmail.com [clang-format] Fix an off-by-1 bug with -length option (#143302)\n2025-06-12 owenpiano@gmail.com Reland \"[clang-format][NFC] Clean up fillRanges() in ClangFormat.cpp\" (#143477)\n2025-06-09 jgorbe@google.com Revert \"[clang-format][NFC] Clean up fillRanges() in ClangFormat.cpp (#143236)\"\n2025-06-08 owenpiano@gmail.com [clang-format][NFC] Clean up fillRanges() in ClangFormat.cpp (#143236)\n2025-05-22 jan_svoboda@apple.com Reapply \"[clang] Remove intrusive reference count from `DiagnosticOptions` (#139584)\"\n2025-05-22 kazu@google.com Revert \"[clang] Remove intrusive reference count from `DiagnosticOptions` (#139584)\"\n2025-05-22 jan_svoboda@apple.com [clang] Remove intrusive reference count from `DiagnosticOptions` (#139584)\n2025-05-21 owenpiano@gmail.com [clang-format] Handle raw string literals containing JSON code (#140666)\n2025-05-19 owenpiano@gmail.com [clang-format][NFC] Upgrade SortIncludes option to a struct (#140497)\n2025-04-19 mehmetselimkeles@outlook.com [clang-format] Handle spaces in filename paths in clang-format-diff.py (#135779)\n2025-04-11 owenpiano@gmail.com [clang-format][NFC] Reformat git-clang-format\n2025-04-10 tim.clephas@nobleo.nl Treat ipynb as json (#135137)\n2025-04-10 wenju.he@intel.com [clang-format] Add \u0027cl\u0027 to enable OpenCL kernel file formatting (#134529)\n2025-03-16 owenpiano@gmail.com [clang-format] Update the minimum python version requirement\n2025-02-07 65685404+gutron@users.noreply.github.com [emacs][clang-format] Suppress reference to free variable errors (#126254)\n2025-02-04 35538541+goldsteinn@users.noreply.github.com [emacs][clang-format] Add elisp API for clang-format on git diffs (#112792)\n2024-12-06 owenpiano@gmail.com [clang-format][NFC] Reformat git-clang-format with `black -l80`\n2024-12-06 owenpiano@gmail.com [clang-format] Reformat Python script git-clang-format with black\n2024-12-03 d3x0r@users.noreply.github.com [clang-format] Add support for `.cjs` as JavaScript file extension (#118188)\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/clang-format-openscreen\nPlease CC jophba@chromium.org,mfoltz@chromium.org on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in clang-format: https://github.com/llvm/llvm-project/issues/new\nTo file a bug in Open Screen: https://issuetracker.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@chromium.org\nChange-Id: Icbc379cf4b4cd426851932c5849a4538146d28e9\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8342534\nCommit-Queue: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "fb748e428dfda43d3b55f3fb8c98d933ef66aa1c",
      "tree": "c85605aea5e52688f611b7ceb31e8f9b104e4c00",
      "parents": [
        "f564318962f2406a56bdf2a5ae5650114f0ac57a"
      ],
      "author": {
        "name": "Alex Ovsienko",
        "email": "ovsienko@google.com",
        "time": "Fri Aug 21 00:30:37 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 31 00:38:40 2026"
      },
      "message": "[DEPS] Add CPython CIPD package for hermetic Python toolchain\n\nAdd third_party/cpython3 CIPD packages for Linux and host platforms\n(\u0027\\\u0027\u0027infra/3pp/tools/cpython3/${platform}\u0027\\\u0027\u0027 at \u0027\\\u0027\u0027version:3@3.11.9.chromium.38\u0027\\\u0027\u0027).\n\nThis enables hermetic Python execution in Siso builds where Siso configs\ninherited from build/ require the hermetic Python binary at\nthird_party/cpython3/linux-amd64/bin/python3 on remote workers.\n\nAlso update .gitignore.\n\nBug: chromium:537680330\nChange-Id: I22ac283a9a23d35e0b64e5277be58d276d25c0b9\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8257962\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Alex Ovsienko \u003covsienko@google.com\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "f564318962f2406a56bdf2a5ae5650114f0ac57a",
      "tree": "1473b7ea1ed40d9ae39aeea80cf9e0bb5da50e8f",
      "parents": [
        "cc603d6ce008192ad74cbb5513581b4085207c25"
      ],
      "author": {
        "name": "Austin Kim",
        "email": "augiekim@gmail.com",
        "time": "Wed Aug 26 20:38:20 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat Aug 29 10:26:32 2026"
      },
      "message": "[Cast Docs] Remove stale macOS discovery/Bonjour caveat from USING.md\n\nDiscovery on macOS was fixed in\nhttps://chromium-review.googlesource.com/c/openscreen/+/7550051\n([platform] Fix discovery on macOS) by correcting how\nUdpSocketPosix::JoinMulticastGroup joins multicast groups on Apple\nplatforms. There was never an unimplemented Bonjour integration.\nUSING.md still claimed discovery was Linux-only, so drop that note and\nnarrow the remaining platform caveat to the still-accurate one: Windows\nis not yet supported.\n\nChange-Id: I7b23ca132b4992f34a07efedbd14e95d4630b81c\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8299212\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "cc603d6ce008192ad74cbb5513581b4085207c25",
      "tree": "e6059601941393e529ef986c6dc79a5c96b9ef4c",
      "parents": [
        "94ceab036896a2093c184e6a9dd1435ae830872d"
      ],
      "author": {
        "name": "Eusden Lin",
        "email": "eusdenlin@google.com",
        "time": "Tue Aug 25 02:38:58 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 26 14:58:11 2026"
      },
      "message": "[Cast Streaming] Update Python bindings and E2E tests for H.264 \u0026 HEVC\n\nThis change updates Python bindings documentation and adds end-to-end\nand unit test coverage for H.264 and HEVC video streaming.\n\n- Updated StreamConfig codec documentation in Python bindings to include\n  h264 and hevc.\n- Updated standalone_e2e.py to add H264 and HEVC VideoCodec enum values,\n  expected receiver messages, and test_h264_flag / test_hevc_flag in\n  e2e tests.\n- Added unit test in sender_bridge_unittest.cc.\n\nTest: Verified with standalone_e2e.py.\nTest: Unit tests added to verify all supported codecs\nBug: 529461375\nBug: 529454832\nChange-Id: I910ddaf8f56e30b5f18f4924a08cc2bfc16f4e3b\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8264530\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Eusden Lin \u003ceusdenlin@google.com\u003e\nReviewed-by: Shawn Quereshi \u003cshawnq@google.com\u003e\n"
    },
    {
      "commit": "94ceab036896a2093c184e6a9dd1435ae830872d",
      "tree": "e28a53673bfd94bf9ac058d4f7d3afa766d15301",
      "parents": [
        "f241b38117389e9ea5f415f231ee58bf1962cb0e"
      ],
      "author": {
        "name": "mark a. foltz",
        "email": "mfoltz@chromium.org",
        "time": "Tue Aug 25 15:58:01 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 25 22:53:35 2026"
      },
      "message": "[openscreen] Further cleanup of DEPS to facilitate autorolling.\n\n1. Add revision variables in vars for all git dependencies and version\n   variables for CIPD packages (gn_version, ninja_version,\n   chrome_version).\n2. Protect each variable declaration in vars with 3-line non-changing\n   comments to prevent merge conflicts during dependency rolls.\n3. Add third_party/OWNERS granting permissions to autorollers to update\n   README.chromium files.\n\nBug: 552076179\nChange-Id: I6541593f411202c37bcc777a514c86d10bdae239\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8282362\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "f241b38117389e9ea5f415f231ee58bf1962cb0e",
      "tree": "7482792ce8017b7e4049b964de745b1336c7ee90",
      "parents": [
        "2c756bb7f4b80ee2d60960fb545a7098140246b5"
      ],
      "author": {
        "name": "Austin Kim",
        "email": "augiekim@gmail.com",
        "time": "Mon Aug 24 22:21:35 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 25 20:57:39 2026"
      },
      "message": "[openscreen] test: Run InitGoogleTest() before custom flag parsing\n\ntest_main.cc\u0027s InitFromArgs() ran its own getopt_long() pass over argv\nbefore testing::InitGoogleTest() had a chance to strip gtest\u0027s own\n--gtest_* flags. getopt_long() doesn\u0027t treat an unrecognized\n\"--long-option\" as a no-op, so any gtest flag not in InitFromArgs()\u0027s\nsmall hardcoded allowlist (e.g. --gtest_list_tests) got misparsed as a\ncluster of single-character short options instead. In practice this\ncaused --gtest_list_tests to spuriously match the -t/--tracing short\nflag, constructing a TextTraceLoggingPlatform and crashing on an\nOSP_CHECK in StartTracing (trace_logging_activation.cc), which broke\ntest discovery for any tool that lists tests before running them.\n\nFix by calling InitGoogleTest() first, so it can strip its recognized\nflags from argv in place before InitFromArgs() ever sees them. This\nalso makes the \"gtest_internal_run_death_test\" and \"gtest_filter\"\nentries in InitFromArgs()\u0027s kArgumentOptions dead code (they existed\nonly to tolerate those two flags under the old ordering); remove them\nalong with their letters in the short-option string.\n\nChange-Id: I1366aa97647e6c8b8e434ffc632ccee80f871671\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8286764\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "2c756bb7f4b80ee2d60960fb545a7098140246b5",
      "tree": "abcb897eeeaf6d3197d432d4e9ba8f4d999937cb",
      "parents": [
        "b103839017f8d9b88d15f3c1d48207756a492cb2"
      ],
      "author": {
        "name": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "chromium-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Tue Aug 25 04:59:35 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 25 05:38:59 2026"
      },
      "message": "Manual roll tinycbor from 9441b2ca882f to 49d3a238cf4b (1 revision)\n\nManual roll requested by mfoltz@google.com\n\nhttps://chromium.googlesource.com/external/github.com/intel/tinycbor.git/+log/9441b2ca882f..49d3a238cf4b\n\n2026-08-04 thiago.macieira@intel.com CI: enable VS2026 in AppVeyor\n\nIf this roll has caused a breakage, revert this CL and stop the roller\nusing the controls here:\nhttps://autoroll.skia.org/r/tinycbor-openscreen\nPlease CC jophba@chromium.org,jophba@google.com,mfoltz@google.com,openscreen-eng@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in tinycbor: https://github.com/intel/tinycbor/issues\nTo file a bug in Open Screen: https://b.corp.google.com/issues/new?component\u003d861667\u0026template\u003d1809281\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: jophba@chromium.org,mfoltz@google.com\nChange-Id: Ie81a7abee8ebafaecbf3f9efabdba54bc434e15a\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8286191\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\nBot-Commit: chromium-autoroll@skia-public.iam.gserviceaccount.com \u003cchromium-autoroll@skia-public.iam.gserviceaccount.com\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "b103839017f8d9b88d15f3c1d48207756a492cb2",
      "tree": "b04e373d013f436f211f8704cb06e4a7777e6c08",
      "parents": [
        "fe7f765e39992175785011385d1fe073efe89d55"
      ],
      "author": {
        "name": "mark a. foltz",
        "email": "mfoltz@chromium.org",
        "time": "Tue Aug 25 01:47:56 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 25 02:18:22 2026"
      },
      "message": "[openscreen] Roll toolchain and build dependencies from Chromium LKGR\n\nThis rolls build and toolchain dependencies to match Chromium LKGR and\nupdates necessary build configuration and dependencies for Clang 24\ncompatibility:\n\n* Roll toolchain dependencies:\n  - third_party/llvm-libc/src\n  - buildtools\n  - third_party/libc++/src\n  - third_party/libc++abi/src\n  - build\n  - third_party/instrumented_libs\n* Update gn_version in DEPS to git_revision:58933a7cdbc90f70f2381f0c72e76d29be1d43a9\n  for generate_modulemap support in build/.\n* Update chrome_version and third_party/llvm-build/Release+Asserts GCS\n  packages in DEPS to Clang 24 (llvmorg-24-init-3796-g20e97c4b-2).\n* Roll third_party/abseil/src to 1fc748ff47859c3a041b9c2d7cfa5dfb22ae4ec6\n  and update third_party/abseil/BUILD.gn for Clang 24 compatibility\n  (lifetime_capture_by_this) and relocated cpu_detect files.\n* Update third_party/protobuf/BUILD.gn to use not_fuzzed_remove_configs and\n  not_fuzzed_needs_asan_add_configs.\n* Update tools/download-chromium-file.py to fetch files directly from Gitiles.\n* Fix unused read() return value in socket_handle_waiter_posix_unittest.cc\n  for _FORTIFY_SOURCE\u003d2 in release builds.\n\nRoll third_party/llvm-libc/src/ 7ebf30737..9da4c296d (149 commits)\n\nhttps://chromium.googlesource.com/external/github.com/llvm/llvm-project/libc.git/+log/7ebf307374b9..9da4c296d17f\n\nCreated with:\n  roll-dep third_party/llvm-libc/src\n\nRoll buildtools/ eca5f0685..4277578aa (87 commits)\n\nhttps://chromium.googlesource.com/chromium/src/buildtools/+log/eca5f0685c48..4277578aa9c4\n\nCreated with:\n  roll-dep buildtools\n\nRoll third_party/libc++/src/ 07572e7b1..97b436da4 (1255 commits)\n\nhttps://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git/+log/07572e7b1692..97b436da4c33\n\nCreated with:\n  roll-dep third_party/libc++/src\n\nRoll third_party/libc++abi/src/ 83a852080..fc1897a2c (48 commits)\n\nhttps://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git/+log/83a852080747..fc1897a2c12a\n\nCreated with:\n  roll-dep third_party/libc++abi/src\n\nRoll build/ f2bcd9276..034cc53eb (1079 commits)\n\nhttps://chromium.googlesource.com/chromium/src/build/+log/f2bcd9276005..034cc53eb28f\n\nCreated with:\n  roll-dep build\n\nRoll third_party/instrumented_libs/ 69015643b..d15c278ee (2 commits)\n\nhttps://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git/+log/69015643b3f6..d15c278eed5d\n\nCreated with:\n  roll-dep third_party/instrumented_libs\n\nR\u003dmfoltz@chromium.org,jophba@chromium.org\nChange-Id: I0c2be382bec1fd4a5c30e99450b58761e3ab2ac1\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8279160\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "fe7f765e39992175785011385d1fe073efe89d55",
      "tree": "2e12cd12a736d7e96f6cb9658028e84c181db3c4",
      "parents": [
        "5f2669d40b3dc2c927b62a17438b71b76b3d853c"
      ],
      "author": {
        "name": "Eusden Lin",
        "email": "eusdenlin@google.com",
        "time": "Thu Aug 20 18:05:55 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 25 01:05:16 2026"
      },
      "message": "[Cast Streaming] Support H.264 and H.265/HEVC in standalone sender\n\nImplements real-time software video encoding for H264 and HEVC in\nstandalone_sender using FFmpeg (libavcodec).\n\nKey changes:\n- cast/standalone_sender/streaming_ffmpeg_encoder.h/cc:\n  - Added StreamingFfmpegEncoder subclassing StreamingVideoEncoder.\n  - Implemented low-latency encoding using FF_THREAD_SLICE, ultrafast\n    preset, and zerolatency tune with zero B-frames.\n  - Encapsulated AVCodecContext and AVPacket in an EncoderContext RAII\n    struct.\n  - Single-copy pipeline directly into 32-byte SIMD aligned AVFrame.\n  - Implemented RTP 90kHz timestamping, on-demand keyframe handling,\n    dynamic VBV rate control updates, and QP stats extraction.\n- cast/standalone_sender/looping_file_sender.cc:\n  - Updated CreateVideoEncoder() to instantiate StreamingFfmpegEncoder\n    for VideoCodec::kH264 and VideoCodec::kHevc.\n- cast/standalone_sender/main.cc:\n  - Added h264, h265, and hevc options to the CLI --codec flag.\n\nTest: Live end-to-end 1080p/60fps H.264 and H.265 streaming verified\n      locally between cast_sender and cast_receiver.\nTest: Unit tests added\nBug: 529461375\nBug: 529454832\n\nChange-Id: I7df873d42398e2b899cad3aa68e4434ca27c229a\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8212739\nCommit-Queue: Eusden Lin \u003ceusdenlin@google.com\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Shawn Quereshi \u003cshawnq@google.com\u003e\n"
    },
    {
      "commit": "5f2669d40b3dc2c927b62a17438b71b76b3d853c",
      "tree": "2f9f4931593ff801e5c10f2f475be0d46a202abb",
      "parents": [
        "942a01d50b22eefbc07c7797ad7d71e098a799c3"
      ],
      "author": {
        "name": "mark a. foltz",
        "email": "mfoltz@chromium.org",
        "time": "Mon Aug 24 22:27:17 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 23:05:04 2026"
      },
      "message": "[openscreen] Update DEPS to be autoroller-friendly.\n\nSetting up autorollers for the DEPS that can be autorolled.  This\nupdates the DEPS file to make it simpler for the autoroller to set\nnew git revisions for these deps.\n\nThis also fixes the OWNERS permissions to allow autoroller CLs to be\nauto-submitted by Gerrit.\n\nBug: 552076179\nFixed: 526780154\nChange-Id: I563eb9454f9d5293ff63100813117d6be11b4ba5\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8279876\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "942a01d50b22eefbc07c7797ad7d71e098a799c3",
      "tree": "28b5d5a2fedf20f8b0cab9230c2f1d20daf408d5",
      "parents": [
        "d2ac0441db92891f783bb29efc93d2dfc9d8c6e5"
      ],
      "author": {
        "name": "Austin Kim",
        "email": "augiekim@gmail.com",
        "time": "Sat Aug 22 20:26:32 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 21:14:58 2026"
      },
      "message": "[openscreen] cast: Fix stale receiver log message in standalone_e2e.py\n\nstreaming_playback_controller.cc\u0027s \"Successfully negotiated a session,\ncreating SDL players.\" log line was changed to \"...creating players.\" in\nhttps://chromium-review.googlesource.com/c/openscreen/+/7988888\n([cast_streaming] Add synthetic streaming workflow and ASCII player for\nNoLibs mode), which also moved the log statement outside the\nCAST_STANDALONE_RECEIVER_HAVE_EXTERNAL_LIBS guard so it now fires for\nthe ASCII/NoLibs player too, not just SDL.\n\nstandalone_e2e.py\u0027s EXPECTED_RECEIVER_MESSAGES still checked for the old\n\"...creating SDL players.\" string, which no longer appears in the\nreceiver\u0027s output, so every e2e run failed with:\n\nAssertionError: False is not true : Missing log message:\n  Successfully negotiated a session, creating SDL players.\n\nUpdate the expected string to match the current log message.\n\nChange-Id: Ifcd76af92016b6f8b9afe4c3e27a0160e2d99a2f\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8280986\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "d2ac0441db92891f783bb29efc93d2dfc9d8c6e5",
      "tree": "7f6f2a839c32791327ef186ec3a065b0c0b9e3b8",
      "parents": [
        "922e4f83c54c9351544591a31d9dd27a009a237c"
      ],
      "author": {
        "name": "Austin Kim",
        "email": "augiekim@gmail.com",
        "time": "Thu Aug 20 05:48:21 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 24 16:43:53 2026"
      },
      "message": "[cast, standalone_sender] Improve STOP reliability\n\nLoopingFileCastAgent::Shutdown() could fail to notify the Cast\nReceiver\u0027s mirroring app to stop when the sender shuts down, leaving it\nrunning after the sender process had already exited. Two separate bugs\ncontributed:\n\n- The STOP message was sent using a VirtualConnection that had\n  already been unregistered by an earlier CloseRemoteConnection()\n  call for platform_remote_connection_. VirtualConnectionRouter::Send()\n  requires an active, registered connection for non-transport-namespace\n  messages (STOP uses kReceiverNamespace), so the send failed\n  immediately and deterministically whenever a session was active at\n  shutdown.\n\n- Even once STOP was sent while the connection was still registered,\n  the socket was closed immediately afterward.\n  TlsConnectionPosix::Send() only buffers bytes; the actual\n  SSL_write() happens later, off of a separate networking thread,\n  once it observes the socket is writable.\n  Destroying the connection right after queuing the message raced\n  against that flush, intermittently dropping the STOP before it ever\n  reached the wire.\n\nFix by splitting the sender-initiated stop request from local teardown:\n\n- LoopingFileCastAgent::RequestStop() sends STOP (while the platform\n  connection is still registered) and gives the receiver a bounded\n  500ms opportunity to confirm via a subsequent RECEIVER_STATUS,\n  using an Alarm scoped to the agent\u0027s lifetime.\n- LoopingFileCastAgent::Shutdown() is now pure local teardown -- no\n  network sends -- invoked once the receiver confirms, the timeout\n  elapses, or there was nothing to stop in the first place.\n- main.cc\u0027s shutdown path now calls RequestStop() and waits for it to\n  complete before destroying the agent, instead of destroying it\n  immediately.\n\nRequestStop() also guards against being meaningfully re-entered via\n`stop_requested_`: two independent callers invoking it in close\nsuccession (e.g. two different error paths firing back to back) could\notherwise see `app_session_id_` already cleared by the first call and\nfall through to Shutdown() immediately, closing the socket before the\nfirst call\u0027s STOP message had a chance to reach the wire. Relatedly,\n`app_session_id_` is now cleared in Shutdown() rather than as soon as\nRequestStop() sends STOP, so it stays accurate for the whole wait\nwindow -- otherwise a stale/duplicate RECEIVER_STATUS still echoing\nthe old session while a STOP is outstanding would be misread by\nHandleReceiverStatus() as a brand new session to adopt.\nBug: 548712145\nTest: End-to-end streaming tested with `cast_sender -n -v en5 ../../test/data/cast/bbb_sunflower_2160p_60fps_normal.mp4` to a Nest Hub device\nChange-Id: I1f227bcc1cf7c3061d068df2053362310a656fae\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8268574\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "922e4f83c54c9351544591a31d9dd27a009a237c",
      "tree": "bdc4c06b39d86742c1b2285ca17b05dc4c8b3f40",
      "parents": [
        "628bf7523e318587b3f9b00e1191861f40ed4006"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Mon Aug 17 21:57:03 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 20 22:32:42 2026"
      },
      "message": "[codehealth] Modernize std_util, flat_map, and hashing for C++20\n\nBug: openscreen:364687926\nChange-Id: Iedb14e5b081859529d484824d3080e706a5ae378\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8251398\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "628bf7523e318587b3f9b00e1191861f40ed4006",
      "tree": "e60a044eadc50dffc46eefb8af5cf945ceac7535",
      "parents": [
        "f64b6bfa47a406d3c744e0362dffc2e7122c6bae"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Thu Aug 20 18:43:43 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 20 21:46:45 2026"
      },
      "message": "[osp] Fix thread assertions and shutdown crashes in osp_demo\n\nThis CL fixes thread assertion failures and crashes in osp_demo by:\n\n1. Posting service Start(), Stop(), and interactive stdin commands to\nthe PlatformClientPosix TaskRunner thread.\n\n2. Fixing null delegate handling during QuicConnectionFactoryServer\nshutdown.\n\n3. Documenting TaskRunner thread affinity in OSP public lifecycle\nheaders.\n\n4. Adding an automated startup smoke test and an interactive ncurses\nsplit-screen terminal UI wrapper.\n\nFixed: 486276380\nChange-Id: I50b35be90c018830d093381053237380e448e526\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7982665\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "f64b6bfa47a406d3c744e0362dffc2e7122c6bae",
      "tree": "beaace2174831f954cd66cfc3ddd0f5cd0791196",
      "parents": [
        "2745d825222cf05f32434d76c13b4797df4ff549"
      ],
      "author": {
        "name": "mark a. foltz",
        "email": "mfoltz@chromium.org",
        "time": "Wed Aug 19 17:36:29 2026"
      },
      "committer": {
        "name": "Mark Foltz",
        "email": "mfoltz@chromium.org",
        "time": "Wed Aug 19 19:52:41 2026"
      },
      "message": "[openscreen] Add rust serde_json_lenient JSON encoding and decoding\n\nThis change introduces a Rust-based JSON parsing and serialization\nbackend using serde_json_lenient and cxx FFI bindings.\n\n- Add third_party/rust and rust_toolchain hooks to DEPS.\n- Add GN argument `use_json_serde` (default false) and USE_JSON_SERDE\n  build flag.\n- Implement streaming JSON parser and serializer in Rust using\n  serde_json_lenient and bridge to Json::Value via CXX.\n- Add unit tests covering nested structures, booleans, and roundtrip\n  serialization.\n\nFixed: openscreen:364820106\nChange-Id: Id10dbf588bb2f7b7f60607f067ed3ac4f4a53f7d\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8254590\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "2745d825222cf05f32434d76c13b4797df4ff549",
      "tree": "5d019757d1dd9f5eda601e4f9a3d1f67245cee1d",
      "parents": [
        "9852a520853aba0db9989153765184c2ec4eac08"
      ],
      "author": {
        "name": "Eusden Lin",
        "email": "eusdenlin@google.com",
        "time": "Tue Aug 18 05:00:25 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 04:52:44 2026"
      },
      "message": "[Cast Streaming] Enable HEVC in standalone receiver\n\nEnables the OpenScreen standalone receiver to negotiate and decode\nincoming H.264 and HEVC video streams, cleanup and optimize the decoding.\n\nKey changes:\n- Added kHevc to supported video codec constraints for mirroring negotiation.\n- Enabled PARSER_FLAG_COMPLETE_FRAMES for all video codecs.\n- Configured FF_THREAD_SLICE and AV_CODEC_FLAG_LOW_DELAY to eliminate\n  frame-buffering latency in H.264 / HEVC decoding.\n- Added input validation, zero-sized packet checks, and decode queue\n  flushing on error to prevent FrameId desynchronization.\n- Added unit tests for HEVC codec string round-trip.\n\nBug: 529461375\nBug: 529454832\nTest: cast_unittests --gtest_filter\u003d\"MessageFieldsTest.*\"\nTest: End-to-end streaming tested with standalone sender \u0026 receiver.\nChange-Id: I25bbd56931695d9e2a7ee94cd1cdb2dd4543e30d\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8212699\nReviewed-by: Shawn Quereshi \u003cshawnq@google.com\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "9852a520853aba0db9989153765184c2ec4eac08",
      "tree": "75045aef05daa7e494e2083c687c957373875db4",
      "parents": [
        "693e608ca4852ebbea0b63b8956a7a823707be5e"
      ],
      "author": {
        "name": "saralin",
        "email": "saralin@google.com",
        "time": "Tue Aug 11 13:06:22 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 19 01:19:50 2026"
      },
      "message": "[codehealth] Fix memory leak and error handling in certificate_utils.cc\n\nThis CL improves memory safety and error handling in certificate_utils:\n1. Wraps raw RSA pointers in bssl::UniquePtr in ImportRSAPrivateKey to\n   prevent memory leaks if subsequent assignment operations fail.\n2. Checks the return value of EVP_PKEY_assign_RSA and\n   ASN1_BIT_STRING_set_bit.\n3. Adds safety checks in GetSpkiTlv when extracting public keys from\n   incomplete/empty certificates.\n4. Adds dedicated unit tests in certificate_utils_unittest.cc verifying\n   graceful error handling on malformed keys and empty certificates.\n\nBug: openscreen:548337640\nChange-Id: Ia3d46e4ffcbd92f039707acc0441ca4c8d995937\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8237093\nReviewed-by: Shawn Quereshi \u003cshawnq@google.com\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Sara Lin \u003csaralin@google.com\u003e\n"
    },
    {
      "commit": "693e608ca4852ebbea0b63b8956a7a823707be5e",
      "tree": "22d19cb6abc6b6e35446e1c81622609d6fbca9de",
      "parents": [
        "e5cb6c746df4650bcc1c96a241ecc01906ee4c25"
      ],
      "author": {
        "name": "saralin",
        "email": "saralin@google.com",
        "time": "Tue Aug 11 14:47:42 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 18 10:42:26 2026"
      },
      "message": "[codehealth] Replace typedefs with using alias declarations in clock_offset_estimator\n\nThis CL replaces legacy typedef usages with modern C++11 `using` alias\ndeclarations in clock_offset_estimator_impl.h for better readability.\n\nBug: openscreen:548337640\nChange-Id: Ic90d19df828d6fde30334920961fc95f4a8193d0\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8240452\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Sara Lin \u003csaralin@google.com\u003e\nReviewed-by: Shawn Quereshi \u003cshawnq@google.com\u003e\n"
    },
    {
      "commit": "e5cb6c746df4650bcc1c96a241ecc01906ee4c25",
      "tree": "e7aa0e4b10b76f871f4e890e741762473c8c44df",
      "parents": [
        "fffe43589677baa674ffaeb671d729f52d94357b"
      ],
      "author": {
        "name": "saralin",
        "email": "saralin@google.com",
        "time": "Tue Aug 11 14:46:57 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 18 10:41:20 2026"
      },
      "message": "[codehealth] Replace std::bind with lambda in quic_test_support.cc\n\nThis aligns with Chromium\u0027s C++ code guidelines which prohibit std::bind\nin favor of modernized C++11 lambdas. It prevents unnecessary overhead\nand improves code readability.\n\nBug: openscreen:548337640\nChange-Id: I956a3ce572b1470ffc3d2647dee49a684a4bdba0\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8240611\nReviewed-by: Shawn Quereshi \u003cshawnq@google.com\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Sara Lin \u003csaralin@google.com\u003e\n"
    },
    {
      "commit": "fffe43589677baa674ffaeb671d729f52d94357b",
      "tree": "0bf2bc3af7dfc13c09ca59a364b456a7bfbee9b0",
      "parents": [
        "11e4e00008df90ce2914335869fbfbd572d24c77"
      ],
      "author": {
        "name": "Austin Kim",
        "email": "augiekim@gmail.com",
        "time": "Fri Aug 14 22:43:59 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 18 01:03:07 2026"
      },
      "message": "[openscreen] mdns: Defer socket Bind() to the task runner in MdnsServiceImpl\n\nMdnsServiceImpl\u0027s constructor called socket_v4_-\u003eBind() and\nsocket_v6_-\u003eBind() synchronously as its last step.\nUdpSocketPosix::Bind() itself asserts\nOSP_CHECK(task_runner_-\u003eIsRunningOnTaskRunner()), so this only worked if\nMdnsServiceImpl (and transitively ServiceDispatcher / DnsSdService,\nwhich callers reach via discovery::CreateDnsSdService()) happened to be\nconstructed from a task already running on the task runner. Callers that\nconstructed it directly (e.g. from a normal function scope, not from\ninside a posted task) hit that check and crashed.\n\nFix by checking task_runner_-\u003eIsRunningOnTaskRunner() before binding: if\nconstruction is already happening on the task runner, bind immediately;\notherwise post the bind to the task runner. This keeps the common case\n(construction already on the task runner) synchronous instead of\nunconditionally deferring it, while still guaranteeing Bind() only ever\nruns on the task runner regardless of which thread/context constructs\nthe service.\n\nChange-Id: Ice1dce7f8002c3a82f3fed55ee152ce2591579e9\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8254500\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "11e4e00008df90ce2914335869fbfbd572d24c77",
      "tree": "f3b9914b411b07df8ed977aeaefdf9064b0e14b3",
      "parents": [
        "876b5381036e91ca05e21b1446f453ebccfc3acf"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Thu Aug 13 20:46:43 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Aug 14 22:19:39 2026"
      },
      "message": "[codehealth] Replace StringFormat with std::format and move HexEncode to string_util\n\n- Replaced all StringFormat calls with native C++20 std::format and\n  removed the temporary wrapper, addressing crbug.com/364687926.\n- Moved optimized HexEncode implementation and tests into\n  util/string_util.h and util/string_util_unittest.cc.\n- Deleted util/stringprintf.h, util/stringprintf.cc, and\n  util/stringprintf_unittest.cc and removed them from util/BUILD.gn.\n- Cleaned up stringprintf.h includes across the codebase.\n\nBug: openscreen:364687926\nChange-Id: Ia5060615448e8173514f92e513d263e6a0ddef85\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8249641\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "876b5381036e91ca05e21b1446f453ebccfc3acf",
      "tree": "6d2d574aae261a9a7bfaf92a9f353569886f38d9",
      "parents": [
        "12a73797f62ab16c1767199a156a97620c91b6ec"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Thu Aug 13 18:52:26 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 13 20:00:31 2026"
      },
      "message": "[codehealth] Modernize string_util with C++20 and remove nested namespace\n\n- Replaced 768-byte lookup tables with constexpr branchless ASCII\n  classification and case conversion functions.\n\n- Made EqualsIgnoreCase constexpr inline in the header using\nstd::ranges::equal.\n\n- Added StripTrailingAsciiWhitespace and StripAsciiWhitespace.\n\n- Added variadic StrCat overloads and in-place StrAppend.\n\n- Replaced std::views::split + filter pipeline with single-pass Split\nsupporting SplitResult options, and added zero-allocation SplitOnce and\nRSplitOnce.\n\n- Optimized Join for string/string_view ranges with single allocation\nand precalculated capacity (avoiding std::stringstream), and fixed\nrange.front() concept requirement to support any input_range.\n\n- Removed the nested openscreen::string_util namespace and migrated\nutilities directly into namespace openscreen, updating all call sites.\n\n- Cleaned up unused string_util.h includes.\n\n- Added comprehensive unit tests and static_assert constexpr checks.\n\nBug: openscreen:364687926\nChange-Id: I27a6d7d59be069b92a740f9b7913e4afd889ae2d\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8252378\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "12a73797f62ab16c1767199a156a97620c91b6ec",
      "tree": "3692aaafdb3760fdf2b215b9b462d84a0945d167",
      "parents": [
        "4deaa176aee806ddf9609170d894cf418f3bd671"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Wed Aug 12 23:15:50 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 13 19:01:44 2026"
      },
      "message": "[codehealth] Modernize string_parse with C++20 concepts and remove nested namespace\n\nBug: openscreen:364687926\nChange-Id: I7b33d6bd13a6207095c37d9f5f3714ec7c9c5064\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8252379\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Taesun Yeoum \u003ctaesuny@google.com\u003e\n"
    },
    {
      "commit": "4deaa176aee806ddf9609170d894cf418f3bd671",
      "tree": "dc9f0a98bdd440303e498d6fa202a05687cf6ea5",
      "parents": [
        "85cef41806bf24d6b55788f78e0f365466eb538d"
      ],
      "author": {
        "name": "Austin Kim",
        "email": "augiekim@gmail.com",
        "time": "Wed Aug 12 20:18:16 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 13 01:16:59 2026"
      },
      "message": "[openscreen] Fix use of invalidated iterator in DnsDataGraph::Node dtor\n\nNode::~Node() iterated `children_` with a range-based for loop while\ncalling RemoveChild() on each element, but RemoveChild() erases from\nthat same vector. Mutating a vector while range-for iterating it\ninvalidates the loop\u0027s cached iterator, causing children to be\nskipped or a stale pointer to be passed back into RemoveChild(),\nwhich then fails its OSP_CHECK(it !\u003d children_.end()) invariant.\n\nThis was reachable in practice whenever a node with two or more\nchildren was torn down, e.g. tearing down a PTR node for a service\ntype that had multiple discovered instances, which happens during\nDnsSdServiceWatcher::StopDiscovery() and crashed the process.\n\nFix by popping from the back of `children_` in a while loop instead\nof range-for iterating it, so RemoveChild() is free to mutate the\nvector each iteration without invalidating anything still in flight.\n\nChange-Id: Ib45741e87a800fd396758d9ffd29808be1c3eac5\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8248339\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "85cef41806bf24d6b55788f78e0f365466eb538d",
      "tree": "460fb7b120adc8e66a56ac9ee3b868b5fb9faa51",
      "parents": [
        "e4ed3945ffce0de7a3482f003e755004547af151"
      ],
      "author": {
        "name": "Jiewei Qian",
        "email": "qjw@chromium.org",
        "time": "Fri Jul 24 03:34:25 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 13 00:24:42 2026"
      },
      "message": "mark getopt as a fork\n\nBug: 538358806\nChange-Id: I71522d1a288fda60c0a05d0d260e2bdacb4e9393\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8137565\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jiewei Qian \u003cqjw@chromium.org\u003e\n"
    },
    {
      "commit": "e4ed3945ffce0de7a3482f003e755004547af151",
      "tree": "144f6c7fd426bfd13065a582b7fb1af5694cb7ab",
      "parents": [
        "b05cd00141a3831c059f42edd68cf6d455d7b67a"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Fri Aug 07 00:32:53 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 10 22:23:48 2026"
      },
      "message": "[openscreen] Fix flakiness in ScopedWakeLockLinuxTest\n\nThis change resolves flakiness in ScopedWakeLockLinuxTest when running\nopenscreen_unittests across parallel test processes (such as on Chromium\ntest bots):\n\n1. Rename test fixture to ScopedWakeLockLinuxTest to match the\n   implementation file and platform-specific test naming conventions.\n\n2. Use unique temporary file paths per test process and test case in\n   ScopedWakeLockLinuxTest::SetUp() to prevent file collision and\n   clobbering across parallel test workers.\n\n3. Invoke ScheduleHeartbeat() directly in ScopedWakeLockLinux\n   constructor instead of posting a task with a raw \"this\" pointer,\n   avoiding potential use-after-free if destroyed before the posted task\n   executes.\n\nBug: openscreen:288311411, openscreen:492683133\nChange-Id: I9d34b0c327ff554ca0aceb01c940bdbe11778c62\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8220327\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "b05cd00141a3831c059f42edd68cf6d455d7b67a",
      "tree": "f9636f5d1ba608576aec33219fd443da406117e0",
      "parents": [
        "7b6aa355d37ec35a197e42d7f0c487769d6c493d"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Thu Jul 30 23:18:25 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Aug 06 18:50:10 2026"
      },
      "message": "[openscreen] Implement ScopedWakeLock on Linux using sysfs\n\nThis change implements the ScopedWakeLock interface for Linux using a\nrobust, dependency-free timed wake lock and heartbeat renewal mechanism.\n\nFixed: 288311411,492683133\nChange-Id: I178f9ba263dd8e0ad5e3984b35eaf511c97812ce\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814282\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "7b6aa355d37ec35a197e42d7f0c487769d6c493d",
      "tree": "8d203a6d8a8442002b512e8f52e8676075b16231",
      "parents": [
        "f63cca52949ee682c060ee0431fde982496713b2"
      ],
      "author": {
        "name": "Jon Mann",
        "email": "jonmann@chromium.org",
        "time": "Wed Aug 05 00:07:46 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 05 00:47:36 2026"
      },
      "message": "[openscreen] Configure Sender maximum in-flight media duration.\n\nImplements and option for clients to override\nmax_in_flight_media_duration on the sender\u0027s\nSenderSession::Configuration. This enables receivers with custom\nbuffering strategies to adjust this value independently.\n\nBug: b/532185030\nChange-Id: I9112b4a1b2c62c2508e9989033ff971764309531\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8180323\nCommit-Queue: Jon Mann \u003cjonmann@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "f63cca52949ee682c060ee0431fde982496713b2",
      "tree": "36676e5105b6864f63169cdda3a0b78aa5e97d00",
      "parents": [
        "993fb607cb05ca6ca1572327dbeb34b6412cd214"
      ],
      "author": {
        "name": "Jon Mann",
        "email": "jonmann@chromium.org",
        "time": "Wed Aug 05 00:08:22 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 05 00:28:09 2026"
      },
      "message": "[openscreen] Notify observers of packet retransmissions.\n\nUpdates Sender::Observer with a new virtual method:\n\n    OnPacketsRetransmitted(int count)\n\nAfter NACKs are processed we now detect when a packet has been sent multiple times and notify registered observers.  This allows clients to have more precise insight into congestion, packet loss, and general network health.\n\nBug: b/532185030\nChange-Id: I6cbc85e6267b1aeedcf0b11bbdc664fd4362ea1d\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8177869\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Jon Mann \u003cjonmann@chromium.org\u003e\n"
    },
    {
      "commit": "993fb607cb05ca6ca1572327dbeb34b6412cd214",
      "tree": "8530f369132c884aa5e77a03d5310f2651faf78b",
      "parents": [
        "8ec979213ab52f7df4e409194a7f6f6daf564504"
      ],
      "author": {
        "name": "Taesun Yeoum",
        "email": "taesuny@google.com",
        "time": "Tue Aug 04 23:31:20 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Aug 05 00:11:41 2026"
      },
      "message": "WebTransport 3/7: Move OSP QUIC adapters to platform/impl/quic\n\nMove generic QUIC adapters (alarm factory, packet writer, utils, constants) from osp/impl/quic to platform/impl/quic so they can be shared between OSP and WebTransport implementations.\n\nBypass-Check-License: Moved files from osp/impl/quic\nTAG\u003dagy\nCONV\u003de7033504-9617-4ac9-9724-d5ad0898be6e\n\nChange-Id: I3df3de16198ad3b16b17eaa4524f8a62e91a299f\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7934457\nCommit-Queue: Taesun Yeoum \u003ctaesuny@google.com\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "8ec979213ab52f7df4e409194a7f6f6daf564504",
      "tree": "3bd9941e9d74d52838dadde45829a8ae9654d2fc",
      "parents": [
        "1b7871ab89112987fa0080f8d30438114a0a19ce"
      ],
      "author": {
        "name": "Jon Mann",
        "email": "jonmann@chromium.org",
        "time": "Tue Aug 04 02:06:25 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 04 23:43:19 2026"
      },
      "message": "[openscreen] Support proactive PLI requests for stalled receivers.\n\nIntroduces an optional mechanism for receivers to request Picture Loss\nIndicators (PLIs) when they are stalled waiting for late, incomplete\nframes. This allows the receiver to recover from heavy packet loss\nwithout waiting for standard transmission timeouts.\n\nTo avoid network storming during prolonged outages, these proactive PLIs\nare rate-limited via `receiver_proactive_pli_interval`. This behavior is\nopt-in (disabled by default) to preserve existing OpenScreen behavior.\n\nAdditionally, this CL adds an optional Sender-side timeout\n(`sender_keyframe_cooldown`), which limits how long the Sender will\nignore incoming PLIs after dispatching a key frame. This allows the\nSender to honor subsequent PLIs and encode a new key frame if the\noriginal was lost in flight.\n\nBug: b/532185030\nChange-Id: I79ce91ed7ea3723085f59510c0c9bb7fde2b60ad\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8180226\nCommit-Queue: Jon Mann \u003cjonmann@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "1b7871ab89112987fa0080f8d30438114a0a19ce",
      "tree": "9b6ef21845fbafd8c376256c6fc186a0a0ab8ed1",
      "parents": [
        "d06a113ef8d4143b96d137dda38da1ee0e7ee3c8"
      ],
      "author": {
        "name": "Jon Mann",
        "email": "jonmann@chromium.org",
        "time": "Tue Aug 04 03:36:29 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 04 23:39:04 2026"
      },
      "message": "[openscreen] Process Receiver queue with two-pass logic to prevent head-of-line blocking.\n\nUpdates ReceiverImpl::AdvanceToNextFrame to use a two-pass logic.\nThe first pass scans for a ready frame (independent and complete),\nallowing the receiver to skip over older frames that may be missing\npacket 0 and thus their estimated_capture_time.\n\nThe second pass processes incomplete/late frames as before.\nAlso removes a pedantic OSP_CHECK in DropAllFramesBefore that would crash the receiver\nif an older frame was skipped while missing packet 0.\n\nIncludes unit test coverage for the simplified skipping logic.\n\nBug: b/532185030\nChange-Id: I4133b031ca5c268e6ed8f71ebb4c3d7b2ec29057\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8180284\nCommit-Queue: Jon Mann \u003cjonmann@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "d06a113ef8d4143b96d137dda38da1ee0e7ee3c8",
      "tree": "9bd21f7113a8bc9c9cf4400de643597678ad0583",
      "parents": [
        "1e2b98a9647d44083f465395e0ec5ec86c213a3b"
      ],
      "author": {
        "name": "Taesun Yeoum",
        "email": "taesuny@google.com",
        "time": "Tue Aug 04 21:19:57 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 04 21:26:02 2026"
      },
      "message": "WebTransport 2/7: Platform API Definition\n\nIntroduce abstract WebTransport platform API in platform/api/web_transport.h.\n\nTAG\u003dagy\nCONV\u003de7033504-9617-4ac9-9724-d5ad0898be6e\n\nChange-Id: If73a1ddbbdcdfc83a5847ebef2896bfdc57e360d\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7934456\nCommit-Queue: Taesun Yeoum \u003ctaesuny@google.com\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "1e2b98a9647d44083f465395e0ec5ec86c213a3b",
      "tree": "b127ca44064e7fadad241453379426c763fe4642",
      "parents": [
        "04a10ebab30fc20d41becc27afbbda1a83e16a4c"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Wed Jul 01 22:19:25 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 04 19:56:49 2026"
      },
      "message": "Roll tinycbor from d393c16f3eb3 to 9441b2ca882f (100 revisions)\n\nThis rolls tinycbor to 0.7.0 and fixes Open Screen build files:\n- Adds dynamic generation of tinycbor-version.h and tinycbor-export.h\n  using GN generated_file and an action script parsing CMakeLists.txt.\n- Fixes raw_ptr const_cast issue in streaming_playback_controller.cc.\n- Adds tinycbor as a public_dep of osp/msgs to forward include dirs.\n\nChange-Id: Icd4e4a47d46dd4cccf192d291c1779b068f74421\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8033102\nReviewed-by: Thomas Guilbert \u003ctguilbert@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "04a10ebab30fc20d41becc27afbbda1a83e16a4c",
      "tree": "eca05dbf6d41b7f140c3c2877a5db903b7c09581",
      "parents": [
        "403a6f14ad9f6d06ab30c7fe01784f47acd9a438"
      ],
      "author": {
        "name": "Taesun Yeoum",
        "email": "taesuny@google.com",
        "time": "Mon Aug 03 22:46:24 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 04 19:28:50 2026"
      },
      "message": "Add data_transport to Offer\n\nBug: 501521717\nTAG\u003dagy\nCONV\u003de7033504-9617-4ac9-9724-d5ad0898be6e\n\nChange-Id: I0edba010372f685de3564cf09c20840f1afd97f4\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7906544\nCommit-Queue: Taesun Yeoum \u003ctaesuny@google.com\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "403a6f14ad9f6d06ab30c7fe01784f47acd9a438",
      "tree": "650e1b5ae0621d5805024538904ce9a6a58ce7a6",
      "parents": [
        "a1c0929c109c19d705046a77ae42c7c5a26f4d3b"
      ],
      "author": {
        "name": "Giovanni Ortuño Urquidi",
        "email": "ortuno@chromium.org",
        "time": "Thu Jul 30 17:57:17 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 04 14:00:13 2026"
      },
      "message": "Reland \"lpm: Remove legacy fuzzable proto implementation\"\n\nThis is a reland of commit 3ea90296ee24d81337484b57d962fdacf80683d5\n\nThe original CL was reverted because the two precursor CLs hadn\u0027t yet\nlanded in Chromium. The CLs have landed so this should be safe to land\nnow. I verified locally that the fuzzers compile and run successfully on\nchromium head with this CL.\n\nThere are no changes from the original CL.\n\nOriginal change\u0027s description:\n\u003e lpm: Remove legacy fuzzable proto implementation\n\u003e\n\u003e Now that chromium has removed all instances of legacy fuzzable protos\n\u003e we can remove support in openscreen.\n\u003e\n\u003e Bug: 505034799\n\u003e Change-Id: I98662d72ada0f995151bb546f8d4d95d525cf2fa\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8177905\n\u003e Reviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n\u003e Commit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n\nBug: 505034799\nChange-Id: Ifad075839d1ed946d441e77181697972943bc6f7\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8184390\nCommit-Queue: Giovanni Ortuno Urquidi \u003cortuno@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "a1c0929c109c19d705046a77ae42c7c5a26f4d3b",
      "tree": "3527c274843a3518f222cc6495b25abe83092dc8",
      "parents": [
        "cf926f61e535a731d0f31f9dcca8a56f1a2fd9af"
      ],
      "author": {
        "name": "Jon Mann",
        "email": "jonmann@chromium.org",
        "time": "Fri Jul 31 19:08:40 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Aug 04 02:09:48 2026"
      },
      "message": "[openscreen] Allow configuration of UDP buffer sizes.\n\nAdds configuration options for SetSendBufferSize and\nSetReceiveBufferSize to SenderSession, passing them directly to the\nEnvironment UDP socket.\n\nBug: b/532185030\nChange-Id: I506136c3c9198e66e1ed92ca2eee9b04bf13ac4a\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8177868\nCommit-Queue: Jon Mann \u003cjonmann@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "cf926f61e535a731d0f31f9dcca8a56f1a2fd9af",
      "tree": "7e16c0c7e22a100f5822d810d3e3125ac8185de8",
      "parents": [
        "7b677044b816b2837bd546514c0be6072a4f1ac7"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Mon Aug 03 19:06:45 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 03 22:14:17 2026"
      },
      "message": "[codehealth] Add Muyao Xu to AUTHORS and clean up OWNERS\n\n1. Add Muyao Xu to the AUTHORS file.\n2. Remove the non-standard \"Former OWNERS\" section from the root OWNERS file.\n\nChange-Id: I0a29ded56e791294f4cfc88ecaad7f2f8886d8bf\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8186618\nReviewed-by: Thomas Guilbert \u003ctguilbert@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "7b677044b816b2837bd546514c0be6072a4f1ac7",
      "tree": "0f79fdee4a3b3f8650470254710dafbce82755e9",
      "parents": [
        "3ea90296ee24d81337484b57d962fdacf80683d5"
      ],
      "author": {
        "name": "Giovanni Ortuno Urquidi",
        "email": "ortuno@chromium.org",
        "time": "Mon Aug 03 19:30:00 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 03 19:42:30 2026"
      },
      "message": "Revert \"lpm: Remove legacy fuzzable proto implementation\"\n\nThis reverts commit 3ea90296ee24d81337484b57d962fdacf80683d5.\n\nReason for revert: Required changes in Chromium haven\u0027t landed yet,\nso this is stopping the openscreen roll.\n\nFailure Link: https://chromium-review.git.corp.google.com/c/chromium/src/+/8187177\n\nOriginal change\u0027s description:\n\u003e lpm: Remove legacy fuzzable proto implementation\n\u003e\n\u003e Now that chromium has removed all instances of legacy fuzzable protos\n\u003e we can remove support in openscreen.\n\u003e\n\u003e Bug: 505034799\n\u003e Change-Id: I98662d72ada0f995151bb546f8d4d95d525cf2fa\n\u003e Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8177905\n\u003e Reviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n\u003e Commit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n\nBug: 505034799\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: I60cb6fc3233073c65baba0245a505581bf2e38ba\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8186678\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "3ea90296ee24d81337484b57d962fdacf80683d5",
      "tree": "17d91d5895024012d6f179aabab115feb7e98506",
      "parents": [
        "920129874c16365415a8a52fdbbc492d7623dc11"
      ],
      "author": {
        "name": "Giovanni Ortuño Urquidi",
        "email": "ortuno@chromium.org",
        "time": "Thu Jul 30 17:57:17 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Aug 03 17:55:17 2026"
      },
      "message": "lpm: Remove legacy fuzzable proto implementation\n\nNow that chromium has removed all instances of legacy fuzzable protos\nwe can remove support in openscreen.\n\nBug: 505034799\nChange-Id: I98662d72ada0f995151bb546f8d4d95d525cf2fa\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8177905\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "920129874c16365415a8a52fdbbc492d7623dc11",
      "tree": "0f79fdee4a3b3f8650470254710dafbce82755e9",
      "parents": [
        "72a3d04d1f8d99d9419bbd44d502c58346ac8f59"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Fri Jul 31 22:08:17 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jul 31 23:14:34 2026"
      },
      "message": "[cast_streaming] Validate payload size in ParseApplicationDefined\n\nCompoundRtcpParser::ParseApplicationDefined consumed two uint32_t fields\n(sender_ssrc and name) without verifying that the APP payload contained\nat least 8 bytes (2 * sizeof(uint32_t)). A malformed RTCP APP packet\nwith only 1 word payload caused an un-checked 4-byte heap out-of-bounds\nread.\n\nThis change:\n1. Rejects APP packets in ParseApplicationDefined if the payload buffer\n   size is less than 2 * sizeof(uint32_t).\n2. Adds OSP_CHECK_GE to ConsumeField in packet_util.h to enforce bounds\n   checks as a defense-in-depth safety measure.\n3. Adds a unit test in compound_rtcp_parser_unittest.cc for short APP payloads.\n\nBug: 506942984\nChange-Id: I043e6163df3ebd164a306792e956ee1618d2f0da\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8183673\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Ted (Chromium) Meyer \u003ctmathmeyer@chromium.org\u003e\n"
    },
    {
      "commit": "72a3d04d1f8d99d9419bbd44d502c58346ac8f59",
      "tree": "ba101b45b21e9335079ba40bd5b0cde115df5450",
      "parents": [
        "36124b0d8cd4281fb35ffedb9119c5dbf16858b9"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Fri Jul 31 18:26:52 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jul 31 20:12:29 2026"
      },
      "message": "[cast_streaming] Add synthetic streaming workflow and ASCII player for NoLibs mode\n\nAdd a zero-dependency synthetic streaming workflow so that cast\nend-to-end tests (standalone_e2e.py) can execute successfully in\nout/NoLibs mode when external media libraries (FFmpeg, libvpx, libopus,\nlibsdl2) are missing.\n\n1. Implement SyntheticFileSender generating in-memory 64x48 bouncing\nsquare video frames and silent audio PCM frames at 30 FPS.\n\n2. Add ASCII art terminal rendering to DummyPlayer on keyframes.\n\n3. Call receiver.ReportPlayoutEvent in DummyPlayer::OnFramesReady to\npopulate playout statistics over RTCP.\n\n4. Programmatically verify both TCP control (8010) and UDP streaming\n(2344) port availability in standalone_e2e.py before launching binaries.\n\nFixed: 527285086\nChange-Id: I1a8d7f87fea991187865eecafd8d7dc3891c444f\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7988888\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Thomas Guilbert \u003ctguilbert@chromium.org\u003e\n"
    },
    {
      "commit": "36124b0d8cd4281fb35ffedb9119c5dbf16858b9",
      "tree": "6467a86f38b269a29790c3ebcbca083cfa35359c",
      "parents": [
        "c1f083f06f39487ec16292a29f4744525370538b"
      ],
      "author": {
        "name": "Giovanni Ortuño Urquidi",
        "email": "ortuno@chromium.org",
        "time": "Thu Jul 30 17:32:43 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jul 31 19:20:30 2026"
      },
      "message": "lpm: Use new fuzzable protos for chromium fuzzers\n\nThe new fuzzable protos can be used in non-fuzzing builds and unblock\nthe migration to FUZZ_TEST.\n\nTo match chromium, the CL also rolls lpm to the latest version,\nimplements use_experimental_fuzzable_proto in openscreen\u0027s\nfuzzable_proto_library.gni and adds `force_component` to\nproto_library.gni\n\n1. https://crrev.com/c/8162212 lpm: Disable some cast fuzzers to unblock\nupstream proto changes [chromium repo]\n\n2. https://crrev.com/c/8164877 lpm: Use new fuzzable protos for chromium\nfuzzers [this cl]\n\n3.https://crrev.com/c/8165141 lpm: Re-enable cast fuzzers and migrate to\nnew fuzzable protos [chromium repo]\n\nBug: 505034799\nChange-Id: Ia3bcc3a1bdc2b4efa16110c25624308f758f5d9d\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8164877\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Giovanni Ortuno Urquidi \u003cortuno@chromium.org\u003e\n"
    },
    {
      "commit": "c1f083f06f39487ec16292a29f4744525370538b",
      "tree": "b5f52b8b39ed5f3112ab7a3ac6ba9ee4fc84f3bf",
      "parents": [
        "8eebe0e222f2ad5f9b22422701b9153fadd36d11"
      ],
      "author": {
        "name": "Giovanni Ortuño Urquidi",
        "email": "ortuno@chromium.org",
        "time": "Wed Jul 29 19:09:57 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Jul 29 22:21:50 2026"
      },
      "message": "chromium: Fix dangling ptr issues that came up in chromium\n\nThis last few fixes should unblock the chromium auto roller.\n\nBug: 520101123\nChange-Id: I61f9edc34ce09c21cfe568c97fd147ed98f0a0ef\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8166602\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "8eebe0e222f2ad5f9b22422701b9153fadd36d11",
      "tree": "9d677ff9d4608368822d70d99d0a7fea806cd5c4",
      "parents": [
        "cafe3d67cc538dac02208a64b255cf675240b685"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Wed Jul 29 18:21:19 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Jul 29 19:25:04 2026"
      },
      "message": "[codehealth] Fix remaining raw_ptr issues and GCC build compatibility\n\nThis migrates remaining raw pointer class members in cast/ to\nraw_ptr\u003cT\u003e:\n- VirtualConnectionRouter::endpoints_\n- Decoder::codec_ and Decoder::client_\n- CastRuntime::task_runner_\n\nAnd fixes raw pointer issues causing the autoroller to fail.\n\nBug: 520101123\nChange-Id: I60d22e4b7b531d0de963dda7ad7dd4545985dc04\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8165481\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Giovanni Ortuno Urquidi \u003cortuno@chromium.org\u003e\n"
    },
    {
      "commit": "cafe3d67cc538dac02208a64b255cf675240b685",
      "tree": "9749b2e5373339b8e1fa0850ab1b0a33ff68716e",
      "parents": [
        "b28cd90a53f5aed850b00ef66cd6b177853e0f5a"
      ],
      "author": {
        "name": "Giovanni Ortuño Urquidi",
        "email": "ortuno@chromium.org",
        "time": "Mon Jul 27 21:03:18 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Jul 29 14:04:20 2026"
      },
      "message": "lpm: Remove unnecessary openscreen fuzzable targets\n\nThe openscreen fuzzers don\u0027t use LPM so the openscreen proto targets\ndon\u0027t need to be fuzzable.\n\nBug: 505034799\nChange-Id: Id533dd996e89cfb538952aa971e79c38591dbedc\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8158717\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Giovanni Ortuno Urquidi \u003cortuno@chromium.org\u003e\n"
    },
    {
      "commit": "b28cd90a53f5aed850b00ef66cd6b177853e0f5a",
      "tree": "1b65c51bfff0fedc3a77b508d75b048108dee2af",
      "parents": [
        "b5a3245411cb037931742f4c5523371b34d4c4a3"
      ],
      "author": {
        "name": "saralin",
        "email": "saralin@google.com",
        "time": "Wed Jul 22 07:22:35 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jul 28 23:23:20 2026"
      },
      "message": "Fix null-pointer dereference in TlsConnectionFactory Posix\n\nSSL_get_peer_certificate can return nullptr if the opposing client does not\nprovide a certificate (which is standard behavior for simple connecting tests).\nWhen it returned nullptr, it caused a fatal segmentation fault due to a missing\nnull check prior to dereferencing the X509 pointer.\n\nThis patch adds a basic null check returning Error::Code::kErrCertsMissing.\n\nBug: None\nChange-Id: Ibfda50c990210f67b4d53fff1c8b6236b3501c37\nFixes: None\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8130184\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Shawn Quereshi \u003cshawnq@google.com\u003e\n"
    },
    {
      "commit": "b5a3245411cb037931742f4c5523371b34d4c4a3",
      "tree": "374afd33095caa797fc4358555f13447f36005cf",
      "parents": [
        "b13215d275c0c1661cf3d7c19f55ad7f59020938"
      ],
      "author": {
        "name": "saralin",
        "email": "saralin@google.com",
        "time": "Wed Jul 22 08:21:09 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jul 28 23:17:29 2026"
      },
      "message": "platform: Add SO_REUSEADDR to StreamSocketPosix::Bind\n\nPrevents TCP server sockets from getting stuck in TIME_WAIT and failing consecutive re-binds during local testing teardowns.\n\nChange-Id: Ic00232b4996f12474a89ed30734227ab95a3cb3c\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/8129964\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Shawn Quereshi \u003cshawnq@google.com\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "b13215d275c0c1661cf3d7c19f55ad7f59020938",
      "tree": "9814950c54b7067687826abd32602e28c6825288",
      "parents": [
        "07a9755906e1591b31192bc56b72caa1730cba49"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Wed Jun 24 05:51:45 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Jul 16 22:44:55 2026"
      },
      "message": "[cast_streaming] Clamp video recommendations independently\n\nThis ensures that video capture recommendations are well-ordered by\nclamping the minimum width and height independently against the maximum.\nThis prevents the unintentional increase of one dimension when the\nother is clamped, which could happen when using IsSupersetOf().\n\nAdded a regression test to verify independent clamping.\n\nChange-Id: I49769573401fcb2cc1e0a55666664fbd8d267f3e\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7947625\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Eugene Zemtsov \u003ceugene@chromium.org\u003e\n"
    },
    {
      "commit": "07a9755906e1591b31192bc56b72caa1730cba49",
      "tree": "ebf8dd3f5cc6b137f4fd3630ceed345a2bcc5848",
      "parents": [
        "c5c0d60ba99aee55949670957baf51dbde9d572b"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Wed Jun 24 05:56:52 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Jun 29 18:30:13 2026"
      },
      "message": "[infra] Enable Chrome plugins for chromium builders in Open Screen CQ\n\nThis enables clang_use_chrome_plugins \u003d true for the chromium_* embedder\nbots (chromium_linux_x64, chromium_mac_arm64, chromium_win_x64) in\nmain.star.\n\nPreviously, these builders ran with clang_use_chrome_plugins \u003d false,\npreventing raw pointer analysis (raw_ptr_plugin) from running during\nOpen Screen CQ checks. Any introduced raw pointer issues in Open Screen\nheaders or code would pass Open Screen CQ and break the autoroller\ndownstream on Chrome\u0027s bots.\n\nBUG: 520101123\nChange-Id: Ic3b68234e305612ab6bd1752bc09b827f1a58537\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7988669\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "c5c0d60ba99aee55949670957baf51dbde9d572b",
      "tree": "432eca0abb743ab81ba56d1eb8ea1e75b31cd550",
      "parents": [
        "10e24ed8908a28ef75df59da9c329301aa9a1d86"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Wed Jun 24 05:04:50 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Jun 24 18:27:03 2026"
      },
      "message": "[codehealth] raw_ptr migration: final cleanup and roll fixes\n\nThis migrates remaining raw pointer class members and containers to use\nraw_ptr\u003cT\u003e, addressing issues exposed during the latest Chromium roll.\nThis includes fixes across cast/, discovery/, osp/, and platform/\ntargets.\n\nImplementation files were updated to match the new raw_ptr types,\nincluding using .get() where required for explicit pointer access.\n\nBug: 520101123\nChange-Id: Id1111b8b35866dd0e5439c89b7ba43da6edae3c5\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7988896\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "10e24ed8908a28ef75df59da9c329301aa9a1d86",
      "tree": "9c1ed8e6f2506aee7ebf3111dd1ff8ccd229adb4",
      "parents": [
        "afe972c11a1795bec397d703030395a79e8bc41f"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue Jun 23 01:58:45 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jun 23 20:57:19 2026"
      },
      "message": "[codehealth] raw_ptr phase 3: cast/\n\nThis migrates raw pointer and raw reference struct/class fields across\ncast/ targets to use raw_ptr\u003cT\u003e and raw_ref\u003cT\u003e.\n\nThis represents Phase 3 of progressive raw pointer migration across Open\nScreen.\n\nBYPASS_LARGE_CHANGE_WARNING: clang-generated refactor already broken up into six CLs.\nBug: 520101123\nChange-Id: Ied3b72e659a8b0d924cdc903aa35c5571201eb6b\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7960380\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "afe972c11a1795bec397d703030395a79e8bc41f",
      "tree": "a1c39c0734df759bc3ee7b30b088e64cfdc003d5",
      "parents": [
        "88c95ecdc7671b7a04a6480095fd1f55039fb5fc"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Thu Jun 18 01:15:33 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jun 23 00:44:47 2026"
      },
      "message": "[codehealth] raw_ptr phase 4: discovery/\n\nThis migrates raw pointer and raw reference struct/class fields in\ndiscovery/ targets to use raw_ptr\u003cT\u003e and raw_ref\u003cT\u003e.\n\nThis represents Phase 4 of progressive raw pointer migration across Open\nScreen.\n\nBug: 520101123\nChange-Id: I0b101449e264383247b197a3c0b1bb9d92359391\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7960778\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "88c95ecdc7671b7a04a6480095fd1f55039fb5fc",
      "tree": "403f59f46f9d44b92a5cdbcef344661688d5c754",
      "parents": [
        "1b3e73cd987ab9eee013450ad339305c73b2a75c"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue Jun 16 00:04:42 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jun 23 00:17:08 2026"
      },
      "message": "[cast_streaming] React faster to Sender round-trip-time spikes\n\nPreviously, Sender smoothed its round-trip-time estimate with a\nsymmetric EWMA (1/8 weight to each new measurement), which reacts\nequally slowly in both directions. As a result the Sender was slow to\nnotice a sudden RTT increase (congestion onset) and back off.\n\nReplace it with an asymmetric \"fast attack, slow decay\" filter: weight\nan upward measurement at 1/2 so the estimate climbs quickly toward a\nspike, but keep the 1/8 weight on downward measurements so a single low\nsample does not collapse the estimate. The smoothing is extracted into a\nstatic SmoothRoundTripTime() helper and unit-tested directly.\n\nThis pairs with the dynamic in-flight allocation change (b/498035450): a\nfaster-rising RTT estimate makes the Sender reduce its in-flight budget\nsooner under congestion.\n\nBug: 498036656\nChange-Id: I933db6cf8d3c15dd1c55413b611c9ae6e3bca635\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7947621\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "1b3e73cd987ab9eee013450ad339305c73b2a75c",
      "tree": "ca1d6cc61b40a4b3ef3cb1392ee408929d45b4f5",
      "parents": [
        "5df15a39ceed7f8b6d14aa9d744c81b2530696ad"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Thu Jun 18 01:16:27 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jun 19 02:01:11 2026"
      },
      "message": "[codehealth] raw_ptr phase 5: osp/\n\nThis migrates raw pointer and raw reference struct/class fields in osp/\ntargets to use raw_ptr\u003cT\u003e and raw_ref\u003cT\u003e.\n\nThis represents Phase 5 of progressive raw pointer migration across Open\nScreen.\n\nBug: 520101123\nChange-Id: I7c5e3eaccfbc5f33eed25db691865ee3b25c38c9\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7960779\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "5df15a39ceed7f8b6d14aa9d744c81b2530696ad",
      "tree": "b6e023c83961e676273b9d6218c7505d4d467d0d",
      "parents": [
        "9732a5d77a01f05e7c4e8c79104d27f4f2358f9f"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Thu Jun 18 02:01:15 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jun 19 01:44:36 2026"
      },
      "message": "[codehealth] raw_ptr phase 2: platform/ and util/\n\nThis migrates raw pointer and raw reference struct/class fields in\nplatform/ and internal util/ classes to use raw_ptr\u003cT\u003e and raw_ref\u003cT\u003e.\n\nThis represents Phase 2 of progressive raw pointer migration across Open\nScreen.\n\nBug: 520101123\nChange-Id: I7921d6de62641fdd30b7ceb579d85f0abe123232\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7960382\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "9732a5d77a01f05e7c4e8c79104d27f4f2358f9f",
      "tree": "aed03659e2e051b21f99647361d9c8b81740f487",
      "parents": [
        "177090844261357997849bc5b9233fe2b1ee6221"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Thu Jun 18 22:28:50 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jun 19 00:28:52 2026"
      },
      "message": "[codehealth] raw_ptr phase 1: conditional raw_ptr, raw_ref polyfills\n\nThis patch implements a conditional raw_ptr utility in util/raw_ptr.h,\nand similar raw_ref utility in util/raw_ref.h. When built inside\nChromium (BUILD_WITH_CHROMIUM is defined), it aliases Chromium\u0027s\nbase::raw_ptr and its DPD traits. In standalone builds, it provides a\nzero-overhead, dependency-free polyfill that mimics raw pointer behavior\nwhile ensuring initialization to nullptr and enforcing pointer\narithmetic rules via SFINAE.\n\nBYPASS_LARGE_CHANGE_WARNING: matching parity with existing, complex Chromium implementation. A smaller delta would be useless on its own.\nBug: 520101123\nChange-Id: I966b18b4f859a39db97a2caae7b4e4d3bed50f49\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7904460\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\n"
    },
    {
      "commit": "177090844261357997849bc5b9233fe2b1ee6221",
      "tree": "eb17e05a3f74327e18adab5cff38cbb86b2b6520",
      "parents": [
        "194735914183f2d2aa554e62fa66c13c42d5e226"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Mon Jun 15 23:51:58 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jun 16 18:17:26 2026"
      },
      "message": "[cast_streaming] Use dynamic RTT-based Sender in-flight allocation\n\nGetMaxInFlightMediaDuration() previously used a legacy 50/50 heuristic\n(half the playout delay plus half the round-trip time). This\noverallocates buffer to the Sender (risking bufferbloat under\ncongestion) and starves the Receiver, which needs buffer to absorb NACK\nretransmissions.\n\nInstead, size the Sender\u0027s in-flight budget from the measured network\nRTT: the Sender only needs enough media in-flight to drive the\nloss-detection and retransmit feedback loop (~2 round-trips). The result\nis floored so the encoder pipeline keeps flowing on low-latency links,\nand capped at a third of the playout delay so the majority of the window\nis reserved for the Receiver and the Sender drops frames earlier under\ncongestion.\n\nNote the cap intentionally diverges from \"receiver gets playout -\nsender\": since RTT is clamped to the playout delay, an uncapped 2*RTT\nwould grow the Sender\u0027s buffer under congestion, the opposite of the\ngoal. No Receiver-side change is needed; its larger recovery window is\nemergent, as frames arrive earlier relative to their playout deadline.\n\nBug: 498035450\nChange-Id: I57bc1aa7628974faf7c4c7d5930f2365dfb5140e\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7947639\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "194735914183f2d2aa554e62fa66c13c42d5e226",
      "tree": "ccfbec4c31442bea7c3f9f06a329300be9fa36ad",
      "parents": [
        "c39fa349a58e134f3b2e4a6c890dbd7ac2089b76"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Mon Jun 15 22:32:38 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jun 16 00:53:30 2026"
      },
      "message": "[codehealth] Remove JSON schemas and Valijson\n\nAfter additional review, maintaining JSON schemas adds no production\nor test value and ends up just presenting an opportunity for definitions\nto drift apart. The main message parsing classes and the specification\ndoc are now the single source of truth.\n\nFixed: 448190672\nChange-Id: Iacadec1403a8d95c4b7114944156d080d898922b\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7947538\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "c39fa349a58e134f3b2e4a6c890dbd7ac2089b76",
      "tree": "ce40cef65a19821d6a27c7f0db05d5de61b5fa25",
      "parents": [
        "f1c97c11010cc72228af715cdd4615a7c37d4089"
      ],
      "author": {
        "name": "Eusden Lin",
        "email": "eusdenlin@google.com",
        "time": "Thu Jun 11 20:55:36 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Jun 12 13:23:46 2026"
      },
      "message": "[Cast Streaming] Add Python bindings and dynamic mirroring negotiation\n\nThis change introduces a standalone Python native extension\n(`openscreen_sender`) to enable cross-platform automation and validation\nof Cast Streaming sessions,\nKey architectural changes and features:\n- Refactors `standalone_sender/BUILD.gn`:\n  decouple `cast_sender_core` from the standalone executable binary,\n  allowing shared library reuse.\n- Introduces `standalone_sender/python/bindings` a pybind11 bindings,\n  as the interface for python to leverage `cast_sender_core`\n- Enhances session configuration to support specifying video codecs\n  (`VP8`, `VP9`, `AV1`) and pre-launched receiver `transport_id` /\n  `session_id` to seamlessly delegate negotiation and RTP streaming\n  from Python hosts.\n- Updates GN visibility lists across `platform`, `cast/common`, and\n  `standalone_sender`\n- Include new third_party dependency pybind11.\nBug: 487765018\nBug: 504887307\nTest: Verified on multiple platform (Linux, RPi 5, macos) works\n      seamlessly with vp9 and vp8 codecs.\nTest: Verified standalone sender and receiver work seamlessly.\nChange-Id: I8805366c0e2fb693bd1c1162205b429cec68916e\n\nChange-Id: I8805366c0e2fb693bd1c1162205b429cec68916e\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7850141\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Shawn Quereshi \u003cshawnq@google.com\u003e\nCommit-Queue: Eusden Lin \u003ceusdenlin@google.com\u003e\n"
    },
    {
      "commit": "f1c97c11010cc72228af715cdd4615a7c37d4089",
      "tree": "43cbcd0d7abc0a28d1a3a32cc3784a8c2868d13f",
      "parents": [
        "7675ef66c2f5901d798a3e3f3aae97ca9c96c2f6"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue Jun 02 19:05:45 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Jun 02 23:23:17 2026"
      },
      "message": "[build] Exclude OSP unittests when building in Chromium\n\nThe `osp` module relies on QUICHE, which frequently introduces breaking\nAPI changes. Since Chromium does not currently use or depend on the Open\nScreen Protocol (OSP), there is no need to compile OSP tests as part of\n`openscreen_unittests` when `build_with_chromium` is true.\n\nThis prevents Chromium integration bots from failing due to QUICHE roll\nmismatches in OSP targets.\n\nChange-Id: I998f8e9505bf092b3aaada716353267355489770\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7896251\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "7675ef66c2f5901d798a3e3f3aae97ca9c96c2f6",
      "tree": "fab665a254186244b98b59da68d0511536bf0887",
      "parents": [
        "37ff938a93cb04c6b77e019b52328c8e9b320317"
      ],
      "author": {
        "name": "Nick Harper",
        "email": "nharper@chromium.org",
        "time": "Mon Jun 01 23:42:38 2026"
      },
      "committer": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue Jun 02 18:35:13 2026"
      },
      "message": "Roll third_party/quiche/src/ a849d35c9..b8a4aa531 (61 commits)\n\nhttps://quiche.googlesource.com/quiche.git/+log/a849d35c908d..b8a4aa531a02\n\n$ git log a849d35c9..b8a4aa531 --date\u003dshort --no-merges --format\u003d\u0027%ad %ae %s\u0027\n2026-06-01 quiche-dev Change ProofVerifier::VerifyCertChain to support not copying certs\n2026-06-01 haoyuewang No public description\n2026-06-01 martinduke Get rid of MoqtUpstreamFetch::LocationIsValid because FETCH streams are diff-encoded; Malformed Tracks are no longer possible to encode in a FETCH stream.\n2026-06-01 martinduke Move parameter handling from session to RemoteTrack.\n2026-05-29 quiche-dev Fix 1 ClangTidyReadability finding: * function \u0027ClientFullyConnected\u0027 has inline specifier but is implicitly inlined. For more info, see go/clang_tidy/checks/readability-redundant-inline-specifier\n2026-05-29 dschinazi Improve socket fd logging in MasqueConnectionPool\n2026-05-29 rch No public description\n2026-05-29 dschinazi Fix OHTTP test client status checks\n2026-05-29 diannahu No public description\n2026-05-29 dschinazi Handle GOAWAY gracefully in MasqueH2Connection\n2026-05-28 martinduke Move Incoming Subscribe tests out of MoqtSessionTest.\n2026-05-28 martinduke Move IncomingDataStream to moqt_uni_stream.h.\n2026-05-28 reubent No public description\n2026-05-28 dschinazi Add MasqueSimpleFetch and MasqueSimpleGet\n2026-05-28 haoyuewang Fix test failures from cr/922120567.\n2026-05-27 reubent No public description\n2026-05-27 dschinazi Ensure that OHTTP test client calls response callback for chunked responses\n2026-05-27 quiche-dev Expose more TLS session properties in QuicCryptoStream and preserve them across handshaker resets.\n2026-05-26 quiche-dev Initialize StatelessResetToken in QuicTimeWaitListManagerTest.\n2026-05-26 davidben Update BoringSSL to latest BCR version\n2026-05-26 quiche-dev Enabling rolled out flags.\n2026-05-22 dschinazi Allow non-OHTTP requests in OHTTP test client\n2026-05-22 dschinazi Minor tweak to private_tokens CLI tool\n2026-05-22 asedeno Conditionalize QUIC client support of requesting server padding.\n2026-05-22 asedeno Fix OSS QUICHE build.\n2026-05-22 wub Add `quic::CredentialExData` as the ex_data of QUIC\u0027s SSL_CREDENTIAL objects.\n2026-05-22 quiche-dev Add QUIC client support to support requesting server padding through an extension in the TLS handshake. This is to support the cert padding experiment for Chrome (see go/cert-padding-experiment-2026)\n2026-05-20 martinduke Remove unnecessary tests from MoqtSessionTest. Putting the logic in OutgoingSubgroupStreamTest and SubscriptionPublisherTest is more compact and cleaner conceptually.\n2026-05-20 quiche-dev Enabling rolled out flags.\n2026-05-20 dschinazi Log probe numbers in OHTTP test client\n2026-05-20 reubent Remove balsa_fuzz_test.[c|h] and dependency in http_validation_policy.h\n2026-05-20 ianswett Remove QuicIetfStatelessResetPacket, because it was never being used.\n2026-05-20 quiche-dev No public description\n2026-05-20 dschinazi Make OHTTP toy client ping pong mode report failures\n2026-05-19 reubent No public description\n2026-05-19 reubent No public description\n2026-05-19 martinduke Validate the correct stateless reset token on the alternate path.\n2026-05-19 quiche-dev Provide a default implementation for QuicCryptoClientStream::ProofHandler::OnCertificateRequested.\n2026-05-19 martinduke Fix asan error in moqt_session_test.\n2026-05-18 martinduke Factor PublishedSubscription out of MoqtSession, into SubscriptionPublisher.\n2026-05-18 martinduke Deprecate quic_update_max_datagram.\n2026-05-18 haoyuewang Add alpn() \u0026 ciphersuite() methods with a default implementation to QuicCryptoStream.\n2026-05-17 vasilvv Update ACK timestamp encoding to use Delta Largest Acknowledged rather than Gap.\n2026-05-15 wub No public description\n2026-05-15 martinduke Create OutgoingFetchStream and factor out OutgoingUniStream as a parent of both data stream types.\n2026-05-14 martinduke Cleanup OutgoingSubgroupStream.\n2026-05-14 martinduke Refactor: Move OutgoingDataStream to a separate file and make the interfaces with PublishedSubscription explicit.\n2026-05-14 ricea Automated g4 rollback of changelist 911726734.\n2026-05-14 haoyuewang Add a sni() method with a default implementation to QuicCryptoStream.\n2026-05-13 quiche-dev Enabling rolled out flags.\n2026-05-13 quiche-dev Add support for handling client certificate requests in QUIC TLS.\n2026-05-13 martinduke Fix an issue from AI review of cl/914368728.\n2026-05-13 martinduke Fix ASAN/MSAN errors in MoqtSessionTest and MoqtTrackTest.\n2026-05-13 ianswett Deflake BBR3SimulatorTest\n2026-05-13 asedeno Fix OSS QUICHE build.\n2026-05-13 vasilvv Use new MOQT control message parser API directly.\n2026-05-12 ripere Add support for chunked response decompression.\n2026-05-12 ripere Refactor gzip decompression to share common code for chunked support.\n2026-05-12 martinduke Allow fragmented MOQT object payloads.\n2026-05-12 haoyuewang Maybe copy datagram frames in QuicUnackedPacketMap.\n2026-05-12 martinduke Remove PUBLISH_OK message.\n\nCreated with:\n  roll-dep third_party/quiche/src\n\nChange-Id: I6c58013efa518aa6444e658a218ef848a3486d76\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7891765\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "37ff938a93cb04c6b77e019b52328c8e9b320317",
      "tree": "09597ae163eaf1668eb1dc6a138a52b55ba7a108",
      "parents": [
        "41bd2e62c6e57869d45f0e6fcd539955ac8969ef"
      ],
      "author": {
        "name": "Adam Rice",
        "email": "ricea@chromium.org",
        "time": "Fri May 22 05:19:46 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Sat May 23 12:21:23 2026"
      },
      "message": "Remove deprecated CreateIncomingStream method\n\nThis patch removes the `CreateIncomingStream(quic::PendingStream*)`\noverload from `OpenScreenSessionBase`. This method is deprecated and was\nunused, with its implementation only triggering an unreachable code\nassertion (`OSP_NOTREACHED()`). Removing it cleans up the class\ninterface and eliminates dead code. It also makes Open Screen compatible\nwith newer versions of QUICHE that do not have the method in their base\nclass.\n\nBug: 499252371\nChange-Id: Ic046cd0b7e83018f3dbff42e5402619eb6e8d705\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7870270\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Adam Rice \u003cricea@chromium.org\u003e\n"
    },
    {
      "commit": "41bd2e62c6e57869d45f0e6fcd539955ac8969ef",
      "tree": "0a52ccc5072897a5080eeb8166ff13fd22b1421d",
      "parents": [
        "ead74fc1be88992915cd53bbc78f65608c54df60"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Mon May 18 21:57:25 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 19 17:54:48 2026"
      },
      "message": "[codehealth] Fix third-party metadata for googletest, libcxx, and libcxxabi\n\nAdded the missing README.chromium file for googletest with the\nnecessary \u0027Security Critical\u0027, \u0027Version\u0027, and \u0027Revision\u0027 fields.\n\nRenamed README.openscreen to README.chromium for libc++ and libc++abi\nto match standard Chromium project guidelines, and added their missing\n\u0027Revision\u0027 fields based on their current submodule SHAs.\n\nThis resolves automated metadata tracking issues.\n\nFixed: 511607099, 511607634, 511607185\nChange-Id: I555195db0edbbc2952bbe2554d557974d2065c03\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7857615\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "ead74fc1be88992915cd53bbc78f65608c54df60",
      "tree": "e2212d64b5101b3f5a7803c72899ee518958f8f2",
      "parents": [
        "29f5a54305736661164efc7f77be65261a7521ef"
      ],
      "author": {
        "name": "Matt Stark",
        "email": "msta@google.com",
        "time": "Fri May 15 07:18:57 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 18 01:03:40 2026"
      },
      "message": "Prevent openscreen from exposing abseil.\n\nI wrote a `gn suggest` tool which suggests dependencies, and it takes\ninto account visibility to suggest the right dependency for you.\n\ngn suggest out/linux-x64 //third_party/protobuf:protoc_cpp\u003d//third_party/abseil-cpp/absl/algorithm:algorithm\nWarning: \"//third_party/abseil-cpp/absl/algorithm:algorithm\" is exposed via multiple targets\nSuggestion: Clean up the visibility so that only one of the below targets is visible to //third_party/protobuf:protoc_cpp\nSuggestion: Depend on one of the following:\n* //third_party/abseil-cpp:absl\n* //third_party/angle:angle_abseil\n* //third_party/openscreen/src:gn_all\n* //third_party/openscreen/src/third_party/abseil:abseil\n* //v8:v8_abseil\n\nBug: chromium:500845363\nChange-Id: I181f3aa63e7029a41a285b45e6583b576a6a6964\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7851118\nCommit-Queue: Matt Stark \u003cmsta@google.com\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "29f5a54305736661164efc7f77be65261a7521ef",
      "tree": "769076b5ba49e0654dbdf9ca20a30cf7796b012f",
      "parents": [
        "7e45a38366f7cc69256251599f74782cca877091"
      ],
      "author": {
        "name": "Adam Rice",
        "email": "ricea@chromium.org",
        "time": "Thu May 14 07:04:57 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu May 14 07:29:23 2026"
      },
      "message": "Roll Abseil and QUICHE\n\nQUICHE needs to be rolled to Open Screen in order to permit removing the\nobsolete QuicSession::CreateIncomingStream() method.\n\nThe new version of QUICHE requires absl::down_cast, so Abseil needs to\nbe rolled to permit QUICHE to be rolled.\n\nThe new version of Abseil no longer includes a definition of memcpy()\nin string_view.h, which makes compilation fail on GCC with older\nversions of QUICHE. For this reason, QUICHE and Abseil need to be\nupdated in the same CL.\n\nRoll third_party/quiche/src/ d54ca111b..a849d35c9 (299 commits)\n\nhttps://quiche.googlesource.com/quiche.git/+log/d54ca111b108..a849d35c908d\n\n$ git log d54ca111b..a849d35c9 --date\u003dshort --no-merges --format\u003d\u0027%ad %ae %s\u0027\n2026-05-07 ianswett Update CWND calculations to match the latest BBR draft. https://www.ietf.org/archive/id/draft-ietf-ccwg-bbr-05.html\n2026-05-07 rch No public description\n2026-05-06 ricea Temporarily add a dummy definition of CreateIncomingStream() to quic::QuicSession\n2026-05-06 haoyuewang Increase the QUIC_BUG threshold.\n2026-05-06 vasilvv Add functions to interop between absl::Cord and QuicheMemSlice.\n2026-05-05 rch No public description\n2026-05-04 rch Deprecate QUIC reloadable flag quic_close_connection_on_underflow.\n2026-05-04 vasilvv Rewrite MOQT control message parser.\n2026-05-02 ianswett Update BBR3 to more closely align with the BBRv3 draft.\n2026-05-01 ianswett Remove tests for the deprecated kB201 connection option from BBR2 and BBR3 simulator tests.\n2026-04-29 ianswett Enable gfe2_reloadable_flag_quic_reject_empty_cid_in_ncid in Chrome.\n2026-04-29 ianswett Deprecate gfe2_reloadable_flag_quic_no_path_degrading_before_handshake_confirmed.\n2026-04-28 ripere Add gzip response decompression support to Masque OHTTP client.\n2026-04-28 dschinazi MasqueOhttpClient: Print chunked body to stdout\n2026-04-27 dschinazi Deprecate quic_stop_sending_legacy_version_info and quic_stop_parsing_legacy_version_info\n2026-04-27 ianswett BBR3: Update startup pacing gain, drain gain, and max ack height window to match the BBR IETF draft: https://datatracker.ietf.org/doc/draft-ietf-ccwg-bbr/\n2026-04-23 rch Additional PendingStream cleanup * Remove unused constructors * Pass PendingStream by reference in CreateIncomingStream\n2026-04-23 rch Remove unused QuicSession::CreateIncomingStream(PendingStream*). Remove overrides in subclasses which considered it an error to call this method. Move from override to virtual in those subclasses which actually use this method.\n2026-04-22 wub No public description\n2026-04-22 rch Refactor QuicSession PendingStream methods to take references.\n2026-04-22 ianswett Refactor: Cache Bbr2DebugState in simulator tests.\n2026-04-22 rch Refactor QuicStream constructor to take PendingStream by reference.\n2026-04-21 martinduke Allow MoqtClient and MoqtServer to control session parameters.\n2026-04-21 martinduke Move some non-message-related data structures out of moqt_messages.h\n2026-04-21 ianswett Refactor BBR2/BBR3 initialization and inline some methods.\n2026-04-21 rch Convert quic::PendingStream constructor to take QuicSession reference.\n2026-04-20 ianswett Refactor BBR2/BBR3 parameters by moving kDefaultMinimumCongestionWindow and kInitialPacingGain into Bbr2Params.\n2026-04-20 quiche-dev Add ohttp_ping_pong_mode_{gateway_name} to test ping-pong interactive chunking. It guarantees there is no buffering between the client and server, bidirectionally.\n2026-04-20 ianswett Refactor: Extract DebugState from Bbr2Sender and Bbr3Sender to a common header.\n2026-04-20 martinduke Get rid of moqt::SubscribeWindow.\n2026-04-20 ianswett Refactor and simplify BBR3.\n2026-04-20 quiche-dev Add support for sending OHTTP request bodies in multiple chunks.\n2026-04-17 ianswett Branch Bbr2Sender to create Bbr3Sender and no long have modes extend from Bbr2ModeBase.\n2026-04-16 martinduke Permanently cancel subgroups if the stream has STOP_SENDING.\n2026-04-16 haoyuewang QUIC_BUG on the size of connection_state_map_.\n2026-04-16 ianswett Move Bbr2ProbeBwMode::CyclePhase to bbr2_misc.h and rename it to ProbePhase.\n2026-04-15 reubent Reset streams which surpass MAX_HEADER_LIST_SIZE\n2026-04-15 ianswett Deprecate --gfe2_reloadable_flag_quic_send_connection_close_on_max_age.\n2026-04-14 birenroy Enabling rolled out flags.\n2026-04-14 martinduke Deprecate gfe2_reloadable_flag_quic_disconnect_early_exit.\n2026-04-14 vasilvv Merge QuicStreamSendBufferBase into QuicStreamSendBufferInlining.\n2026-04-14 martinduke Limit Joining FETCH to largest_object at time of SUBSCRIBE.\n2026-04-13 dmcardle Deprecate MASQUE PerRequestConfig::SetExpectedEncapsulatedResponseBody()\n2026-04-10 dmcardle Add encapsulated response body callback to MASQUE client\u0027s PerRequestConfig\n2026-04-10 ripere Add `num_ohttp_chunks` flag and remove `chunked` flag.\n2026-04-10 ripere Add `num_bhttp_chunks` flag and remove `indeterminate_length` flag.\n2026-04-10 ianswett Reject NEW_CONNECTION_ID frames with empty connection IDs and close the connection, per RFC9000.  Based on cr/896368856\n2026-04-10 wub No public description\n2026-04-09 reubent Enforce a limit on the amount of total, uncompressed header bytes\n2026-04-09 dschinazi Improve connection logging in OHTTP toy client\n(...)\n2026-01-15 ripere Refactor HttpHeaderBlock tests to use const-qualified functors.\n2026-01-15 birenroy One more fix for the case of a nulled out pending frame.\n2026-01-14 martinduke Consolidate MOQT *_ERROR message into REQUEST_ERROR.\n2026-01-14 haoyuewang Add QuicServerSessionBase::enable_reset_ssl_after_handshake that reset SSL after handshake is done to save connection level memory on the server side.\n2026-01-13 quiche-dev Add UpdateMaxSize to QuicLRUCache.\n2026-01-13 birenroy Fixes behavior in OgHttp2Session::CloseStream when frames have been removed from the pending frames queue.\n2026-01-12 dschinazi Unblock quic_stop_sending_legacy_version_info\n2026-01-12 martinduke Rename MoqtRequestError to MoqtErrorPair.\n2026-01-12 vasilvv Implement bandwidth probing in MoQ bitrate adjuster.\n2026-01-12 ripere Refactor BHTTP test constants.\n2026-01-12 dmcardle Deprecate gfe2_reloadable_flag_quic_delay_connection_close_on_invalid_sni\n2026-01-12 wangsteve Automated g4 rollback of changelist 840297420.\n2026-01-09 martinduke Update MoQT malformed track detection to draft-16.\n2026-01-09 ripere Refactor BHTTP content terminated sections decoding.\n2026-01-09 dmcardle Add --request_trust_anchors to the QUIC toy client\n2026-01-09 ripere Return absl::Status from test helper functions\n2026-01-09 ripere Refine IndeterminateLengthMessageSection enum for BinaryHttpResponse encoding.\n2026-01-09 ripere Refactor OHTTP client, gateway, and BHTTP decoder creation methods to pass the retained parameter as pointer instead of a reference.\n2026-01-08 vasilvv Add missing QUICHE_EXPORT directives.\n2026-01-08 martinduke Implement MOQT draft-16 version negotiation.\n2026-01-08 martinduke Change MOQT key-value pair lists to have diff-encoded keys.\n2026-01-07 diannahu Mark --gfe2_restart_flag_quic_stop_sending_legacy_version_info as enabling_blocked_by.\n2026-01-07 birenroy No public description\n2026-01-07 quiche-dev Fix gap filling ACK logic in QuicReceivedPacketManager.\n2026-01-06 haoyuewang Do not instantiate QpackSendStream if qpack_maximum_dynamic_table_capacity_ is 0 in QuicSpdySession.\n2026-01-06 vasilvv Implement a dedicated WebTransport-only dispatcher.\n2026-01-06 vasilvv Ensure WebTransport QUIC streams are always set to level-triggered mode.\n2026-01-06 ianswett Deprecate --gfe2_reloadable_flag_quic_bbr2_probe_two_rounds.\n2026-01-06 ripere Refactor BinaryHttpRequest IndeterminateLengthDecoder to use a local checkpoint.\n2026-01-06 danzh Rename methods in QuicConnectionMigrationManager for readability. Callback methods like FinishFoo() are renamed to ContinueFoo() if Foo() is async or DoneWithFoo() if it merely does clean up.\n2026-01-06 ripere Wrap chunk handler errors in InternalError.\n2026-01-05 ianswett Deprecate quic_bbr2_simplify_inflight_hi.\n2026-01-05 rch Remove unreachable return in quic_spdy_session_test.cc\n2026-01-05 birenroy Uses `quiche::QuicheCircularDeque` as the type backing the pending frame queue, rather than `std::list`.\n2026-01-05 vasilvv Move moqt::TrackNamespace and friends into a separate header.\n2025-12-30 quiche-dev No public description\n2025-12-29 rch Fix unused parameter warning in quic_session.h\n2025-12-23 rch Add support for sending immediate GOAWAYs in HTTP/3.\n2025-12-23 quiche-dev QBONE ICMP reachable: eliminate last usage of `SOCK_RAW`.\n2025-12-23 quiche-dev Make the masque client return a special error when it gets an expected failure\n2025-12-23 quiche-dev Move balsa_fuzz_util to a separate quiche_fuzz_support glob.\n2025-12-22 quiche-dev QBONE ICMP reachable: convert to \"ping sockets\" to avoid the need for `SOCK_RAW` permissions.\n2025-12-20 dschinazi Allow content-type parameters in MASQUE/OHTTP test code\n2025-12-20 dschinazi Properly handle TLS error in MasqueH2Connection\n2025-12-20 dschinazi Allow key fetch and key proxy requests without the Accept header in masque_tcp_server\n2025-12-20 dschinazi Properly handle query parameters in MASQUE/OHTTP test code\n2025-12-20 dschinazi Only respond to key requests on gateway path in masque_tcp_server\n2025-12-20 dschinazi Add --key_proxy option to masque_tcp_server\n2025-12-20 dschinazi Increase connection-level flow control in MasqueH2Connection\n2025-12-19 dschinazi Make gateway actually proxy requests in masque_tcp_server\n\nCreated with:\n  roll-dep third_party/quiche/src\n\nRoll third_party/abseil/src/ 987c57f32..8a6b6ae90 (332 commits)\n\nhttps://chromium.googlesource.com/external/github.com/abseil/abseil-cpp.git/+log/987c57f325f7..8a6b6ae902ac\n\n$ git log 987c57f32..8a6b6ae90 --date\u003dshort --no-merges --format\u003d\u0027%ad %ae %s\u0027\n2026-04-21 absl-team Automated rollback of commit 34e723033bf6e31b196258451c6cdc684804a88d.\n2026-04-21 absl-team Change abseil hardening assertions in types directory from macros to functions\n2026-04-21 absl-team Change abseil hardening assertions in types directory from macros to functions\n2026-04-21 ckennelly Replace ABSL_INTERNAL_LOG with ABSL_RAW_LOG in ReadMonotonicClockNanos.\n2026-04-21 goldvitaly Introduce HashtableCapacity wrapper for capacity_ and rename HashtableSize to HashtableInlineData and move capacity into it.\n2026-04-20 ckennelly Use if constexpr around allocator type check for hashtable sampling.\n2026-04-20 mkruskal Add a friendship for gloop testing\n2026-04-16 absl-team Optimzie crc32 on AMD Milan+\n2026-04-16 tokarip Optimzie crc32 on AMD Milan+\n2026-04-16 dmauro Stop exporting internal Base64 escaping functions that do not need to be exported. The one function that is currently using it is easily implemented with absl::Base64Escape().\n2026-04-14 absl-team Add additional bounds check functions to cover most ABSL_HARDENING_ASSERTs.\n2026-04-13 absl-team Undo unintended inlining of absl::void_t -- the inlining didn\u0027t actually replace it with std::void_t\n2026-04-10 ckennelly Consume result from various SampleRecorder methods.\n2026-04-09 absl-team Remove unnecessary usages of absl::void_t\n2026-04-09 akraman StrFormat: format %g without heap allocation\n2026-04-09 absl-team Remove unnecessary namespace bracketing for an internal nullability macro.\n2026-04-08 dmauro Introduce ABSL_OPTION_INLINE_HW_ACCEL_STRATEGY in absl/base/options.h to provide a centralized policy for hardware-accelerated implementations in headers.\n2026-04-07 sbenza Refactor error factories to propagate static knowledge to the compiler, where supported.\n2026-04-07 absl-team Inline absl::void_t to std::void_t wherever possible\n2026-04-06 absl-team Deprecate and inline a lot of C++17 Abseil type traits\n2026-04-06 absl-team Remove more lingering C++17 type traits polyfill usages\n2026-04-06 absl-team nullstream: fix a header guard comment\n2026-04-06 absl-team Add SKIP_ABSL_INLINE_NAMESPACE_CHECK to absl/base/internal/exception_safety_testing.h as it doesn\u0027t use the absl namespace at all\n2026-04-06 mkruskal Expose gloop peer friendship for testing\n2026-04-03 absl-team Stop using C++17 type traits polyfills\n2026-04-03 dmauro Remove the forward declaration of base::scheduling::Schedulable from thread_identity by using a void*, and fix callers to use base::scheduling::Schedulable::GetBoundSchedulable().\n2026-03-31 absl-team Support passing I/O manipulators such as std::endl to StringifyStream\n2026-03-31 absl-team Add absl::Status::MakeNonOkStatusWithOkCode() and absl::status_internal::StatusPrivateAccessor for private/internal use\n2026-03-30 dmauro Add cleanup dependency\n2026-03-28 dmauro Prepare to move callers away from get_bound_schedulable() to remove the forward declaration of base::scheduling::Schedulable.\n2026-03-26 absl-team Prevent users of absl::AnySpan::subspan(pos, len) from relying on truncation behavior while the migration from this nonstandard function is in progress.\n2026-03-26 absl-team Add support for [[clang::annotate(\"clang-tidy\", \"bugprone-use-after-move\", \"null_after_move\")]] annotations.\n2026-03-25 lar Reduce duplication in absl/random/internal.\n2026-03-25 cramertj Use absl::SourceLocation for Rust source locations in Status\n2026-03-24 absl-team Avoid using lambdas in Abseil assertion macros\n2026-03-23 dmauro Minor changes to #includes\n2026-03-23 cmihelic Document that DemangleRustSymbolEncoding omits some details on purpose.\n2026-03-20 mvels Add gloop/perftools/tracing visibility\n2026-03-18 mkruskal Add //gloop/util/status:status_macros to Gloop\n2026-03-17 absl-team Remove the legacy stateless symbol decorator API.\n2026-03-16 dmauro Add additional tests in str_split_test.cc\n2026-03-13 absl-team Add absl::strings_internal::AbslStringifyStream\n2026-03-13 absl-team Add supporting code for absl::SourceLocation\n2026-03-13 absl-team Open-source absl::AnySpan\n2026-03-12 mkruskal Add //gloop/util/gtl:iterator_range to Gloop\n2026-03-12 mkruskal Internal functionality\n2026-03-12 goldvitaly Fix sampling for the insert into a non-SOO table with capacity\u003d\u003d1.\n2026-03-12 goldvitaly Add benchmark for string erase/emplace.\n2026-03-11 dmauro Minor reformatting\n2026-03-11 sbenza Prepare GenericPrinter for the rename of ArenaSafeUniquePtr.\n(...)\n2025-09-30 absl-team Remove unnecessary dep on `core_headers` from the `nullability` cc_library\n2025-09-29 jmr type_traits: Add type_identity and type_traits_t backfills\n2025-09-26 ezb Refactor raw_hash_set range insertion to call private insert_range function.\n2025-09-25 absl-team Fix bug in absl::FunctionRef conversions from non-const to const\n2025-09-24 anton.klaren PR #1937: Simplify ConvertSpecialToEmptyAndFullToDeleted\n2025-09-23 absl-team Improve absl::FunctionRef compatibility with C++26\n2025-09-23 dmauro Add a workaround for unused variable warnings inside of not-taken if-constexpr codepaths in older versions of GCC\n2025-09-23 absl-team Annotate ABSL_DIE_IF_NULL\u0027s return type with `absl_nonnull`\n2025-09-22 goldvitaly Move insert index computation into `PrepareInsertLarge` in order to reduce inlined part of insert/emplace operations.\n2025-09-21 absl-team Automated Code Change\n2025-09-20 keithbsmiley PR #1939: Add missing rules_cc loads\n2025-09-19 durandal Expose (internally) a LogMessage constructor taking file as a string_view for (internal, upcoming) FFI integration.\n2025-09-15 absl-team Fixed up some #includes in mutex.h\n2025-09-15 absl-team Make absl::FunctionRef support non-const callables, aligning it with std::function_ref from C++26\n2025-09-15 goldvitaly Move capacity update in `Grow1To3AndPrepareInsert` after accessing `common.infoz()` to prevent assertion failure in `control()`.\n2025-09-13 sohaibiftikhar Fix check_op(s) compilation failures on gcc 8 which eagerly tries to instantiate std::underlying_type for non-num types.\n2025-09-12 goldvitaly Use `ABSL_ATTRIBUTE_ALWAYS_INLINE`for lambda in `find_or_prepare_insert_large`.\n2025-09-12 derekbailey Mark the implicit floating operators as constexpr for `absl::int128` and `absl::uint128`\n2025-09-09 self PR #1931: raw_hash_set: fix instantiation for recursive types on MSVC with /Zc:__cplusplus\n2025-09-09 absl-team Add std::pair specializations for IsOwner and IsView\n2025-09-09 durandal Cast ABSL_MIN_LOG_LEVEL to absl::LogSeverityAtLeast instead of absl::LogSeverity.\n2025-09-08 absl-team Fix a corner case in the aarch64 unwinder\n2025-09-04 absl-team Fix inconsistent nullability annotation in ReleasableMutexLock\n2025-09-04 absl-team Remove support for Native Client\n2025-09-03 absl-team Rollback f040e96b93dba46e8ed3ca59c0444cbd6c0a0955\n2025-09-02 durandal When printing CHECK_XX failures and both types are unprintable, don\u0027t bother printing \" (UNPRINTABLE vs. UNPRINTABLE)\".\n2025-09-02 rsworktech PR #1929: Fix shorten-64-to-32 warning in stacktrace_riscv-inl.inc\n2025-09-02 ezb Refactor `find_or_prepare_insert_large` to use a single return statement using a lambda.\n2025-09-02 ckennelly Use possible CPUs to identify NumCPUs() on Linux.\n2025-09-02 qrczak Fix incorrect nullability annotation of `absl::Cord::InlineRep::set_data()`.\n2025-09-02 goldvitaly Move SetCtrl* family of functions to cc file.\n2025-09-01 dmauro Change absl::InlinedVector::clear() so that it does not deallocate any allocated space. This allows allocations to be reused and matches the behavior specification of std::vector::clear().\n2025-08-27 avassalotti Mark Abseil container algorithms as `constexpr` for C++20.\n2025-08-27 dmauro Fix `CHECK_\u003cOP\u003e` ambiguous overload for `operator\u003c\u003c` in older versions of GCC when C-style strings are compared\n2025-08-27 absl-team stacktrace_test: avoid spoiling errno in the test signal handler.\n2025-08-26 nafi Optimize `CRC32AcceleratedX86ARMCombinedMultipleStreams::Extend` by interleaving the `CRC32_u64` calls at a lower level.\n2025-08-26 absl-team stacktrace_test: avoid spoiling errno in the test signal handler.\n2025-08-26 absl-team stacktrace_test: avoid spoiling errno in the test signal handler.\n2025-08-26 bgraur std::multimap::find() is not guaranteed to return the first entry with the requested key. Any may be returned if many exist.\n2025-08-26 derekbailey Mark `/`, `%`, and `*` operators as constexpr when intrinsics are available.\n2025-08-26 dmauro Add the C++20 string_view contructor that uses iterators\n2025-08-22 absl-team Implement absl::erase_if for absl::InlinedVector\n2025-08-20 absl-team Adjust software prefetch to fetch 5 cachelines ahead, as benchmarking suggests this should perform better.\n2025-08-20 goldvitaly Reduce maximum load factor to 27/32 (from 28/32).\n2025-08-19 dmauro Remove unused include\n2025-08-18 absl-team Remove unused include statement\n2025-08-18 30942300+past-due PR #1921: Fix ABSL_BUILD_DLL mode (absl_make_dll) with mingw\n2025-08-18 zebreus PR #1922: Enable mmap for WASI if it supports the mman header\n2025-08-14 absl-team Rollback C++20 string_view constructor that uses iterators due to broken builds\n2025-08-14 dmauro Add the C++20 string_view contructor that uses iterators\n\nCreated with:\n  roll-dep third_party/abseil/src\n\nManual changes:\n- Update abseil/BUILD.gn. Only add new source files that are actually\n  used, for consistency with existing practice.\n- Add -Wno-deprecated to the protobuf BUILD.gn, as protobuf uses\n  absl::disjunction, which is deprecated in the newer versions of\n  Abseil.\n\nBug: b:508413463\nChange-Id: Iadaacdc024231789f7c9c62ade695fadc10596c2\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7831666\nCommit-Queue: Adam Rice \u003cricea@chromium.org\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "7e45a38366f7cc69256251599f74782cca877091",
      "tree": "62f06e212b4803289ec4d3a322e5f6eb545375b4",
      "parents": [
        "bfda699482ce4c6bf938de8486498e28f62cd15c"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Fri May 08 21:09:56 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed May 13 23:23:23 2026"
      },
      "message": "[openscreen] Implement TLS session resumption\n\nImplement both client-side and server-side TLS session resumption to\nreduce reconnection latency on Wi-Fi drops. This brings the standalone\nimplementation more in parity with Chromium\u0027s platform implementation,\nwhich has a robust SSL cache.\n\nThis change:\n- Enables server-side session caching using BoringSSL\u0027s native\n  SSL_SESS_CACHE_SERVER mode, and configures a unique session ID context.\n- Implements a client-side session cache in TlsConnectionFactoryPosix\n  using a std::map keyed by IPEndpoint.\n- Saves successfully established client sessions after handshake\n  completion using SSL_get1_session().\n- Reuses saved sessions for subsequent client connections to the same\n  IPEndpoint using SSL_set_session() before handshake initiation.\n\nFixed: 281741213\nBug: 492683133\nChange-Id: I9f641c7d68d68c0cd11f7165ea829eb0122ae4f0\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814329\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "bfda699482ce4c6bf938de8486498e28f62cd15c",
      "tree": "54f3b7298084728373081653a1c7627719b60a6b",
      "parents": [
        "40cff120bc9e270f18804718ba2219e4f62786fb"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Fri May 08 20:01:41 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 08 20:52:41 2026"
      },
      "message": "[codehealth] Fix licenses.py presubmit failures\n\nThis commit addresses the presubmit failures caused by the recent\ntransition to Chromium\u0027s upstream `licenses.py` script.\n\n- Renamed `README.openscreen` files to `README.chromium` in\n  `third_party/getopt`, `third_party/libc++`, and\n  `third_party/libc++abi` as the upstream script only looks for\n  `README.chromium`.\n- Removed duplicate `README.openscreen` from `third_party/ninja`.\n- Added `third_party/googletest/README.chromium` to store metadata\n  that was previously hardcoded in the old `licenses.py` script\u0027s\n  `SPECIAL_CASES` dictionary.\n- Updated `licenses.PRUNE_PATHS` in `PRESUBMIT.py` to ignore nested\n  `third_party` directories within our dependencies (e.g.\n  `boringssl`, `googleurl`, `perfetto`, etc.) since the upstream\n  script now recursively checks subdirectories.\n\nChange-Id: I8322ca0557688f84ffbc9bbbc9598edf6defb2f1\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7833399\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nCommit-Queue: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "40cff120bc9e270f18804718ba2219e4f62786fb",
      "tree": "cf9224db02c8f813c19dc09ca069e7c2d5d3b921",
      "parents": [
        "6395018de98f444477758286ff5a9e1b8db2dcea"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue May 05 00:22:38 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 05 21:24:32 2026"
      },
      "message": "[codehealth] Automate syncing of Chrome tools\n\nThis commit replaces the manually maintained copies of Chromium\u0027s\n`licenses.py` and `protoc_wrapper.py` scripts with an automated\nsolution via DEPS hooks, ensuring these scripts remain up-to-date\nwith Chromium\u0027s trunk.\n\n- Created a generic `tools/download-chrome-file.py` (based on\n  the former `download-clang-update-script.py`).\n- Updated `DEPS` hooks to use the new downloader script to\n  fetch `licenses.py`, `spdx_writer.py`, and `protoc_wrapper.py`\n  directly from Chromium matching the existing `chrome_version`.\n- Replaced the deprecated `ScanThirdPartyDirs()` call in\n  `PRESUBMIT.py` with the modern `_DiscoverMetadatas()` API\n  from `licenses.py`.\n- Removed tracked copies of the scripts from git and added their\n  paths to `.gitignore`.\n\nBypass-Check-License: moved file.\nChange-Id: I7363d45252be702c75c0aeb5b9d51f42038100b4\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7815044\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "6395018de98f444477758286ff5a9e1b8db2dcea",
      "tree": "d4f4b2e89e8b076fddf45cacb2dc589239dec688",
      "parents": [
        "290419dbd0be64f1cd136146ee1f0a8e0dcfa7ed"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue May 05 00:47:53 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 05 17:45:43 2026"
      },
      "message": "[openscreen] Resolve SSL_shutdown test coverage TODO and document verification\n\nAcknowledge and document that SSL_shutdown is already robustly verified\nby CastSocket E2ETests, resolving b/169966671.\n\nThis change:\n- Adds an explicit comment in cast_socket_e2e_test.cc (inside\n  CloseSocketsFromOneEnd) explaining why the kSocketClosedFailure assertion\n  explicitly verifies SSL_shutdown correctness (i.e., if the peer did not call\n  SSL_shutdown, BoringSSL would report a protocol error mapped to\n  kFatalSSLError instead).\n- Removes the stale TODO comment from tls_connection_posix.cc since\n  E2E coverage is the correct and most robust way to verify this behavior\n  and is already fully implemented.\n\nBug: 169966671\nBug: 492683133\nChange-Id: I49ddc19165f2eac3eaafabf44a71479ad1cc035b\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7815047\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "290419dbd0be64f1cd136146ee1f0a8e0dcfa7ed",
      "tree": "1d5fc4a6ee889ddb06d2bdade571882f5b8ae3c9",
      "parents": [
        "ef187a48a39ec778c705a415a254433ee8c24d67"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue May 05 00:07:34 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 05 17:45:08 2026"
      },
      "message": "[openscreen] Implement OSP_GUARDED_BY and audit all std::mutex usages\n\nIntroduce Abseil-style thread safety annotations (OSP_GUARDED_BY, etc.)\nto enable static analysis of mutex-guarded variables during compilation.\nThis resolves b/322734860.\n\nThis change:\n- Creates \u0027util/thread_annotations.h\u0027 containing the Clang-specific macro\n  definitions for thread safety analysis.\n- Audits and annotates all \u0027std::mutex\u0027 usages in Open Screen production\n  code:\n  - TlsDataRouterPosix (accept_socket_mappings_, connections_)\n  - TaskRunnerImpl (tasks_, delayed_tasks_)\n  - SocketHandleWaiter (handles_being_deleted_, handle_mappings_)\n  - UdpSocketReaderPosix (sockets_)\n  - StreamingAv1Encoder (needs_key_frame_, target_bitrate_, encode_queue_)\n  - StreamingVpxEncoder (needs_key_frame_, target_bitrate_, encode_queue_)\n- Refactors all \u0027std::unique_lock\u0027 usages to \u0027std::lock_guard\u0027 where\n  possible to resolve Clang static analysis limitations.\n- Fixes a real concurrency bug in video encoders where GetTargetBitrate()\n  was reading \u0027target_bitrate_\u0027 without holding \u0027mutex_\u0027.\n- Makes \u0027mutex_\u0027 mutable in encoders and socket reader to allow locking\n  in const methods.\n- Safe-bypasses Clang\u0027s lambda-condvar-loop analysis limitations by\n  using standard \u0027while\u0027 loops or \u0027OSP_NO_THREAD_SAFETY_ANALYSIS\u0027 where\n  manually verified to be safe.\n\nFixed: 322734860\nBug: 492683133\nChange-Id: I9a86c0848267c2893ddba9ff319cdce8b02a5812\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814327\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "ef187a48a39ec778c705a415a254433ee8c24d67",
      "tree": "326e5e0f1c7aae198fddd379d46f758b4a59089b",
      "parents": [
        "3425b09241dc65be9a6d4c17f0518970fd6e88dc"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Mon May 04 23:12:14 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 05 17:44:42 2026"
      },
      "message": "[openscreen] Consolidate standalone FFMPEG glue code into standalone_common\n\nDeduplicate FFMPEG and avcodec unique pointer helpers, compatibility\nmacros, and the AvErrorToString implementation between standalone_sender\nand standalone_receiver.\n\nThis change:\n- Creates a new shared \u0027cast/standalone_common\u0027 component.\n- Moves and consolidates ffmpeg_glue.h/cc and avcodec_glue.h into the\n  new component.\n- Refactors both standalone_sender and standalone_receiver to depend on\n  this new shared component.\n- Simplifies OnError in decoder.cc to use AvErrorToString.\n\nBug: 224642520\nBug: 492683133\nChange-Id: I93d9dd862fdf8c885929ba23d89803c3e92cc09f\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814281\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "3425b09241dc65be9a6d4c17f0518970fd6e88dc",
      "tree": "647f79fd2fbbccb288b9bca5fab398884a9656a6",
      "parents": [
        "ba0ff1488e9ecae7ba21605f66ebb8827bef1bd6"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Mon May 04 22:51:04 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 05 17:44:35 2026"
      },
      "message": "[codehealth] Migrate protobuf roll script to Python and modernize tools\n\nMigrates the bash-based `tools/roll_protobuf.sh` script to Python\n(`tools/roll_protobuf.py`) to conform with the Google Shell Style Guide,\nwhich mandates Python for scripts exceeding 100 lines.\n\nThe new roll_protobuf script offers:\n- Standardized cross-platform execution (eliminating bash dependencies like perl, curl, and awk).\n- Robust error handling and a structured `ProtobufVersion` dataclass.\n- Rich terminal output utilizing the newly abstracted `tools/cli_utils.py`.\n- A dedicated unit test suite (`tools/roll_protobuf_test.py`).\n\nAdditionally, this change performs a sweep of Python tooling across the\nrepository (`tools/*`, `cast/standalone_e2e.py`, and `PRESUBMIT.py`) to\nalign with the modern Google Python Style Guide:\n- Applied PEP-8 compliant type hinting.\n- Refactored internal implementation details from `CamelCase` to\n  `_snake_case` to properly enforce private module boundaries.\n- Re-formatted all scripts using `git cl format`\n\nChange-Id: Ib4ec003716e2857f259e9d50db062467de14d554\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7809783\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "ba0ff1488e9ecae7ba21605f66ebb8827bef1bd6",
      "tree": "6f33bc2215c3b431cb24c69d7e9045663710812e",
      "parents": [
        "6c9289d322b648f5d837a9cfe744a6f555f48f61"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue May 05 00:52:32 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue May 05 17:43:06 2026"
      },
      "message": "[openscreen] Add robust dynamic thread checks to UdpSocketPosix\n\nAdd OSP_CHECK(task_runner_.IsRunningOnTaskRunner()) to all public API\nentry-points of UdpSocketPosix.\n\nThis change:\n- Enforces the documented UdpSocketPosix threading model: \"All public\n  methods must be called on the same thread--the one executing the\n  TaskRunner.\"\n- Adds checks to Bind(), SetMulticastOutboundInterface(),\n  JoinMulticastGroup(), SendMessage(), and SetDscp().\n- Prevents dynamic race conditions and memory corruptions if an embedder\n  invokes these APIs from the wrong thread.\n\nBug: 492683133\nChange-Id: I8010ee0e21df3a7a09728fb904167fbaba9b3084\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814331\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "6c9289d322b648f5d837a9cfe744a6f555f48f61",
      "tree": "7fad130cc330a1d66d97b2e083b19e3e7206f765",
      "parents": [
        "9fe6f6b15d32559e0b551f2dee5e956b33093860"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Mon May 04 21:39:16 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 04 23:55:22 2026"
      },
      "message": "[openscreen] Use NoDestructor for static singletons to avoid exit-time destructors\n\nRefactor static singletons in SenderSession and CastNonce to use\nopenscreen::NoDestructor instead of manually leaking them on the heap\nusing \u0027new\u0027 to avoid exit-time destructors.\n\nThis change:\n- Refactors 5 static Error singletons in sender_session.cc to use\n  NoDestructor\u003cError\u003e.\n- Refactors the CastNonce singleton in cast_auth_util.cc to use\n  NoDestructor\u003cCastNonce\u003e.\n- Makes the CastNonce constructor public so NoDestructor can access it\n  (safe as the class is in an anonymous namespace).\n\nBug: 40031409\nBug: 492683133\nChange-Id: Ie26adbbc83a4ed0f08cbb3cf7bfe7821d742a08d\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7813205\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "9fe6f6b15d32559e0b551f2dee5e956b33093860",
      "tree": "4f6f3266d6e8e030c332302144052bfd3f0182e2",
      "parents": [
        "684bcd767271a21f3e5d475b17a0fd862f16c65e"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Mon May 04 22:39:03 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon May 04 23:47:52 2026"
      },
      "message": "[openscreen] Implement TLS write flow control (WANT_READ handling)\n\nImplement proper write flow control in TlsConnectionPosix to prevent\nevent loop busy-waiting when SSL_write is blocked by a read operation\n(e.g., during renegotiation, returning SSL_ERROR_WANT_READ).\n\nThis change:\n- Adds `is_write_blocked_by_read_` state to TlsConnectionPosix.\n- Updates `HasPendingWrite()` to return false when the write path is\n  blocked by read, preventing SocketHandleWaiter from polling for\n  writability.\n- Sets the flag when SSL_write returns SSL_ERROR_WANT_READ.\n- Resets the flag when TryReceiveMessage() is called (socket is\n  readable), allowing the write path to retry after the read path makes\n  progress.\n\nBug: 492683133\nChange-Id: Ie44060036f6446f30f483110496270f0b7813b28\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7814283\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "684bcd767271a21f3e5d475b17a0fd862f16c65e",
      "tree": "b9098e64aba77ed8225e0c8edd484993c1622770",
      "parents": [
        "d88340c36f8ccc764d8deaa250433d19b268ba77"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Fri May 01 21:40:05 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri May 01 22:35:11 2026"
      },
      "message": "[security,codehealh] Roll protobuf to 33.6 to patch vulnerability\n\nThis patch rolls protobuf to 33.6 to patch some vulnerabilities. A new\n`tools/roll_protobuf.sh` script is also added to make rolling protobuf\nmuch easier. This roll required zero manual intervention after running\nthe script.\n\nThe script also now prunes obviously not needed directories (such as the\ngithub directory and not supported languages), reducing the checkout\nsize by 465 KiB / \u003e half a million lines of code.\n\nBug: b/507096835\nChange-Id: I9d75f398f96b88fb5f6d7694443c0cc36e375c73\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7808806\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nSLSA-Policy-Verified: SLSA Policy Verification Service \u003cdevtools-gerritcodereview-exitgate@google.com\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "d88340c36f8ccc764d8deaa250433d19b268ba77",
      "tree": "aa9e18243ce09d4854825cb79967d4b8f5d97310",
      "parents": [
        "89840585b88e697b5fcce4e6a2bb7cd65b5502a8"
      ],
      "author": {
        "name": "Edgar Aguilar",
        "email": "eledgar@google.com",
        "time": "Fri Apr 24 18:23:39 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Thu Apr 30 16:47:16 2026"
      },
      "message": "Fix GN visibility for openscreen_cast_auth_util_fuzzer\n\nThis updates the visibility list for certificate_boringssl to allow all\ntargets within //components/media_router/common/providers/cast/channel\nto depend on it.\n\nThis is necessary because a change to the fuzzer_test template in\nChromium for android causes intermediate generated targets to inherit\nthe fuzzer\u0027s dependencies. This breaks the strict target-name visibility\ncheck\n\nBug: 506174854\nChange-Id: I83702f3e353d9f76aedf3ede9387de987bca937b\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7793868\nCommit-Queue: Edgar Aguilar \u003celedgar@google.com\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nReviewed-by: Titouan Rigoudy \u003ctitouan@chromium.org\u003e\n"
    },
    {
      "commit": "89840585b88e697b5fcce4e6a2bb7cd65b5502a8",
      "tree": "8e505d8d93acb500ad9bb79713e52977dc631636",
      "parents": [
        "63a447cc350c42c88cf1004c03807e00f6b7e15e"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue Apr 28 23:18:37 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Wed Apr 29 17:59:26 2026"
      },
      "message": "[cast_streaming][security] Prevent JSON parsing aborts with non-objects\n\nSenderMessage::Parse and other message parsing functions index into\nconst Json::Value\u0026 references with string keys without verifying the\nroot is an object. If the parsed JSON resolves to a scalar or an array,\njsoncpp aborts the process instead of returning a null value because\nOpenScreen builds with JSON_USE_EXCEPTION\u003d0.\n\nThis CL adds explicit .isObject() validation steps to json parsing\nfunctions across the cast/streaming and cast/sender namespaces to\nproperly reject malformed arrays/scalars before querying them.\n\nBug: b/505947418, b/505902444\nChange-Id: Ife4d19bfb592656a48773e9e7069571b617ce7df\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7801091\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "63a447cc350c42c88cf1004c03807e00f6b7e15e",
      "tree": "e3a7422fba73bc9f8e90895b719394cc1522ec73",
      "parents": [
        "af9d06967a0a47f63815aff397162caad9d0bc6d"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue Apr 28 04:56:44 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Apr 28 21:15:21 2026"
      },
      "message": "[codehealth] fix static initializer test failure\n\nThis patch fixes a macos specific static initalizer issue by\nreverting a recent refactor in ScopedWakeLockMac.\n\nChange-Id: Ib3e4a8c43d37af57acb677d19203843520028165\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7797504\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "af9d06967a0a47f63815aff397162caad9d0bc6d",
      "tree": "c5b391a95c4b935ceaba98d5fbfbb17400a78265",
      "parents": [
        "be79dbc567b38d0b3d98d196cd361b6c8aa56add"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Mon Apr 27 20:46:57 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Apr 28 00:15:53 2026"
      },
      "message": "Fix potential UAF in Cast streaming sessions\n\nThis CL ensures that ReceiverSession and SenderSession unregister themselves\n(and their components) from the Environment upon destruction. Previously,\nEnvironment would hold dangling raw pointers to these objects, leading to\na Use-After-Free when socket events or statistics collection occurred\nafter a session was destroyed.\n\nBug: b/505815444\nChange-Id: I4b3874d0b9f40ea2e7eab940bd3c83f7d08c42ab\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7797696\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "be79dbc567b38d0b3d98d196cd361b6c8aa56add",
      "tree": "17996cae3e21e571c4529fb7b438484b9f6f510a",
      "parents": [
        "adca75ad5d978fde166d18efedee039e36394c8f"
      ],
      "author": {
        "name": "Taesun Yeoum",
        "email": "taesuny@google.com",
        "time": "Fri Apr 17 00:26:14 2026"
      },
      "committer": {
        "name": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Mon Apr 20 19:13:34 2026"
      },
      "message": "Support custom namespace\n\nMirroringApplication supports two namespaces, kCastWebrtcNamespace and kCastRemotingNamespace.\nTo support custom namespaces, a custom message callback is added to SessionMessenger, where non-standard namespace messages are sent to.\n\n\nChange-Id: I78b7f501aee339047627b96a01fa15265c29cf78\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7731037\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nCommit-Queue: Taesun Yeoum \u003ctaesuny@google.com\u003e\nReviewed-by: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    },
    {
      "commit": "adca75ad5d978fde166d18efedee039e36394c8f",
      "tree": "397d317339ddc8754f6936c01ea853bead1a6e62",
      "parents": [
        "41a10a370330cf8c211f3bf80c128bf50a22985e"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Thu Apr 09 22:47:52 2026"
      },
      "committer": {
        "name": "Openscreen LUCI CQ",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Apr 10 22:10:17 2026"
      },
      "message": "[codehealth] Fix standalone E2E scripts and flat_map teardown crashes\n\n- Fixes a bug in the E2E tests where fatal logs were ignored due to incorrect tuple unpacking.\n\n- Fixes a race condition where cast_receiver could crash during teardown because flat_map::erase_key used OSP_CHECK when a key was not found.\n\n- Improves E2E error outputs when a fatal log is encountered.\n\n- Fixes Python argument parsing in standalone_e2e.py so the unittest module does not complain.\n\nChange-Id: Ia6ba4420990f3edc2af213c0d1b9f0580c367e12\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7746325\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "41a10a370330cf8c211f3bf80c128bf50a22985e",
      "tree": "96a9537c65ef080ca42cd3d100651bbe5c8a30a9",
      "parents": [
        "c8117813dfbf04615dcd0d36bcfdc8492376c7c9"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Wed Apr 08 18:17:23 2026"
      },
      "committer": {
        "name": "Openscreen LUCI CQ",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Fri Apr 10 19:25:45 2026"
      },
      "message": "[codehealth] Enable no exit time destructors check\n\nThis patch enables the no exit time destructors clang check, and fixes\nviolations of this check. A new `NoDestructor` class is added to avoid\nlittering the codebase with `static Foo* kStaticFoo \u003d new Foo()` to avoid\ndeclaring exit time destructors.\n\nBug: 40031409\nChange-Id: I7b94ee90f810ab8848d85b6548793232c5f65176\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7732861\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "c8117813dfbf04615dcd0d36bcfdc8492376c7c9",
      "tree": "1e04b1fabe30e0671d149a4264349ab4d4529273",
      "parents": [
        "10a412544c61178e03a65a6092a94a4b82ab4532"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue Mar 31 05:56:54 2026"
      },
      "committer": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Wed Apr 01 01:08:54 2026"
      },
      "message": "[Cast Streaming] Support kNumFramesDroppedByEncoder\n\nAdded ReportFrameDropEvent to Sender to align with the Receiver\u0027s\nReportPlayoutEvent. This new event captures the details of the frame\ndropped by the encoder and wires it up to the statistics analyzer for\ntracking kNumFramesDroppedByEncoder.\n\nBug: b/298205111\nChange-Id: I176b3a539c7682ba08912492447243f5ebbde231\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7709359\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\n"
    },
    {
      "commit": "10a412544c61178e03a65a6092a94a4b82ab4532",
      "tree": "abf322e150d0d39037d2a1ce1305fec2553dfa02",
      "parents": [
        "9d626c1c16cbaf46d9232ec034d3fac395b4f31f"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue Mar 31 05:42:20 2026"
      },
      "committer": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue Mar 31 22:28:54 2026"
      },
      "message": "[Code Health] Cleanup Sender, Receiver ownership\n\nThis patch does some significant cleanups of the Sender and\nReceiver classes, in order to make embedder\u0027s lives easier (and\nideally our own) around testing and reasoning about these classes.\n\nSender and Receiver are now virtual abstract base classes, making\nmocking easy and making it possible for tests in libcast and\ntests in the embedder to not have to worry about implementation\ndetails.\n\nPreviously, it was impossible to for embedders to appropriately\ntest classes they write that depend on the Receiver interface --\nsince you can\u0027t construct a receiver without a packet router,\nand including the packet router header is banned by GN check.\n\nBypass-Check-License: moved some files around\nBug: 255632830\nChange-Id: I2347bf370c392e2f663872c49f6fb9f8a94ee20d\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7594201\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\n"
    },
    {
      "commit": "9d626c1c16cbaf46d9232ec034d3fac395b4f31f",
      "tree": "6ecb958243b36614bd1577e5739a5a59105bb926",
      "parents": [
        "448a19d1f24e0f8ce85ad0c1c6a50cf370ae69d7"
      ],
      "author": {
        "name": "Jordan Bayles",
        "email": "jophba@chromium.org",
        "time": "Tue Mar 31 03:23:36 2026"
      },
      "committer": {
        "name": "Openscreen LUCI CQ",
        "email": "openscreen-scoped@luci-project-accounts.iam.gserviceaccount.com",
        "time": "Tue Mar 31 20:30:09 2026"
      },
      "message": "[OWNERS] Add Taesun Yeoum as an additional reviewer\n\nThis patch adds taesuny@ to the OWNERS list as an additional\nreviewer. Taesun has made some significant CLs for Open Screen:\n\nhttps://chromium-review.googlesource.com/c/openscreen/+/7108400\nhttps://chromium-review.googlesource.com/c/openscreen/+/7247255\nhttps://chromium-review.googlesource.com/c/openscreen/+/7283925\n\nAs well as some smaller, single / few line changes:\nhttps://chromium-review.googlesource.com/c/openscreen/+/6917871\nhttps://chromium-review.googlesource.com/c/openscreen/+/7128520\nhttps://chromium-review.googlesource.com/c/openscreen/+/7517644\nhttps://chromium-review.googlesource.com/c/openscreen/+/7598315\n\nIn addition, Taesun manages the downstream integration of libcast into\nthe Android Cast implementation, so has extensive experience with the\nlibrary as a consumer.\n\nI believe that, in conjuction, this makes him a great candidate for\ninclusion in our OWNERS list.\n\nChange-Id: Ia623d54e61ed0852adf85c13541c313887e2b4b6\nReviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/7714244\nReviewed-by: Muyao Xu \u003cmuyaoxu@google.com\u003e\nReviewed-by: Mark Foltz \u003cmfoltz@chromium.org\u003e\nCommit-Queue: Jordan Bayles \u003cjophba@chromium.org\u003e\n"
    }
  ],
  "next": "448a19d1f24e0f8ce85ad0c1c6a50cf370ae69d7"
}
