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

Side by Side Diff: net/http/http_network_transaction_unittest.cc

Issue 2596703002: http2: Update priorities of pushed streams (Closed)
Patch Set: Created 4 years 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
« no previous file with comments | « no previous file | net/log/net_log_event_type_list.h » ('j') | net/log/net_log_event_type_list.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "net/http/http_network_transaction.h" 5 #include "net/http/http_network_transaction.h"
6 6
7 #include <math.h> // ceil 7 #include <math.h> // ceil
8 #include <stdarg.h> 8 #include <stdarg.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 8145 matching lines...) Expand 10 before | Expand all | Expand 10 after
8156 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:443"); 8156 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:443");
8157 BoundTestNetLog log; 8157 BoundTestNetLog log;
8158 session_deps_.net_log = log.bound().net_log(); 8158 session_deps_.net_log = log.bound().net_log();
8159 8159
8160 session_deps_.proxy_delegate = std::move(proxy_delegate); 8160 session_deps_.proxy_delegate = std::move(proxy_delegate);
8161 8161
8162 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 8162 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
8163 8163
8164 SpdySerializedFrame stream1_syn( 8164 SpdySerializedFrame stream1_syn(
8165 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); 8165 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST));
8166 SpdySerializedFrame stream2_priority(
8167 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
8166 8168
8167 MockWrite spdy_writes[] = { 8169 MockWrite spdy_writes[] = {
8168 CreateMockWrite(stream1_syn, 0, ASYNC), 8170 CreateMockWrite(stream1_syn, 0, ASYNC),
8171 CreateMockWrite(stream2_priority, 3, ASYNC),
8169 }; 8172 };
8170 8173
8171 SpdySerializedFrame stream1_reply( 8174 SpdySerializedFrame stream1_reply(
8172 spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); 8175 spdy_util_.ConstructSpdyGetReply(NULL, 0, 1));
8173 8176
8174 SpdySerializedFrame stream1_body(spdy_util_.ConstructSpdyDataFrame(1, true)); 8177 SpdySerializedFrame stream1_body(spdy_util_.ConstructSpdyDataFrame(1, true));
8175 8178
8176 SpdySerializedFrame stream2_syn(spdy_util_.ConstructSpdyPush( 8179 SpdySerializedFrame stream2_syn(spdy_util_.ConstructSpdyPush(
8177 NULL, 0, 2, 1, "http://www.another-origin.com/foo.dat")); 8180 NULL, 0, 2, 1, "http://www.another-origin.com/foo.dat"));
8178 const char kPushedData[] = "pushed"; 8181 const char kPushedData[] = "pushed";
8179 SpdySerializedFrame stream2_body(spdy_util_.ConstructSpdyDataFrame( 8182 SpdySerializedFrame stream2_body(spdy_util_.ConstructSpdyDataFrame(
8180 2, kPushedData, strlen(kPushedData), true)); 8183 2, kPushedData, strlen(kPushedData), true));
8181 8184
8182 MockRead spdy_reads[] = { 8185 MockRead spdy_reads[] = {
8183 CreateMockRead(stream1_reply, 1, ASYNC), 8186 CreateMockRead(stream1_reply, 1, ASYNC),
8184 CreateMockRead(stream2_syn, 2, ASYNC), 8187 CreateMockRead(stream2_syn, 2, ASYNC),
8185 CreateMockRead(stream1_body, 3, ASYNC), 8188 CreateMockRead(stream1_body, 4, ASYNC),
8186 CreateMockRead(stream2_body, 4, ASYNC), 8189 CreateMockRead(stream2_body, 5, ASYNC),
8187 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), // Force a hang 8190 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 6), // Force a hang
8188 }; 8191 };
8189 8192
8190 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, 8193 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes,
8191 arraysize(spdy_writes)); 8194 arraysize(spdy_writes));
8192 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); 8195 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
8193 // Negotiate SPDY to the proxy 8196 // Negotiate SPDY to the proxy
8194 SSLSocketDataProvider proxy(ASYNC, OK); 8197 SSLSocketDataProvider proxy(ASYNC, OK);
8195 proxy.next_proto = kProtoHTTP2; 8198 proxy.next_proto = kProtoHTTP2;
8196 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy); 8199 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy);
8197 8200
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
8348 BoundTestNetLog log; 8351 BoundTestNetLog log;
8349 session_deps_.net_log = log.bound().net_log(); 8352 session_deps_.net_log = log.bound().net_log();
8350 8353
8351 // Enable cross-origin push. 8354 // Enable cross-origin push.
8352 session_deps_.proxy_delegate = std::move(proxy_delegate); 8355 session_deps_.proxy_delegate = std::move(proxy_delegate);
8353 8356
8354 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); 8357 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_));
8355 8358
8356 SpdySerializedFrame stream1_syn( 8359 SpdySerializedFrame stream1_syn(
8357 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); 8360 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST));
8361 SpdySerializedFrame stream2_priority(
8362 spdy_util_.ConstructSpdyPriority(2, 1, IDLE, true));
8358 8363
8359 MockWrite spdy_writes[] = { 8364 MockWrite spdy_writes[] = {
8360 CreateMockWrite(stream1_syn, 0, ASYNC), 8365 CreateMockWrite(stream1_syn, 0, ASYNC),
8366 CreateMockWrite(stream2_priority, 3, ASYNC),
8361 }; 8367 };
8362 8368
8363 SpdySerializedFrame stream1_reply( 8369 SpdySerializedFrame stream1_reply(
8364 spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); 8370 spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1));
8365 8371
8366 SpdySerializedFrame stream2_syn(spdy_util_.ConstructSpdyPush( 8372 SpdySerializedFrame stream2_syn(spdy_util_.ConstructSpdyPush(
8367 nullptr, 0, 2, 1, "https://myproxy:70/foo.dat")); 8373 nullptr, 0, 2, 1, "https://myproxy:70/foo.dat"));
8368 8374
8369 SpdySerializedFrame stream1_body(spdy_util_.ConstructSpdyDataFrame(1, true)); 8375 SpdySerializedFrame stream1_body(spdy_util_.ConstructSpdyDataFrame(1, true));
8370 8376
8371 SpdySerializedFrame stream2_reply( 8377 SpdySerializedFrame stream2_reply(
8372 spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); 8378 spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1));
8373 8379
8374 SpdySerializedFrame stream2_body(spdy_util_.ConstructSpdyDataFrame(1, true)); 8380 SpdySerializedFrame stream2_body(spdy_util_.ConstructSpdyDataFrame(1, true));
8375 8381
8376 MockRead spdy_reads[] = { 8382 MockRead spdy_reads[] = {
8377 CreateMockRead(stream1_reply, 1, ASYNC), 8383 CreateMockRead(stream1_reply, 1, ASYNC),
8378 CreateMockRead(stream2_syn, 2, ASYNC), 8384 CreateMockRead(stream2_syn, 2, ASYNC),
8379 CreateMockRead(stream1_body, 3, ASYNC), 8385 CreateMockRead(stream1_body, 4, ASYNC),
8380 CreateMockRead(stream2_body, 4, ASYNC), 8386 CreateMockRead(stream2_body, 5, ASYNC),
8381 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), // Force a hang 8387 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 6), // Force a hang
8382 }; 8388 };
8383 8389
8384 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, 8390 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes,
8385 arraysize(spdy_writes)); 8391 arraysize(spdy_writes));
8386 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); 8392 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data);
8387 // Negotiate SPDY to the proxy 8393 // Negotiate SPDY to the proxy
8388 SSLSocketDataProvider proxy(ASYNC, OK); 8394 SSLSocketDataProvider proxy(ASYNC, OK);
8389 proxy.next_proto = kProtoHTTP2; 8395 proxy.next_proto = kProtoHTTP2;
8390 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy); 8396 session_deps_.socket_factory->AddSSLSocketDataProvider(&proxy);
8391 8397
(...skipping 8109 matching lines...) Expand 10 before | Expand all | Expand 10 after
16501 base::RunLoop().RunUntilIdle(); 16507 base::RunLoop().RunUntilIdle();
16502 16508
16503 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); 16509 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy);
16504 HttpRequestHeaders headers; 16510 HttpRequestHeaders headers;
16505 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); 16511 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers));
16506 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); 16512 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding));
16507 } 16513 }
16508 #endif // !defined(OS_IOS) 16514 #endif // !defined(OS_IOS)
16509 16515
16510 } // namespace net 16516 } // namespace net
OLDNEW
« no previous file with comments | « no previous file | net/log/net_log_event_type_list.h » ('j') | net/log/net_log_event_type_list.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698