)]}'
{
  "commit": "acfdb39e6b7b4af003c245bb741630063930be9c",
  "tree": "315eeaecf5be814eaa8c793a1ac33865e20d7f16",
  "parents": [
    "7fb9bc3585637f1f29cb25de84f10548f37e223a"
  ],
  "author": {
    "name": "martinduke",
    "email": "martinduke@google.com",
    "time": "Tue May 23 15:23:55 2023 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue May 23 15:25:50 2023 -0700"
  },
  "message": "Refactor PerPacketOptions for QuicWriter. From the bug:\n\nper_packet_options_ was originally designed as a vehicle for platforms to get specific instructions to their corresponding QuicWriters via a QuicConnection that didn\u0027t understand the semantics of those instructions. Therefore, it is passed to QuicConnection as a piece of memory of which the platform retains ownership.\n\nOver time, other instructions specific to QuicConnection have appeared in this struct, as it provides a vehicle to send information to QuicWriter without changing APIs. But this violates the intent of the struct, makes Quiche functions reliant on a piece of memory owned by the platform, and is bug prone (e.g., if the platform provides the same piece of memory for all connections in a dispatcher, the outcome will be very bad).\n\nPiperOrigin-RevId: 534577370\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4a94c713c749ce575fe107f1bebf6fa4494ce230",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_batch_writer_base.cc",
      "new_id": "fae805f8271a29739793b4e70f45f32877038db9",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_batch_writer_base.cc"
    },
    {
      "type": "modify",
      "old_id": "a5a1e3877a52fe8804375bc86ea7311ba41d289e",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_batch_writer_base.h",
      "new_id": "a33b8e217ab65be931d8ea4c12d13ed3ac34b5cd",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_batch_writer_base.h"
    },
    {
      "type": "modify",
      "old_id": "ac7ddd793c55b23f1f62f3846d0f869e0f28f82f",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_batch_writer_buffer.cc",
      "new_id": "d283e2b9486d6a69ee91eec6cafcd1705e30694c",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_batch_writer_buffer.cc"
    },
    {
      "type": "modify",
      "old_id": "23694019c3d59f8a615d1d063ace3720c0763ec8",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_batch_writer_buffer.h",
      "new_id": "62282a308931472e699b3fb62c69fafc6443737a",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_batch_writer_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "e081a798d2ddd188b83d79923da45c270bd4de14",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_batch_writer_buffer_test.cc",
      "new_id": "ffa88f038390fb3e33eb0318ded5cb105921edf2",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_batch_writer_buffer_test.cc"
    },
    {
      "type": "modify",
      "old_id": "ebbb9176916b2b062a0dd0238c7dbb11edc80b41",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_batch_writer_test.h",
      "new_id": "d42867f42ab8e9a6e4f7b4e0a11d766e3637e2ce",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_batch_writer_test.h"
    },
    {
      "type": "modify",
      "old_id": "b6d6200fb544b6e29d06799ee0da009c9ba6c435",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_gso_batch_writer.cc",
      "new_id": "512e51f35eaaef61bdda2992339cc56f111485c7",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_gso_batch_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "17657fc2be32fbed5b787af24279eeb782e5c2a8",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_gso_batch_writer.h",
      "new_id": "96ccc76568a11d20acd67821539fe3a8d59a31a1",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_gso_batch_writer.h"
    },
    {
      "type": "modify",
      "old_id": "efe4c713897baccb2fb8fda8efd6184e57975fb1",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_gso_batch_writer_test.cc",
      "new_id": "c4c040654c244492e6adb200ba851c658517eab7",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_gso_batch_writer_test.cc"
    },
    {
      "type": "modify",
      "old_id": "8568e26f7c2bcf3afbd77def8b2c86bbc3c00f87",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_sendmmsg_batch_writer.cc",
      "new_id": "0c724b2724476cb86d1627c71df10f30c68eb53d",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_sendmmsg_batch_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "04a1b28374cbfa9c45cd57fd6e3cf488574e720a",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/batch_writer/quic_sendmmsg_batch_writer.h",
      "new_id": "9dda5ddb4e5dfcdadd4b1bfe736e04b610c39a98",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/batch_writer/quic_sendmmsg_batch_writer.h"
    },
    {
      "type": "modify",
      "old_id": "44e3abe1c01a566a4f3483cb7efeb22a78a8d82b",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/end_to_end_test.cc",
      "new_id": "d4e442f302645a9dfe73f753e7997d5455448e81",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/end_to_end_test.cc"
    },
    {
      "type": "modify",
      "old_id": "e7788640c168a88c4e3e51c485c1f819cc6e8758",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/http/quic_spdy_session_test.cc",
      "new_id": "6c982575e4ece40cefcabceb0861b26245bdce4d",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/http/quic_spdy_session_test.cc"
    },
    {
      "type": "modify",
      "old_id": "3e575f23d269771c72f3085d4b7e7169c7bba949",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_connection.cc",
      "new_id": "6fd85b7cf263cfdff8f846a264d769ca3bbb29f2",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_connection.cc"
    },
    {
      "type": "modify",
      "old_id": "8274be2133f00a25892f043b75262b0a57ad8e44",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_connection.h",
      "new_id": "a89e915a3b8a6478419dd5c4a8b84dcaac16890c",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_connection.h"
    },
    {
      "type": "modify",
      "old_id": "5db68bae21f390834dbbb40b1dbf05695ef0ed4f",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_connection_test.cc",
      "new_id": "4e326fdb5acbb41e31dfe37dd88bbceef03a3c38",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_connection_test.cc"
    },
    {
      "type": "modify",
      "old_id": "76f840b4e6ac3271e27ea5255abb560fd666b216",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_crypto_stream_test.cc",
      "new_id": "70928aeb9ff49afa221cad27ad2b8b2d8dd95011",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_crypto_stream_test.cc"
    },
    {
      "type": "modify",
      "old_id": "7eac8273563427bdbc8a0d98dbd99ec1fde53976",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_default_packet_writer.cc",
      "new_id": "6d452173444a18bb1431d438777ea2f16a60ab93",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_default_packet_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "718f8ebaea499a19f664d5d940f9b07fadb380c5",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_default_packet_writer.h",
      "new_id": "c5133629d4a64dd6c78de0c5d049f6d8e96db7fe",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_default_packet_writer.h"
    },
    {
      "type": "modify",
      "old_id": "ff2516abac4c34a8a684517d6a1971e21bf23e53",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_dispatcher_test.cc",
      "new_id": "37d61854451fbad17a9d8969e72da4fdbc15f432",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_dispatcher_test.cc"
    },
    {
      "type": "modify",
      "old_id": "de80dfd7ff35e7b5e5405b2832301f84595f02d5",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_linux_socket_utils.h",
      "new_id": "8d53e4708d0a55cc4b1c04737f84c9e2df212cc6",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_linux_socket_utils.h"
    },
    {
      "type": "modify",
      "old_id": "3e6cb21a4f08ef14292f470aa9e58cd8a4a7befd",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_packet_writer.h",
      "new_id": "c3b3fab77e9d44ba120d00dafc8d1e48312d42db",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_packet_writer.h"
    },
    {
      "type": "modify",
      "old_id": "c040c91042da63d3dd694b8037dea8e400222d9e",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_packet_writer_wrapper.cc",
      "new_id": "c3b4b280ceb3f7c406ade5418b1d23e535f826ce",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_packet_writer_wrapper.cc"
    },
    {
      "type": "modify",
      "old_id": "3afeaf17491ab0f7f67305f88dda467266b191b6",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_packet_writer_wrapper.h",
      "new_id": "7d43fdc7469119a8279cc567cee854c3c2c41b51",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_packet_writer_wrapper.h"
    },
    {
      "type": "modify",
      "old_id": "48c21d2330e1a7edcb65eca8c21f82f33a9b4e68",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_path_validator.cc",
      "new_id": "3185664403984c752366f8ccc44d59e0610c3308",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_path_validator.cc"
    },
    {
      "type": "modify",
      "old_id": "bdf74b30912339e674722d83afd4327229b587eb",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_session_test.cc",
      "new_id": "9bcbf7139296e06c80b82f27f80464469dfa694a",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_session_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d4799738cccb90b8f35f0dd1118a9170ff3b6d27",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_time_wait_list_manager.cc",
      "new_id": "484d35efa03ee5cbf0f35c55edc0cbb58997770e",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_time_wait_list_manager.cc"
    },
    {
      "type": "modify",
      "old_id": "eef0b9993bf0d21355f0aac293b7b5fe7e406aaf",
      "old_mode": 33188,
      "old_path": "quiche/quic/core/quic_time_wait_list_manager_test.cc",
      "new_id": "9b2f36f0e5cdb1ace3c62c7970704d651e357bef",
      "new_mode": 33188,
      "new_path": "quiche/quic/core/quic_time_wait_list_manager_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d3843638f7c87adbce49fdcbc5781490c7882c5a",
      "old_mode": 33188,
      "old_path": "quiche/quic/masque/masque_encapsulated_client.cc",
      "new_id": "34adde4a54ff6109a9268796a0b66e28f932b6d0",
      "new_mode": 33188,
      "new_path": "quiche/quic/masque/masque_encapsulated_client.cc"
    },
    {
      "type": "modify",
      "old_id": "1a9d023f2941ee1e58debeeb8f05488840dfc5f6",
      "old_mode": 33188,
      "old_path": "quiche/quic/qbone/qbone_session_test.cc",
      "new_id": "ab92c1cb5db70ff16d15a6692564eccd888c3a37",
      "new_mode": 33188,
      "new_path": "quiche/quic/qbone/qbone_session_test.cc"
    },
    {
      "type": "modify",
      "old_id": "b7cc198bf1c06f4c694e9fd212e4cd43533d02cd",
      "old_mode": 33188,
      "old_path": "quiche/quic/qbone/qbone_stream_test.cc",
      "new_id": "16052bc302305a5fa8649740369c0a488db3a721",
      "new_mode": 33188,
      "new_path": "quiche/quic/qbone/qbone_stream_test.cc"
    },
    {
      "type": "modify",
      "old_id": "1e146c4376ffa699525f08e45db4d3ea561284fe",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/bad_packet_writer.cc",
      "new_id": "7961fe8d3cd843051c9742d384b3a853a7575517",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/bad_packet_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "bcf12f5f4dbfc34d901a05cc4c7d4ab8c4c0da2f",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/bad_packet_writer.h",
      "new_id": "5f3da2405bf4ee652a6b8077f7182c3b07142ef8",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/bad_packet_writer.h"
    },
    {
      "type": "modify",
      "old_id": "dcdeac3113ac730c1bedee2a7cd0d9ef62970ca9",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/first_flight.cc",
      "new_id": "a0b93fb4a204cfe011035aad9f0269998869f2d9",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/first_flight.cc"
    },
    {
      "type": "modify",
      "old_id": "389603174714d54d8dbbcf328b55d907e901686c",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/first_flight.h",
      "new_id": "948511a4ba7c9491bf3db043c80f2f291853e062",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/first_flight.h"
    },
    {
      "type": "modify",
      "old_id": "fa46be157fbdb89cb57945ed57c63289d9112430",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/limited_mtu_test_writer.cc",
      "new_id": "8f9bc1c4a0a8542a198ae2ebe9f1f22792f2951b",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/limited_mtu_test_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "96cc82800f0f371d0a7ae6bdb7421441da94d96a",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/limited_mtu_test_writer.h",
      "new_id": "e0468724c1aeb4d09e95a8fb8bbf5d01c9314cd6",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/limited_mtu_test_writer.h"
    },
    {
      "type": "modify",
      "old_id": "69aae1456f2171806f2ba692536c24d673191a8c",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/packet_dropping_test_writer.cc",
      "new_id": "ac9625f37e6330a9932188fe33094682d5cf92b4",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/packet_dropping_test_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "a7e91d3465c9a230d268a722cbf07c1222e87296",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/packet_dropping_test_writer.h",
      "new_id": "dd83cb3b3475b2ed576c19482db2054c49a7be68",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/packet_dropping_test_writer.h"
    },
    {
      "type": "modify",
      "old_id": "8eb8573a793788ac5764fb5c5ed53bcca51f3539",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/packet_reordering_writer.cc",
      "new_id": "12ff9b41ffc2f4634731c17eee48040d1f35d2a7",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/packet_reordering_writer.cc"
    },
    {
      "type": "modify",
      "old_id": "53204c54a81619b68d94a05c225ee5989f4dc177",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/packet_reordering_writer.h",
      "new_id": "fb77c0d9117225e607a7996dc827916c97eeb76f",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/packet_reordering_writer.h"
    },
    {
      "type": "modify",
      "old_id": "e622ed816fa5f8edd08f88cf045f0b2b43f3f787",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/quic_test_utils.cc",
      "new_id": "e04f0ca914f7a7f8d6cf1e94166aa84aac482ce4",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/quic_test_utils.cc"
    },
    {
      "type": "modify",
      "old_id": "7b5667a4d41f39c43f354fcc518862b63add163e",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/quic_test_utils.h",
      "new_id": "e368259c6238e940c0d3906f436ad3c5ed086f5f",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/quic_test_utils.h"
    },
    {
      "type": "modify",
      "old_id": "d466c96137d5161459e8c601497be5ba59f2b64f",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/simulator/quic_endpoint_base.cc",
      "new_id": "3ff517aeee04b042bc593ed71a96a18e9449b725",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/simulator/quic_endpoint_base.cc"
    },
    {
      "type": "modify",
      "old_id": "540b2852bc8d4f631949d56352c5c2f4dd0e8f69",
      "old_mode": 33188,
      "old_path": "quiche/quic/test_tools/simulator/quic_endpoint_base.h",
      "new_id": "c734b81bb3d9a4cad03832efc2247b5a3557d002",
      "new_mode": 33188,
      "new_path": "quiche/quic/test_tools/simulator/quic_endpoint_base.h"
    },
    {
      "type": "modify",
      "old_id": "424b8b98732ad9be02be054f838764f249a01087",
      "old_mode": 33188,
      "old_path": "quiche/quic/tools/quic_client_default_network_helper.cc",
      "new_id": "9c1e4e5bc40196a3e9af060056ffc2652447aeb6",
      "new_mode": 33188,
      "new_path": "quiche/quic/tools/quic_client_default_network_helper.cc"
    }
  ]
}
