diff options
author | mbelshe@chromium.org <mbelshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-03 22:04:03 +0000 |
---|---|---|
committer | mbelshe@chromium.org <mbelshe@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-03 22:04:03 +0000 |
commit | d083585002893abaa6172c361aa04306a0e4d396 (patch) | |
tree | 75ff77ddf51d68d450ee0e7d56192409e44bcf97 /net/spdy/spdy_test_util.cc | |
parent | 95c97199c4406036b216d74e4ba3a5c57c0081a2 (diff) | |
download | chromium_src-d083585002893abaa6172c361aa04306a0e4d396.zip chromium_src-d083585002893abaa6172c361aa04306a0e4d396.tar.gz chromium_src-d083585002893abaa6172c361aa04306a0e4d396.tar.bz2 |
Update server push to allow use of HEADERS frame.
- Sync'd server changes for SPDY protocol and framer.
- Adds HEADERS support & smaller header frame support.
- Changes field name from "path" to "url" for pushed streams.
- Changes existing semantics in SpdyStream and SpdyHttpStream
with how the OnResponseReceived callback works and with how
headers are parsed to reflect multi-frame arrival of headers.
Other changes:
- Reworked the StaticSocketDataProvider interface slightly so that we
can share code between tests using DelayedSocketData or
DeterministicSocketData
- Tidy up net_log for pushed streams with associated-stream id logging
and format fixes for SPDY_STREAM.
BUG=none
TEST=spdy_framer_test,spdy_network_transaction_unittest(s)
Review URL: http://codereview.chromium.org/5248001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68221 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy/spdy_test_util.cc')
-rw-r--r-- | net/spdy/spdy_test_util.cc | 56 |
1 files changed, 47 insertions, 9 deletions
diff --git a/net/spdy/spdy_test_util.cc b/net/spdy/spdy_test_util.cc index 896cd9d..5d6c9b0 100644 --- a/net/spdy/spdy_test_util.cc +++ b/net/spdy/spdy_test_util.cc @@ -171,6 +171,10 @@ spdy::SpdyFrame* ConstructSpdyPacket(const SpdyHeaderInfo& header_info, case spdy::RST_STREAM: frame = framer.CreateRstStream(header_info.id, header_info.status); break; + case spdy::HEADERS: + frame = framer.CreateHeaders(header_info.id, header_info.control_flags, + header_info.compressed, &headers); + break; default: frame = framer.CreateDataFrame(header_info.id, header_info.data, header_info.data_length, @@ -460,16 +464,14 @@ spdy::SpdyFrame* ConstructSpdyPush(const char* const extra_headers[], int extra_header_count, int stream_id, int associated_stream_id, - const char* path) { + const char* url) { const char* const kStandardGetHeaders[] = { "hello", "bye", - "path", - path, "status", "200 OK", "url", - path, + url, "version", "HTTP/1.1" }; @@ -489,15 +491,12 @@ spdy::SpdyFrame* ConstructSpdyPush(const char* const extra_headers[], int extra_header_count, int stream_id, int associated_stream_id, - const char* path, + const char* url, const char* status, - const char* location, - const char* url) { + const char* location) { const char* const kStandardGetHeaders[] = { "hello", "bye", - "path", - path, "status", status, "location", @@ -519,6 +518,45 @@ spdy::SpdyFrame* ConstructSpdyPush(const char* const extra_headers[], associated_stream_id); } +spdy::SpdyFrame* ConstructSpdyPush(int stream_id, + int associated_stream_id, + const char* url) { + const char* const kStandardGetHeaders[] = { + "url", + url + }; + return ConstructSpdyControlFrame(0, + 0, + false, + stream_id, + LOWEST, + spdy::SYN_STREAM, + spdy::CONTROL_FLAG_NONE, + kStandardGetHeaders, + arraysize(kStandardGetHeaders), + associated_stream_id); +} + +spdy::SpdyFrame* ConstructSpdyPushHeaders(int stream_id, + const char* const extra_headers[], + int extra_header_count) { + const char* const kStandardGetHeaders[] = { + "status", + "200 OK", + "version", + "HTTP/1.1" + }; + return ConstructSpdyControlFrame(extra_headers, + extra_header_count, + false, + stream_id, + LOWEST, + spdy::HEADERS, + spdy::CONTROL_FLAG_NONE, + kStandardGetHeaders, + arraysize(kStandardGetHeaders)); +} + // Constructs a standard SPDY SYN_REPLY packet with the specified status code. // Returns a SpdyFrame. spdy::SpdyFrame* ConstructSpdySynReplyError( |