Index: net/http/http_stream.h |
diff --git a/net/http/http_stream.h b/net/http/http_stream.h |
index 096dd462299b72987f215b9d7f0ff96c9b622f2c..5a4fe9b8d5463fe608f4e1fa387d526d7a8f4412 100644 |
--- a/net/http/http_stream.h |
+++ b/net/http/http_stream.h |
@@ -64,9 +64,13 @@ class NET_EXPORT_PRIVATE HttpStream { |
// set of headers, and is safe to read, until/unless ReadResponseHeaders is |
// called. |
// |
- // |response| must remain valid until all sets of headers has been read, or |
- // the HttpStream is destroyed. There's typically only one set of |
- // headers, except in the case of 1xx responses (See ReadResponseHeaders). |
+ // |response| must remain valid for the lifetime of the stream. There's |
+ // typically only one set of headers, except in the case of 1xx responses (See |
+ // ReadResponseHeaders). |
+ // TODO(mmenke): |response|'s lifetime and ownership models are somewhat |
+ // bonkers, particularly considering HttpNetworkTransaction can clobber |
+ // it. Can something better be done, preferably without keeping multiple |
+ // copies of the struct around? |
virtual int SendRequest(const HttpRequestHeaders& request_headers, |
HttpResponseInfo* response, |
const CompletionCallback& callback) = 0; |
@@ -167,7 +171,8 @@ class NET_EXPORT_PRIVATE HttpStream { |
// a simple error or "this page has moved") so that we can re-use the |
// underlying connection. This stream is responsible for deleting itself when |
// draining is complete. |
- virtual void Drain(HttpNetworkSession* session) = 0; |
+ virtual void Drain(HttpNetworkSession* session, |
+ scoped_ptr<HttpResponseInfo> response_info) = 0; |
asanka
2016/05/13 15:19:52
Should document here that |response_info| *must* b
mmenke
2016/05/20 21:50:02
The more I looked at this, the less I liked it. I
|
// Get the network error details this stream is encountering. |
// Fills in |details| if it is available; leaves |details| unchanged if it |