)]}'
{
  "commit": "9581d0c2f7c124de5a54a16bbe5b81a8d3d88d78",
  "tree": "eb7c1a3ac01ef42db53869130ae5a5e022eced74",
  "parents": [
    "c258e4f87af03afddb99d4eb171d0489c9626305"
  ],
  "author": {
    "name": "bnc",
    "email": "bnc@google.com",
    "time": "Wed Aug 14 10:08:55 2019 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Thu Aug 15 12:31:07 2019 -0700"
  },
  "message": "Refactor QPACK roundtrip fuzzer.\n\nCreate EncodingEnpoint and DecodingEndpoint, encapsulate crashing delegates.\nChange SplitHeaderList to return QuicHeaderList instead of SpdyHeaderBlock.\nCreate VerifyingDecoder and use it with QpackDecodedHeadersAccumulator for\ndecoding instead of previous DecodeHeaderBlock function with TestHeadersHandler.\n\nThis is largely a no-op refactor, except header blocks are not broken up into\nfragments any more when fed into the decoder.  This of course mostly invalidates\nthe fuzzer corpus, which I\u0027ll regenerate after I\u0027m done with the dynamic table\nwork.\n\nSome of this CL feels clumpsy, like OnHeaderBlockStart(),\nOnHeaderBlockFragment(), and OnHeaderBlockEnd() calls in succession, or calling\nAddExpectedHeaderList() instead of passing expected_header_list directly in\nOnHeaderBlockEnd().  This will all make sense with subsequent changes supporting\nthe dynamic table and async decoding.\n\ngfe-relnote: n/a, test-only change.\nPiperOrigin-RevId: 263373592\nChange-Id: Ied24c806c85cfe09fd27f9da5f0a2f60357c8baf\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "84accd09c209b49944cc345ab5d2e30bb2d78030",
      "old_mode": 33188,
      "old_path": "quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc",
      "new_id": "9d947a2543577b4925300aa00c4c1ab0820c6b7c",
      "new_mode": 33188,
      "new_path": "quic/core/qpack/fuzzer/qpack_round_trip_fuzzer.cc"
    }
  ]
}
