discardedFrames property
Reports skipped bytes as they ARRIVE.
Crediting the DECLARED length instead is worse than the wedge it fixes: a peer sending nothing but 9-byte headers gets its window topped up for free, which is the one thing flow control exists to stop.
Implementation
@override
Stream<({int streamId, int bytes})> get discardedFrames =>
_discardedCtl.stream;