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

Unified Diff: net/spdy/spdy_stream.h

Issue 10448083: Fix out of order SYN_STEAM frames. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address willchan's comments. Created 8 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: net/spdy/spdy_stream.h
diff --git a/net/spdy/spdy_stream.h b/net/spdy/spdy_stream.h
index 3e81ecf1ff4dbb0c205be10efb92dfe6e95210e7..964b6d1ead6af0ff97b4f39599dc42aa797aae7e 100644
--- a/net/spdy/spdy_stream.h
+++ b/net/spdy/spdy_stream.h
@@ -6,6 +6,7 @@
#define NET_SPDY_SPDY_STREAM_H_
#pragma once
+#include <list>
#include <string>
#include <vector>
@@ -24,6 +25,7 @@
#include "net/socket/ssl_client_socket.h"
#include "net/spdy/spdy_framer.h"
#include "net/spdy/spdy_protocol.h"
+#include "net/spdy/spdy_frame_producer.h"
namespace net {
@@ -42,6 +44,7 @@ class SSLInfo;
// until such a time as a client object requests a stream for the path.
class NET_EXPORT_PRIVATE SpdyStream
Ryan Hamilton 2012/06/21 18:14:58 Add a factory method to return a new SpdyFrameProd
Ryan Hamilton 2012/06/21 18:14:58 Add private nested adpater class here. fwd declar
: public base::RefCounted<SpdyStream>,
+ public SpdyFrameProducer,
public ChunkCallback {
public:
// Delegate handles protocol specific behavior of spdy stream.
@@ -95,10 +98,14 @@ class NET_EXPORT_PRIVATE SpdyStream
// SpdyStream constructor
SpdyStream(SpdySession* session,
- SpdyStreamId stream_id,
bool pushed,
const BoundNetLog& net_log);
+ // SpdyFrameProducer
+ virtual RequestPriority GetPriority() const OVERRIDE;
+ virtual SpdyFrame* ProduceNextFrame() OVERRIDE;
+ virtual SpdyStream* GetSpdyStream() const OVERRIDE;
+
// Set new |delegate|. |delegate| must not be NULL.
// If it already received SYN_REPLY or data, OnResponseReceived() or
// OnDataReceived() will be called.
@@ -343,6 +350,8 @@ class NET_EXPORT_PRIVATE SpdyStream
linked_ptr<SpdyHeaderBlock> response_;
base::Time response_time_;
+ std::list<SpdyFrame*> pending_data_frames_;
+
State io_state_;
// Since we buffer the response, we also buffer the response status.

Powered by Google App Engine
This is Rietveld 408576698