)]}'
{
  "commit": "c90194959963c201f6961b8ef51df7c956dca302",
  "tree": "e53e242a18fdeb0445277e4d8b481ac87a92fcd1",
  "parents": [
    "b7edbb83b14daa04c166998ff1904516b8505e32"
  ],
  "author": {
    "name": "bnc",
    "email": "bnc@google.com",
    "time": "Tue Jul 23 06:44:39 2019 -0700"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Jul 23 08:14:47 2019 -0700"
  },
  "message": "Change QuicSpdyStreamBodyBuffer API to decouple from QuicStreamSequencer.\n\nThe primary motivation is cleaner tests.\n\nBefore this CL:\n* QuicSpdyStreamBodyBuffer keeps QuicStreamSequencer* but only calls a single\n  method,\n* MockSequencer is defined but its mock method is never called,\n  because QuicStreamSequencer::MarkConsumed() is not virtual,\n* a MockStream is needed for QuicStreamSequencer,\n* QuicStreamFrames have to be constructed and fed to QuicStreamSequencer so that\n  it does not crash on MarkConsumed() calls which cannot be mocked, but data is\n  never actually read from QuicStreamSequencer,\n* an HttpEncoder has to be used to create actual frame headers to feed to\n  QuicStreamSequencer which are then not read,\n* MockStream method calls triggered by QuicStreamSequencer::MarkConsumed() are\n  tested, which only indirectly tests QuicSpdyStreamBodyBuffer behavior.\n\nAfter this CL:\n* QuicSpdyStreamBodyBuffer methods return size_t, caller must call\n  QuicStreamSequencer::MarkConsumed(),\n* no QuicStreamSequencer is needed,\n* no MockStream is needed,\n* no HttpEncoder is needed (int literals are used for frame header length),\n* no QuicStreamFrames are needed,\n* QuicSpdyStreamBodyBuffer behavior is directly tested by verifying return value.\n\ngfe-relnote: n/a, no functional change to QUIC v99-only class.\nPiperOrigin-RevId: 259526373\nChange-Id: I3e67bf924649f0c12bd9706d9ebe13ec4be8e1bb\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c731741edaf862bdc2fdcf5eab21254f872f5b67",
      "old_mode": 33188,
      "old_path": "quic/core/http/quic_spdy_stream.cc",
      "new_id": "a8e81c17776cd6e572f98a56efa65c63be57f271",
      "new_mode": 33188,
      "new_path": "quic/core/http/quic_spdy_stream.cc"
    },
    {
      "type": "modify",
      "old_id": "4238a3b32591bdd4583f7edf1bd52e30f43067e1",
      "old_mode": 33188,
      "old_path": "quic/core/http/quic_spdy_stream_body_buffer.cc",
      "new_id": "c29c766ad59a99e113557cbdd031d2807ba2ac2b",
      "new_mode": 33188,
      "new_path": "quic/core/http/quic_spdy_stream_body_buffer.cc"
    },
    {
      "type": "modify",
      "old_id": "d8431c16f41adb1a699d23640a5d9e72bd9801c1",
      "old_mode": 33188,
      "old_path": "quic/core/http/quic_spdy_stream_body_buffer.h",
      "new_id": "a37f3bf0b809803143e059098b9118075d6159c5",
      "new_mode": 33188,
      "new_path": "quic/core/http/quic_spdy_stream_body_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "a47880e63e36d1f5a35cc811a034a319724827e0",
      "old_mode": 33188,
      "old_path": "quic/core/http/quic_spdy_stream_body_buffer_test.cc",
      "new_id": "d5e816119d9671deb6fb94b3f73650cdf3fbf320",
      "new_mode": 33188,
      "new_path": "quic/core/http/quic_spdy_stream_body_buffer_test.cc"
    }
  ]
}
