Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Side by Side Diff: net/quic/chromium/quic_http_stream.h

Issue 2298823002: Resetting the HttpRequestInfo pointers in HttpNetworkTransaction and streams (Closed)
Patch Set: Rebased, removed upload progress plumbing, feedback. (Rebased till refs/heads/master@{#417381}) Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_QUIC_QUIC_HTTP_STREAM_H_ 5 #ifndef NET_QUIC_QUIC_HTTP_STREAM_H_
6 #define NET_QUIC_QUIC_HTTP_STREAM_H_ 6 #define NET_QUIC_QUIC_HTTP_STREAM_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 30 matching lines...) Expand all
41 ~QuicHttpStream() override; 41 ~QuicHttpStream() override;
42 42
43 // HttpStream implementation. 43 // HttpStream implementation.
44 int InitializeStream(const HttpRequestInfo* request_info, 44 int InitializeStream(const HttpRequestInfo* request_info,
45 RequestPriority priority, 45 RequestPriority priority,
46 const BoundNetLog& net_log, 46 const BoundNetLog& net_log,
47 const CompletionCallback& callback) override; 47 const CompletionCallback& callback) override;
48 int SendRequest(const HttpRequestHeaders& request_headers, 48 int SendRequest(const HttpRequestHeaders& request_headers,
49 HttpResponseInfo* response, 49 HttpResponseInfo* response,
50 const CompletionCallback& callback) override; 50 const CompletionCallback& callback) override;
51 UploadProgress GetUploadProgress() const override;
52 int ReadResponseHeaders(const CompletionCallback& callback) override; 51 int ReadResponseHeaders(const CompletionCallback& callback) override;
53 int ReadResponseBody(IOBuffer* buf, 52 int ReadResponseBody(IOBuffer* buf,
54 int buf_len, 53 int buf_len,
55 const CompletionCallback& callback) override; 54 const CompletionCallback& callback) override;
56 void Close(bool not_reusable) override; 55 void Close(bool not_reusable) override;
57 HttpStream* RenewStreamForAuth() override; 56 HttpStream* RenewStreamForAuth() override;
58 bool IsResponseBodyComplete() const override; 57 bool IsResponseBodyComplete() const override;
59 bool IsConnectionReused() const override; 58 bool IsConnectionReused() const override;
60 void SetConnectionReused() override; 59 void SetConnectionReused() override;
61 bool CanReuseConnection() const override; 60 bool CanReuseConnection() const override;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 124
126 int ProcessResponseHeaders(const SpdyHeaderBlock& headers); 125 int ProcessResponseHeaders(const SpdyHeaderBlock& headers);
127 126
128 int ReadAvailableData(IOBuffer* buf, int buf_len); 127 int ReadAvailableData(IOBuffer* buf, int buf_len);
129 void EnterStateSendHeaders(); 128 void EnterStateSendHeaders();
130 int HandlePromise(); 129 int HandlePromise();
131 130
132 void ResetStream(); 131 void ResetStream();
133 bool CancelPromiseIfHasBody(); 132 bool CancelPromiseIfHasBody();
134 133
134 void ResetRequestInfo();
135
135 State next_state_; 136 State next_state_;
136 137
137 base::WeakPtr<QuicChromiumClientSession> session_; 138 base::WeakPtr<QuicChromiumClientSession> session_;
138 int session_error_; // Error code from the connection shutdown. 139 int session_error_; // Error code from the connection shutdown.
139 bool was_handshake_confirmed_; // True if the crypto handshake succeeded. 140 bool was_handshake_confirmed_; // True if the crypto handshake succeeded.
140 QuicChromiumClientSession::StreamRequest stream_request_; 141 QuicChromiumClientSession::StreamRequest stream_request_;
141 QuicChromiumClientStream* stream_; // Non-owning. 142 QuicChromiumClientStream* stream_; // Non-owning.
142 143
143 // The following three fields are all owned by the caller and must 144 // The following three fields are all owned by the caller and must
144 // outlive this object, according to the HttpStream contract. 145 // outlive this object, according to the HttpStream contract.
145 146
146 // The request to send. 147 // The request to send.
148 // Only valid before the response body is read.
147 const HttpRequestInfo* request_info_; 149 const HttpRequestInfo* request_info_;
150
148 // The request body to send, if any, owned by the caller. 151 // The request body to send, if any, owned by the caller.
149 UploadDataStream* request_body_stream_; 152 UploadDataStream* request_body_stream_;
150 // Time the request was issued. 153 // Time the request was issued.
151 base::Time request_time_; 154 base::Time request_time_;
152 // The priority of the request. 155 // The priority of the request.
153 RequestPriority priority_; 156 RequestPriority priority_;
154 // |response_info_| is the HTTP response data object which is filled in 157 // |response_info_| is the HTTP response data object which is filled in
155 // when a the response headers are read. It is not owned by this stream. 158 // when a the response headers are read. It is not owned by this stream.
156 HttpResponseInfo* response_info_; 159 HttpResponseInfo* response_info_;
157 // Because response data is buffered, also buffer the response status if the 160 // Because response data is buffered, also buffer the response status if the
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 bool in_loop_; 214 bool in_loop_;
212 215
213 base::WeakPtrFactory<QuicHttpStream> weak_factory_; 216 base::WeakPtrFactory<QuicHttpStream> weak_factory_;
214 217
215 DISALLOW_COPY_AND_ASSIGN(QuicHttpStream); 218 DISALLOW_COPY_AND_ASSIGN(QuicHttpStream);
216 }; 219 };
217 220
218 } // namespace net 221 } // namespace net
219 222
220 #endif // NET_QUIC_QUIC_HTTP_STREAM_H_ 223 #endif // NET_QUIC_QUIC_HTTP_STREAM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698