)]}'
{
  "commit": "cd56c39414cf2afe4f81609d727ddd35866e0d22",
  "tree": "a6abcb6f6381c2cf771dd2337e2a48b7fe832789",
  "parents": [
    "e89591488981ed11791861a579c608007785f38a"
  ],
  "author": {
    "name": "Tommi",
    "email": "tommi@webrtc.org",
    "time": "Mon Jun 01 09:53:16 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jun 01 10:39:29 2026"
  },
  "message": "Refactor state caching for SctpDataChannel observers\n\nReplace the internal CachedGetters logic in ObserverAdapter with a\nsimplified CachedState mechanism in SctpDataChannel.\n\nCacheStateAndCallBackOnSignalingThread captures the channel\u0027s state and\nerror on the network thread before posting a task to the signaling\nthread. These values are temporarily cached and returned by the state()\nand error() getters during the callback\u0027s execution.\n\nThis ensures that observers receive the correct state values captured at\nthe time of the event and avoids thread hops to read the state/error and\nalso removes some boilerplate ObserverAdapter implementation.\n\nBug: webrtc:510487699\nChange-Id: I62a303efa26c8e84a56feb678d715aac5c8ac433\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/369142\nReviewed-by: Johannes Kron \u003ckron@webrtc.org\u003e\nCommit-Queue: Tomas Gunnarsson \u003ctommi@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#47859}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3622e7ea7d714b80f991aeaa3a65e5848cabfc26",
      "old_mode": 33188,
      "old_path": "pc/BUILD.gn",
      "new_id": "1f08a0f2baf7dfedc1baa663a5850f2f86f5f94e",
      "new_mode": 33188,
      "new_path": "pc/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "b6d6639d6f9f1dafb35db764174de26f6be22689",
      "old_mode": 33188,
      "old_path": "pc/data_channel_controller.cc",
      "new_id": "6477e7ba79328beca5fae45def3530a52376f2d1",
      "new_mode": 33188,
      "new_path": "pc/data_channel_controller.cc"
    },
    {
      "type": "modify",
      "old_id": "988329338e0a4ced10e594d3784463a83b36179b",
      "old_mode": 33188,
      "old_path": "pc/rtc_stats_collector_unittest.cc",
      "new_id": "75ec9c8802b80f928a5e8c785e83f8f7d3269bab",
      "new_mode": 33188,
      "new_path": "pc/rtc_stats_collector_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "12dcbf194aa3211265dc3e34fc0d7a181f872d09",
      "old_mode": 33188,
      "old_path": "pc/sctp_data_channel.cc",
      "new_id": "33321340b2a987d54d8602fa2e47139b3010a119",
      "new_mode": 33188,
      "new_path": "pc/sctp_data_channel.cc"
    },
    {
      "type": "modify",
      "old_id": "70280226bd4df4bed38ee5a641bbb5b04a7a71b2",
      "old_mode": 33188,
      "old_path": "pc/sctp_data_channel.h",
      "new_id": "dfefb43bd3ad5e2d60e2486088f52281335ca08f",
      "new_mode": 33188,
      "new_path": "pc/sctp_data_channel.h"
    },
    {
      "type": "modify",
      "old_id": "c003f4abf85053bced7876bed102607f3855a9fe",
      "old_mode": 33188,
      "old_path": "pc/test/fake_data_channel_controller.h",
      "new_id": "ef71133bcd246ed9e442c233ee34252a94d77d59",
      "new_mode": 33188,
      "new_path": "pc/test/fake_data_channel_controller.h"
    },
    {
      "type": "modify",
      "old_id": "18fce8503aec1f3df490abb7a216d3548e4209e9",
      "old_mode": 33188,
      "old_path": "pc/test/fake_peer_connection_for_stats.h",
      "new_id": "71e32290df26c6e7af0173f386c12111ffe01fea",
      "new_mode": 33188,
      "new_path": "pc/test/fake_peer_connection_for_stats.h"
    },
    {
      "type": "modify",
      "old_id": "fdc554cfdffb838bf7ca5cfb6fc59734a58fbc10",
      "old_mode": 33188,
      "old_path": "pc/test/mock_data_channel.h",
      "new_id": "197357b147a37939aee330c10429007f0014fa5e",
      "new_mode": 33188,
      "new_path": "pc/test/mock_data_channel.h"
    }
  ]
}
