)]}'
{
  "commit": "37c2bbe3ad4ae22543b69f4beaf5b7d9bf513dcb",
  "tree": "826cac220753cbcf2b9725831345b50fe55f4d07",
  "parents": [
    "c6a366bc5ee56f32d26857a17e233568cdd9ae49"
  ],
  "author": {
    "name": "rch",
    "email": "rch@google.com",
    "time": "Thu Feb 29 11:38:12 2024 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Feb 29 11:40:08 2024 -0800"
  },
  "message": "Add a new MetadataVisitor class to QuicSpdyStream.\nIf registered, an instance of this new class will receive decoded HTTP/3\nMETADATA frames. If not, registered, HTTP/3 METADATA frames will be delivered\nas unknown HTTP/3 frames, which is current behavior.\n\nThis is motivated by implements HTTP/3 METADATA handling in Envoy. Without\nthis new visitor, we need to hook into the EnvoyQuicSession\u0027s OnUnknownFrame\nmethods. But this is really annoying because we receive frames on the Stream,\nbounce them (at the QUICHE layer) over the the Session which parses them into\nHeaders and then need to bounce them back over to the Stream. This is awkward.\nBy using this new Visitor, the Stream itself can handle METADATA.\n\nProtected by FLAGS_quic_reloadable_flag_quic_enable_http3_metadata_decoding.\n\nPiperOrigin-RevId: 611542297\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "94cc3671d0c9eee4868384d4c36966d3fd41ccda",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/http_decoder.cc",
      "new_id": "7a0828c2b781d931ebfd33eb4c2f4809af1c639c",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/http_decoder.cc"
    },
    {
      "type": "modify",
      "old_id": "d8cd6a87e46ad6bb7df8efee6d6987dbd2c20122",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/http_decoder.h",
      "new_id": "a08c5621b9c07f8a2e9f5cabb6cb312acc5d3ba4",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/http_decoder.h"
    },
    {
      "type": "modify",
      "old_id": "252b637e83299447d0ba477aeeaed99a06dedd1a",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/http_decoder_test.cc",
      "new_id": "f0af1c5c773e51df6297318d77a2a6c5246c6658",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/http_decoder_test.cc"
    },
    {
      "type": "modify",
      "old_id": "6a57d5f7a81d31976db9420fc42a71130141e095",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_receive_control_stream.cc",
      "new_id": "4cba9d56a9874fe3aa2b584dec98dc76ac18e041",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_receive_control_stream.cc"
    },
    {
      "type": "modify",
      "old_id": "e3ad39d7c7035929ee206f1ed9b81c7ac4b2ead3",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_receive_control_stream.h",
      "new_id": "c7f4ee2d7c45c5d816b6ef2fe64772629f7735bd",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_receive_control_stream.h"
    },
    {
      "type": "modify",
      "old_id": "48c363a614baad1d2348e9dc37bcab7d33e0e4d2",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_spdy_session.cc",
      "new_id": "df57d201306408f91b861103259e4f9b86109133",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_spdy_session.cc"
    },
    {
      "type": "modify",
      "old_id": "64757bca0a78fc4b24b0349b7dbb2c7c91850390",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_spdy_stream.cc",
      "new_id": "77233fd946755a025d9a73f64766b8e4dd0860f0",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_spdy_stream.cc"
    },
    {
      "type": "modify",
      "old_id": "5835a777fc74b3ed6e2d518419820cf65dcbe985",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_spdy_stream.h",
      "new_id": "10c34b10f861bc5d9551b7fa95c14740b4c6ec39",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_spdy_stream.h"
    },
    {
      "type": "modify",
      "old_id": "2e08a5ceb2965ec80f67890b429d1ba3450739e0",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_spdy_stream_test.cc",
      "new_id": "4f6ca188ce57a685676d63283e046994f744041c",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_spdy_stream_test.cc"
    },
    {
      "type": "modify",
      "old_id": "bb7d09d4bf86b7a2a6acc6fbfbf7d88ec7d80acc",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_flags_list.h",
      "new_id": "d2b1864ee5e7fe85c1a401c2f5357dc9b3a8b0b9",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_flags_list.h"
    },
    {
      "type": "modify",
      "old_id": "7de2c2adec9d656206ebecc53e471686d57f42b5",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/quic_test_utils.h",
      "new_id": "72f5bd0291e30fd77b1866159a05947c42857bf4",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/quic_test_utils.h"
    }
  ]
}
