Set initial capacity to value of maximum capacity in QPACK offline encoder.

Since
https://quiche.googlesource.com/quiche/+/40e9a7ba152f774b29218f5ff5321f7519df8c6d
landed, offline interop encodings cannot be decoded.  This is because every
other implementation's offline encoder assumes that the initial dynamic table
capacity is the same as the maximum capacity, so they do not emit a Set Dynamic
Table Capacity instruction.  Today,
https://github.com/quicwg/base-drafts/wiki/QPACK-Offline-Interop has been
updated to reflect this.

This change modifies the QPACK offline decoder so that it is able to decode the
offline encodings from https://github.com/qpackers/qifs again.

gfe-relnote: n/a, change to QUIC v99-only code.  Protected by existing disabled gfe2_reloadable_flag_quic_enable_version_99.
PiperOrigin-RevId: 268770509
Change-Id: Ib25b2499f7bff154f8742fbad8f3d0ae19818c79
diff --git a/quic/core/qpack/offline/qpack_offline_decoder.cc b/quic/core/qpack/offline/qpack_offline_decoder.cc
index cf62090..8a9251f 100644
--- a/quic/core/qpack/offline/qpack_offline_decoder.cc
+++ b/quic/core/qpack/offline/qpack_offline_decoder.cc
@@ -97,6 +97,12 @@
   qpack_decoder_->set_qpack_stream_sender_delegate(
       &decoder_stream_sender_delegate_);
 
+  // The initial dynamic table capacity is zero according to
+  // https://quicwg.org/base-drafts/draft-ietf-quic-qpack.html#eviction.
+  // However, for historical reasons, offline interop encoders use
+  // |maximum_dynamic_table_capacity| as initial capacity.
+  qpack_decoder_->OnSetDynamicTableCapacity(maximum_dynamic_table_capacity);
+
   return true;
 }