| Index: net/quic/chromium/quic_stream_factory.h
|
| diff --git a/net/quic/chromium/quic_stream_factory.h b/net/quic/chromium/quic_stream_factory.h
|
| index 28f66daa2bd61503badf1a132b890c0abbcba2eb..9b7e95f905efe75d3944308c4b31e182860f300e 100644
|
| --- a/net/quic/chromium/quic_stream_factory.h
|
| +++ b/net/quic/chromium/quic_stream_factory.h
|
| @@ -108,21 +108,21 @@ enum QuicConnectionMigrationStatus {
|
| // cancel the request with the factory.
|
| class NET_EXPORT_PRIVATE QuicStreamRequest {
|
| public:
|
| - explicit QuicStreamRequest(QuicStreamFactory* factory,
|
| - HttpServerProperties* http_server_properties);
|
| + QuicStreamRequest(QuicStreamFactory* factory,
|
| + HttpServerProperties* http_server_properties);
|
| ~QuicStreamRequest();
|
|
|
| // |cert_verify_flags| is bitwise OR'd of CertVerifier::VerifyFlags and it is
|
| // passed to CertVerifier::Verify.
|
| // |destination| will be resolved and resulting IPEndPoint used to open a
|
| // QuicConnection. This can be different than HostPortPair::FromURL(url).
|
| - int Request(const HostPortPair& destination,
|
| - PrivacyMode privacy_mode,
|
| - int cert_verify_flags,
|
| - const GURL& url,
|
| - QuicStringPiece method,
|
| - const NetLogWithSource& net_log,
|
| - const CompletionCallback& callback);
|
| + virtual int Request(const HostPortPair& destination,
|
| + PrivacyMode privacy_mode,
|
| + int cert_verify_flags,
|
| + const GURL& url,
|
| + QuicStringPiece method,
|
| + const NetLogWithSource& net_log,
|
| + const CompletionCallback& callback);
|
|
|
| void OnRequestComplete(int rv);
|
|
|
| @@ -130,9 +130,10 @@ class NET_EXPORT_PRIVATE QuicStreamRequest {
|
| // returns the amount of time waiting job should be delayed.
|
| base::TimeDelta GetTimeDelayForWaitingJob() const;
|
|
|
| - std::unique_ptr<QuicHttpStream> CreateStream();
|
| + virtual std::unique_ptr<HttpStream> CreateStream();
|
|
|
| - std::unique_ptr<BidirectionalStreamImpl> CreateBidirectionalStreamImpl();
|
| + virtual std::unique_ptr<BidirectionalStreamImpl>
|
| + CreateBidirectionalStreamImpl();
|
|
|
| // Sets |session_|.
|
| void SetSession(QuicChromiumClientSession* session);
|
| @@ -152,6 +153,18 @@ class NET_EXPORT_PRIVATE QuicStreamRequest {
|
| DISALLOW_COPY_AND_ASSIGN(QuicStreamRequest);
|
| };
|
|
|
| +// A default factory for creating QuicStreamRequest. Subclassed for testing
|
| +// purpose.
|
| +class NET_EXPORT_PRIVATE QuicStreamRequestFactory {
|
| + public:
|
| + QuicStreamRequestFactory();
|
| + ~QuicStreamRequestFactory();
|
| +
|
| + virtual std::unique_ptr<QuicStreamRequest> CreateRequest(
|
| + QuicStreamFactory* factory,
|
| + HttpServerProperties* http_server_properties);
|
| +};
|
| +
|
| // A factory for creating new QuicHttpStreams on top of a pool of
|
| // QuicChromiumClientSessions.
|
| class NET_EXPORT_PRIVATE QuicStreamFactory
|
| @@ -230,6 +243,8 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
|
| bool CanUseExistingSession(const QuicServerId& server_id,
|
| const HostPortPair& destination);
|
|
|
| + std::unique_ptr<QuicStreamRequest> CreateStreamRequest();
|
| +
|
| // Creates a new QuicHttpStream to |host_port_pair| which will be
|
| // owned by |request|.
|
| // If a matching session already exists, this method will return OK. If no
|
| @@ -493,6 +508,8 @@ class NET_EXPORT_PRIVATE QuicStreamFactory
|
| // The alarm factory used for all connections.
|
| std::unique_ptr<QuicAlarmFactory> alarm_factory_;
|
|
|
| + std::unique_ptr<QuicStreamRequestFactory> stream_request_factory_;
|
| +
|
| // Contains owning pointers to all sessions that currently exist.
|
| SessionIdMap all_sessions_;
|
| // Contains non-owning pointers to currently active session
|
|
|