)]}'
{
  "commit": "4e4401033cb2227b62445949de098499fee1506e",
  "tree": "94c487bdf6c4e4f193a1fca312e1d737c61b0670",
  "parents": [
    "b650d8fa6c391b5f55e5736f3a23d863744861d4"
  ],
  "author": {
    "name": "bnc",
    "email": "bnc@google.com",
    "time": "Tue Oct 20 17:32:29 2020 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Oct 20 17:33:00 2020 -0700"
  },
  "message": "Introduce granular QPACK encoder/decoder stream error codes.\n\nAdd new error codes to QpackInstructionDecoder.  This class is used by\nQpackEncoderStreamReceived to decode the encoder stream, by\nQpackDecoderStreamReceived to decode the decoder stream, and by\nQpackProgressiveDecoder to decode header blocks.  Ignore error codes in\nQpackProgressiveDecoder because header block decoding errors are stream errors,\nnot connection close errors, and unlike CONNECTION_CLOSE frames, RESET_STREAM\nframes are not able to convey any extra information other than the mandatory\ngeneric error code.  Convert QpackInstructionDecoder::ErrorCode error codes to\nnewly added QuicErrorCodes in\nQpackEncoderStreamReceiver::OnInstructionDecodingError() and\nQpackDecoderStreamReceiver::OnInstructionDecodingError().\n\nQPACK encoder stream errors are detected in QpackEncoderStreamReceiver and in\nQpackDecoder.  Swap all QuicErrorCodes to the new ones, and gate them by the\nflag in a single place, in QpackDecoder::OnErrorDetected().  Do the same thing\nfor QPACK decoder stream errors in QpackDecoderStreamReceiver and QpackEncoder.\n\nProtected by FLAGS_quic_reloadable_flag_quic_granular_qpack_error_codes.\n\nPiperOrigin-RevId: 338170616\nChange-Id: I40fbf1c04869d74984e20f48c317daa995b6e99d\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "07c6f4e37a5e34c0884007ec0720f402329183d2",
      "old_mode": 33188,
      "old_path": "quic/core/http/quic_spdy_session_test.cc",
      "new_id": "84ea61764d80a007c9dbd8d4660b592910104e09",
      "new_mode": 33188,
      "new_path": "quic/core/http/quic_spdy_session_test.cc"
    },
    {
      "type": "modify",
      "old_id": "67d6a4e66d00b05cc5ec944c51b649a56ac6c076",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_decoder.cc",
      "new_id": "e0d7e20c92f7bc1e6c860f67f3364163200807b8",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_decoder.cc"
    },
    {
      "type": "modify",
      "old_id": "528fb1fd857165abd43f28842f381ca4318ad463",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_decoder_stream_receiver.cc",
      "new_id": "e63d853da20d59ca37762081bc8b4373db99bbbf",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_decoder_stream_receiver.cc"
    },
    {
      "type": "modify",
      "old_id": "c20306a9fbc3b87a38c74ccfa880cb92d084d891",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_decoder_stream_receiver.h",
      "new_id": "b3b3d692cbe2fac3d0c44828c3b22d0a9a786580",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_decoder_stream_receiver.h"
    },
    {
      "type": "modify",
      "old_id": "44e40fa3d17c782cbedd49bbfce9f01ed2b8f166",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_decoder_stream_receiver_test.cc",
      "new_id": "af8af8c92a3c205e64cdfde44718ac010946d88c",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_decoder_stream_receiver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "c3348e7e9247f98d04ab315a1864c116726564b9",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_decoder_test.cc",
      "new_id": "988ba8fc3fde690cba4cc358a4f94779fe712f82",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_decoder_test.cc"
    },
    {
      "type": "modify",
      "old_id": "58df9d090bd736e149ceedcb231c802c41dacb81",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_encoder.cc",
      "new_id": "f19e16321666d74bfadfc797c8a53b8f058c151c",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_encoder.cc"
    },
    {
      "type": "modify",
      "old_id": "1cfa60bca80c12503591eeab039d6c8721c14990",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_encoder_stream_receiver.cc",
      "new_id": "95260ab3e7a475b448d9671cf4c2f989ab49d49c",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_encoder_stream_receiver.cc"
    },
    {
      "type": "modify",
      "old_id": "8b865472c270c717fb5bb6df4c1a84aec9857f41",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_encoder_stream_receiver.h",
      "new_id": "fa94a5353ee073865d57939025acce02e9560b69",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_encoder_stream_receiver.h"
    },
    {
      "type": "modify",
      "old_id": "81e47e78b30518b50a073117cbd136ac8d67f76e",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_encoder_stream_receiver_test.cc",
      "new_id": "235bd799b8f097b36379ed678e023d6a02cbd189",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_encoder_stream_receiver_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a248102a1b1f2b16cef3ea4d9ffc53e716f0b58f",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_encoder_test.cc",
      "new_id": "8c0756f151cd1ea7d5259d10ce7e07ed4e6e4b8c",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_encoder_test.cc"
    },
    {
      "type": "modify",
      "old_id": "b4c6dd3855aa954877b218b678c0f30c23abe9d6",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_instruction_decoder.cc",
      "new_id": "539e3109cca90f91321cff44fe3f39ab2a957301",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_instruction_decoder.cc"
    },
    {
      "type": "modify",
      "old_id": "759c8f0cb70a0081ae184af754d295bd742af1f3",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_instruction_decoder.h",
      "new_id": "b8edfb7dbf45988bd513bac71e40558b7aa0ad2f",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_instruction_decoder.h"
    },
    {
      "type": "modify",
      "old_id": "25c7f7a77024b9127566829ab0a9950da5556cfe",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_instruction_decoder_test.cc",
      "new_id": "ac7b3691e4c2a1628cb4dc74858a2021160cfe33",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_instruction_decoder_test.cc"
    },
    {
      "type": "modify",
      "old_id": "2b3c21e338bb87ccdf7e9793577b9fe6781cf86f",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_progressive_decoder.cc",
      "new_id": "83c55e0b31b9c95e0044840651866b562d46ada1",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_progressive_decoder.cc"
    },
    {
      "type": "modify",
      "old_id": "ecac020b63a40d5a30203c8992cc205b2084407e",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/qpack_progressive_decoder.h",
      "new_id": "dfc25f9177d113bc86359607fb801bde25546b42",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/qpack_progressive_decoder.h"
    },
    {
      "type": "modify",
      "old_id": "a3529cf17700ca89f19694084daae87e87f6bce5",
      "old_mode": 33188,
      "old_path": "quic/core/quic_error_codes.cc",
      "new_id": "a57ded8990f1f8c7587ac5eab6702ffa02d20e40",
      "new_mode": 33188,
      "new_path": "quic/core/quic_error_codes.cc"
    },
    {
      "type": "modify",
      "old_id": "4df545eb2b9afd61fa97c23977a63a19b5d4d349",
      "old_mode": 33188,
      "old_path": "quic/core/quic_error_codes.h",
      "new_id": "74ab936836feaf7c37f62e469d6cd1d3b4fafd0e",
      "new_mode": 33188,
      "new_path": "quic/core/quic_error_codes.h"
    }
  ]
}
