This is a follow-up for crbug.com/629043. This is a paraphrase of mmenke@'s suggestion in comment #6.
QUIC is designed to invoke callbacks synchronously, which means that QuicHttpStream can't be deleted in a callback.
This seems like a problem with both QUIC and SPDY - elsewhere in net, on synchronous success/failure, we return a status code, so the error, in this case, would bubble up to QuicHttpStream::DoLoop, which would invoke the callback as the last thing it did, to allow sync deletion.
The API should be re-designed to allow sync deletion.
Comment 1 by rch@chromium.org
, Nov 10 2017