)]}'
{
  "commit": "66fe413129336b18eb0f329e40a9fabc9b867ec6",
  "tree": "aa41354d3571203c2fffa76ad2b4d8b47b87181f",
  "parents": [
    "1019e87d33f5875f00a520afdaab6a52e0fdddc1"
  ],
  "author": {
    "name": "Shelley Vohr",
    "email": "shelley.vohr@gmail.com",
    "time": "Thu Oct 01 08:43:26 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Oct 01 15:41:01 2026"
  },
  "message": "PipeWire capturer: forget a restore token the portal did not renew\n\nScreenCastPortal only updates restore_token_ when the Start response\nhas a \"restore_token\". When the response has none, the token that was\npassed in stays, and BaseCapturerPipeWire stores it in\nRestoreTokenManager again. That token is already dead:\nxdg-desktop-portal deletes a token as soon as it is used, so the next\ncapturer for that SourceId sends it for nothing.\n\nClear restore_token_ before reading the Start response, and always\nrecord the result, so an empty token replaces the stale one. The entry\nkeeps its persist mode. A capturer that finds no token gets the portal\ndialog, as it did when it sent the dead one.\n\nTested against a mock ScreenCast portal with a real PipeWire daemon.\nWith no token in the Start response the entry is now empty and a second\ncapturer sends none. A successful restore behaves as before.\n\nBug: webrtc:566241633\nChange-Id: I95ce2fe2bc45a693fd45285ac7d6a2e384ae0422\n\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/506700\nReviewed-by: Jan Grulich \u003cjgrulich@redhat.com\u003e\nCommit-Queue: Shelley Vohr \u003cshelley.vohr@gmail.com\u003e\nReviewed-by: Johannes Kron \u003ckron@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#48771}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ae6f04fc9b75862e076a0c6ce70e256731f77731",
      "old_mode": 33188,
      "old_path": "modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc",
      "new_id": "7a931869949da7664561daf7c41368caf9ce055c",
      "new_mode": 33188,
      "new_path": "modules/desktop_capture/linux/wayland/base_capturer_pipewire.cc"
    },
    {
      "type": "modify",
      "old_id": "fd3c75436f427367077d7e04c28a5170133d6cf9",
      "old_mode": 33188,
      "old_path": "modules/desktop_capture/linux/wayland/restore_token_manager.h",
      "new_id": "4df4b4c7482cfb200113762242b864ffbafc9655",
      "new_mode": 33188,
      "new_path": "modules/desktop_capture/linux/wayland/restore_token_manager.h"
    },
    {
      "type": "modify",
      "old_id": "ed35bfd73d629fa531bde3a9d278151fec5058f6",
      "old_mode": 33188,
      "old_path": "modules/desktop_capture/linux/wayland/screencast_portal.cc",
      "new_id": "78d09a2a88950c0d3b72011d83bbd2cb30dd9094",
      "new_mode": 33188,
      "new_path": "modules/desktop_capture/linux/wayland/screencast_portal.cc"
    }
  ]
}
