)]}'
{
  "commit": "4b5a68aaee041f74ef8317f75183d267a4774eb1",
  "tree": "256b25e50991575885fce7bc23172e8d54d97c94",
  "parents": [
    "748cc738ca5d66168e23dedd756bbcb66066c2f9"
  ],
  "author": {
    "name": "dschinazi",
    "email": "dschinazi@google.com",
    "time": "Thu Aug 15 15:45:36 2019 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Fri Aug 16 04:55:51 2019 -0700"
  },
  "message": "Do not queue coalesced undecryptable packets twice\n\nThis CL adds QuicFramerVisitorInterface::OnUndecryptablePacket and uses it to send undecryptable packets from QuicFramer to QuicConnection, instead of the previous mechanism which relied on QuicFramer::ProcessPacket returning QUIC_DECRYPTION_FAILURE. The new mechanism has the following advantages:\n1) It only sends the current packet, without any subsequent coalesced packets\n2) It knows if the decryption failed due to a missing key, which allows us to avoid buffering packets that we know we will never be able to decrypt\n\nThis mechanism is enabled for versions that KnowsWhichDecrypterToUse() (which are v47+ || TLS, none of which are currently enabled) and when the new flag quic_framer_uses_undecryptable_upcall is true - the intent being to enable this for all versions once the flag protection process is complete.\n\nThis CL also adds QuicDataReader::FullPayload which is required to extract only this packet without further coalesced packets, and associated test.\n\ngfe-relnote: do not queue coalesced undecryptable packets twice, protected by disabled flag gfe2_restart_flag_quic_framer_uses_undecryptable_upcall\nPiperOrigin-RevId: 263658152\nChange-Id: I66aca2138e353306a5cf4fa9ec259680f4115890\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0e8e6f57402b428060547a71c444dc1ab2187d28",
      "old_mode": 33188,
      "old_path": "quic/core/chlo_extractor.cc",
      "new_id": "38e97bd15feee08653adfa69ca4abe6922db73d1",
      "new_mode": 33188,
      "new_path": "quic/core/chlo_extractor.cc"
    },
    {
      "type": "modify",
      "old_id": "cd065afd7245da9d7426caf4032e8d2241d58ae6",
      "old_mode": 33188,
      "old_path": "quic/core/quic_connection.cc",
      "new_id": "864f65281268c5905c6873c7d02f644ccda1eb4b",
      "new_mode": 33188,
      "new_path": "quic/core/quic_connection.cc"
    },
    {
      "type": "modify",
      "old_id": "76375845a176e0143373e0e5ad7c1975661f11d4",
      "old_mode": 33188,
      "old_path": "quic/core/quic_connection.h",
      "new_id": "87d0d81a0639f99a8684e7bc39ee9683c27d5a1c",
      "new_mode": 33188,
      "new_path": "quic/core/quic_connection.h"
    },
    {
      "type": "modify",
      "old_id": "d4f28a09f382b856dfa7687f7dfe6de747a2b1aa",
      "old_mode": 33188,
      "old_path": "quic/core/quic_data_reader.cc",
      "new_id": "87e964529ca3036d6e832170c4ee9faa0cb43dae",
      "new_mode": 33188,
      "new_path": "quic/core/quic_data_reader.cc"
    },
    {
      "type": "modify",
      "old_id": "72e2d1322586b086347002ca845c5fac7991949c",
      "old_mode": 33188,
      "old_path": "quic/core/quic_data_reader.h",
      "new_id": "74ed2269d0cae05744716606d63ee4b91f39e36a",
      "new_mode": 33188,
      "new_path": "quic/core/quic_data_reader.h"
    },
    {
      "type": "modify",
      "old_id": "301bfa6b6e93f91b8bd46c6bf308351293bc0334",
      "old_mode": 33188,
      "old_path": "quic/core/quic_data_writer_test.cc",
      "new_id": "64ad5dd22aed2de3e45ec7eac0efb199c1be8939",
      "new_mode": 33188,
      "new_path": "quic/core/quic_data_writer_test.cc"
    },
    {
      "type": "modify",
      "old_id": "93b85750aff76d81d06e768ca44dfe68d43985ac",
      "old_mode": 33188,
      "old_path": "quic/core/quic_framer.cc",
      "new_id": "08593da883bb9f89778a8d7ae3668b22824922cf",
      "new_mode": 33188,
      "new_path": "quic/core/quic_framer.cc"
    },
    {
      "type": "modify",
      "old_id": "be5f12814890c0d720556255275016c5c376863f",
      "old_mode": 33188,
      "old_path": "quic/core/quic_framer.h",
      "new_id": "c749f0438b45d4562006b5079de8aa577eff38fd",
      "new_mode": 33188,
      "new_path": "quic/core/quic_framer.h"
    },
    {
      "type": "modify",
      "old_id": "31b5ca574b11fea62fcb3b2d5f1c06343f9fd37d",
      "old_mode": 33188,
      "old_path": "quic/core/quic_framer_test.cc",
      "new_id": "4eb20dff36f8ca001c0826b98a044c14bcb8daf2",
      "new_mode": 33188,
      "new_path": "quic/core/quic_framer_test.cc"
    },
    {
      "type": "modify",
      "old_id": "f0872b60f31ed31c42ceab92fe167f36cea23530",
      "old_mode": 33188,
      "old_path": "quic/core/quic_ietf_framer_test.cc",
      "new_id": "9a2b562a82112a9fe1e40ef202dbc799d4d28e8e",
      "new_mode": 33188,
      "new_path": "quic/core/quic_ietf_framer_test.cc"
    },
    {
      "type": "modify",
      "old_id": "03b8420e457b876ed09f50c29204aa2ca397f970",
      "old_mode": 33188,
      "old_path": "quic/core/quic_packets.cc",
      "new_id": "80336d434e1dd9e6ba1b272870e541d6ccb629db",
      "new_mode": 33188,
      "new_path": "quic/core/quic_packets.cc"
    },
    {
      "type": "modify",
      "old_id": "3af15ea306e1f8f2e3fa04a93dab6c9cdb4c1d05",
      "old_mode": 33188,
      "old_path": "quic/core/quic_packets.h",
      "new_id": "5c34b64e1ae8fe9106e4699efb99eb51957f1251",
      "new_mode": 33188,
      "new_path": "quic/core/quic_packets.h"
    },
    {
      "type": "modify",
      "old_id": "f03f06b524eb880215a19e96664d773d4af5bb95",
      "old_mode": 33188,
      "old_path": "quic/test_tools/quic_test_utils.cc",
      "new_id": "ed8c55113253faa24b3e16bdd562c62d930fc8e6",
      "new_mode": 33188,
      "new_path": "quic/test_tools/quic_test_utils.cc"
    },
    {
      "type": "modify",
      "old_id": "03adff2ab75b79a182e4a79336ce834345a7b030",
      "old_mode": 33188,
      "old_path": "quic/test_tools/quic_test_utils.h",
      "new_id": "84374eac3458af157caa6582c10cfeef9a91b178",
      "new_mode": 33188,
      "new_path": "quic/test_tools/quic_test_utils.h"
    },
    {
      "type": "modify",
      "old_id": "547f6d26c8d7ba0643aff7853a18872689823c5d",
      "old_mode": 33188,
      "old_path": "quic/test_tools/simple_quic_framer.cc",
      "new_id": "ad7e7bb32a12bb10707451211b91f1c6116f4f97",
      "new_mode": 33188,
      "new_path": "quic/test_tools/simple_quic_framer.cc"
    },
    {
      "type": "modify",
      "old_id": "a87f10eadf15f09952ad07561cfd53a9f1319853",
      "old_mode": 33188,
      "old_path": "quic/tools/quic_packet_printer_bin.cc",
      "new_id": "7738ea7938f7cd3735cc7de0644d23eb2e8c6ffc",
      "new_mode": 33188,
      "new_path": "quic/tools/quic_packet_printer_bin.cc"
    }
  ]
}
