Remove one layer of abstraction in QuicCryptoServerStream classes
The former QuicCryptoServerStream::HandshakerDelegate interface matches the
interface of QuicCryptoServerStreamBase. Classes that formerly implemented
the HandshakerDelegate now directly implement QuicCryptoServerStreamBase
and the QuicCryptoServerStream class is removed.
Prior to this change, QuicCryptoServerStream extends QuicCryptoServerStreamBase,
but the whole implementation of QuicCryptoServerStream is to call the
corresponding methods on its HandshakerInterface. The only implementation of
QuicCryptoServerStream::HandshakerInterface is QuicCryptoServerHandshaker. That
class now directly implements QuicCryptoServerStreamBase and bypasses
QuicCryptoServerStream. A similar setup exists with GfeQuicCryptoServerStream
extending QuicCryptoServerStream, but delegating its entire implementation to
GfeQuicCryptoServerHandshaker. Now GfeQuicCryptoServerStream is removed, and
GfeQuicCryptoServerHandshaker implements GfeCryptoServerStream (which used to
be implemented by GfeQuicCryptoServerStream).
The only place (excluding test code) where a GfeQuicCryptoServerStream is
created is in CreateGfeCryptoServerStream, which now creates a
GfeQuicCryptoServerHandshaker directly. Likewise, the only place a
QuicCryptoServerStream is created (apart from the GfeQuicCryptoServerStream
subclass, which is taken care of by the above, and excluding test code) is in
CreateCryptoServerStream, which now creates a QuicCryptoServerHandshaker
instead of a QuicCryptoServerStream.
gfe-relnote: rename classes and remove dead code. no behavior change, not flag protected
PiperOrigin-RevId: 296542342
Change-Id: I516035e2f574554dd5a32ba3ac413c2d16d46c8d
diff --git a/quic/core/quic_crypto_server_handshaker.h b/quic/core/quic_crypto_server_handshaker.h
index 257ee16..6c4b710 100644
--- a/quic/core/quic_crypto_server_handshaker.h
+++ b/quic/core/quic_crypto_server_handshaker.h
@@ -20,18 +20,11 @@
class QuicCryptoServerStreamPeer;
} // namespace test
+// TODO(nharper): Rename this class to QuicCryptoServerStream.
class QUIC_EXPORT_PRIVATE QuicCryptoServerHandshaker
- : public QuicCryptoServerStream::HandshakerInterface,
+ : public QuicCryptoServerStreamBase,
public QuicCryptoHandshaker {
public:
- // |crypto_config| must outlive the stream.
- // |session| must outlive the stream.
- // |helper| must outlive the stream.
- QuicCryptoServerHandshaker(const QuicCryptoServerConfig* crypto_config,
- QuicCryptoServerStream* stream,
- QuicCompressedCertsCache* compressed_certs_cache,
- QuicSession* session,
- QuicCryptoServerStreamBase::Helper* helper);
QuicCryptoServerHandshaker(const QuicCryptoServerHandshaker&) = delete;
QuicCryptoServerHandshaker& operator=(const QuicCryptoServerHandshaker&) =
delete;
@@ -51,6 +44,8 @@
void SetPreviousCachedNetworkParams(
CachedNetworkParameters cached_network_params) override;
void OnPacketDecrypted(EncryptionLevel level) override;
+ void OnOneRttPacketAcknowledged() override {}
+ void OnHandshakeDoneReceived() override;
bool ShouldSendExpectCTHeader() const override;
// From QuicCryptoStream
@@ -66,6 +61,20 @@
void OnHandshakeMessage(const CryptoHandshakeMessage& message) override;
protected:
+ QUIC_EXPORT_PRIVATE friend std::unique_ptr<QuicCryptoServerStreamBase>
+ CreateCryptoServerStream(const QuicCryptoServerConfig* crypto_config,
+ QuicCompressedCertsCache* compressed_certs_cache,
+ QuicSession* session,
+ QuicCryptoServerStreamBase::Helper* helper);
+
+ // |crypto_config| must outlive the stream.
+ // |session| must outlive the stream.
+ // |helper| must outlive the stream.
+ QuicCryptoServerHandshaker(const QuicCryptoServerConfig* crypto_config,
+ QuicCompressedCertsCache* compressed_certs_cache,
+ QuicSession* session,
+ QuicCryptoServerStreamBase::Helper* helper);
+
virtual void ProcessClientHello(
QuicReferenceCountedPointer<ValidateClientHelloResultCallback::Result>
result,
@@ -161,8 +170,6 @@
return session_->transport_version();
}
- QuicCryptoServerStream* stream_;
-
QuicSession* session_;
HandshakerDelegateInterface* delegate_;