| OLD | NEW |
| 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 1374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1385 ssl1.SetNextProto(kProtoHTTP2); | 1385 ssl1.SetNextProto(kProtoHTTP2); |
| 1386 ssl2.SetNextProto(kProtoHTTP2); | 1386 ssl2.SetNextProto(kProtoHTTP2); |
| 1387 } | 1387 } |
| 1388 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl1); | 1388 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl1); |
| 1389 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); | 1389 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); |
| 1390 | 1390 |
| 1391 // SPDY versions of the request and response. | 1391 // SPDY versions of the request and response. |
| 1392 SpdySerializedFrame spdy_request(spdy_util_.ConstructSpdyGet( | 1392 SpdySerializedFrame spdy_request(spdy_util_.ConstructSpdyGet( |
| 1393 request.url.spec().c_str(), 1, DEFAULT_PRIORITY)); | 1393 request.url.spec().c_str(), 1, DEFAULT_PRIORITY)); |
| 1394 SpdySerializedFrame spdy_response( | 1394 SpdySerializedFrame spdy_response( |
| 1395 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 1395 spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 1396 SpdySerializedFrame spdy_data( | 1396 SpdySerializedFrame spdy_data( |
| 1397 spdy_util_.ConstructSpdyDataFrame(1, "hello", 5, true)); | 1397 spdy_util_.ConstructSpdyDataFrame(1, "hello", 5, true)); |
| 1398 | 1398 |
| 1399 // HTTP/1.1 versions of the request and response. | 1399 // HTTP/1.1 versions of the request and response. |
| 1400 const char kHttpRequest[] = "GET / HTTP/1.1\r\n" | 1400 const char kHttpRequest[] = "GET / HTTP/1.1\r\n" |
| 1401 "Host: www.foo.com\r\n" | 1401 "Host: www.foo.com\r\n" |
| 1402 "Connection: keep-alive\r\n\r\n"; | 1402 "Connection: keep-alive\r\n\r\n"; |
| 1403 const char kHttpResponse[] = "HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"; | 1403 const char kHttpResponse[] = "HTTP/1.1 200 OK\r\nContent-Length: 5\r\n\r\n"; |
| 1404 const char kHttpData[] = "hello"; | 1404 const char kHttpData[] = "hello"; |
| 1405 | 1405 |
| (...skipping 2952 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4358 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); | 4358 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
| 4359 BoundTestNetLog log; | 4359 BoundTestNetLog log; |
| 4360 session_deps_.net_log = log.bound().net_log(); | 4360 session_deps_.net_log = log.bound().net_log(); |
| 4361 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4361 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 4362 | 4362 |
| 4363 // fetch http://www.example.org/ via SPDY | 4363 // fetch http://www.example.org/ via SPDY |
| 4364 SpdySerializedFrame req( | 4364 SpdySerializedFrame req( |
| 4365 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); | 4365 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); |
| 4366 MockWrite spdy_writes[] = {CreateMockWrite(req, 0)}; | 4366 MockWrite spdy_writes[] = {CreateMockWrite(req, 0)}; |
| 4367 | 4367 |
| 4368 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 4368 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 4369 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); | 4369 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 4370 MockRead spdy_reads[] = { | 4370 MockRead spdy_reads[] = { |
| 4371 CreateMockRead(resp, 1), CreateMockRead(data, 2), MockRead(ASYNC, 0, 3), | 4371 CreateMockRead(resp, 1), CreateMockRead(data, 2), MockRead(ASYNC, 0, 3), |
| 4372 }; | 4372 }; |
| 4373 | 4373 |
| 4374 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 4374 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 4375 arraysize(spdy_writes)); | 4375 arraysize(spdy_writes)); |
| 4376 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 4376 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 4377 | 4377 |
| 4378 SSLSocketDataProvider ssl(ASYNC, OK); | 4378 SSLSocketDataProvider ssl(ASYNC, OK); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4418 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); | 4418 session_deps_.proxy_service = ProxyService::CreateFixed("https://proxy:70"); |
| 4419 BoundTestNetLog log; | 4419 BoundTestNetLog log; |
| 4420 session_deps_.net_log = log.bound().net_log(); | 4420 session_deps_.net_log = log.bound().net_log(); |
| 4421 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 4421 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 4422 | 4422 |
| 4423 // Fetch http://www.example.org/ through the SPDY proxy. | 4423 // Fetch http://www.example.org/ through the SPDY proxy. |
| 4424 SpdySerializedFrame req( | 4424 SpdySerializedFrame req( |
| 4425 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); | 4425 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); |
| 4426 MockWrite spdy_writes[] = {CreateMockWrite(req, 0)}; | 4426 MockWrite spdy_writes[] = {CreateMockWrite(req, 0)}; |
| 4427 | 4427 |
| 4428 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 4428 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 4429 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); | 4429 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 4430 MockRead spdy_reads[] = { | 4430 MockRead spdy_reads[] = { |
| 4431 CreateMockRead(resp, 1), CreateMockRead(data, 2), MockRead(ASYNC, 0, 3), | 4431 CreateMockRead(resp, 1), CreateMockRead(data, 2), MockRead(ASYNC, 0, 3), |
| 4432 }; | 4432 }; |
| 4433 | 4433 |
| 4434 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 4434 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 4435 arraysize(spdy_writes)); | 4435 arraysize(spdy_writes)); |
| 4436 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 4436 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 4437 | 4437 |
| 4438 SSLSocketDataProvider ssl(ASYNC, OK); | 4438 SSLSocketDataProvider ssl(ASYNC, OK); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4504 MockWrite spdy_writes[] = { | 4504 MockWrite spdy_writes[] = { |
| 4505 CreateMockWrite(req_get, 0), CreateMockWrite(req_get_authorization, 3), | 4505 CreateMockWrite(req_get, 0), CreateMockWrite(req_get_authorization, 3), |
| 4506 }; | 4506 }; |
| 4507 | 4507 |
| 4508 // The first response is a 407 proxy authentication challenge, and the second | 4508 // The first response is a 407 proxy authentication challenge, and the second |
| 4509 // response will be a 200 response since the second request includes a valid | 4509 // response will be a 200 response since the second request includes a valid |
| 4510 // Authorization header. | 4510 // Authorization header. |
| 4511 const char* const kExtraAuthenticationHeaders[] = { | 4511 const char* const kExtraAuthenticationHeaders[] = { |
| 4512 "proxy-authenticate", "Basic realm=\"MyRealm1\"" | 4512 "proxy-authenticate", "Basic realm=\"MyRealm1\"" |
| 4513 }; | 4513 }; |
| 4514 SpdySerializedFrame resp_authentication(spdy_util_.ConstructSpdySynReplyError( | 4514 SpdySerializedFrame resp_authentication(spdy_util_.ConstructSpdyReplyError( |
| 4515 "407 Proxy Authentication Required", kExtraAuthenticationHeaders, | 4515 "407 Proxy Authentication Required", kExtraAuthenticationHeaders, |
| 4516 arraysize(kExtraAuthenticationHeaders) / 2, 1)); | 4516 arraysize(kExtraAuthenticationHeaders) / 2, 1)); |
| 4517 SpdySerializedFrame body_authentication( | 4517 SpdySerializedFrame body_authentication( |
| 4518 spdy_util_.ConstructSpdyDataFrame(1, true)); | 4518 spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 4519 SpdySerializedFrame resp_data( | 4519 SpdySerializedFrame resp_data(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); |
| 4520 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | |
| 4521 SpdySerializedFrame body_data(spdy_util_.ConstructSpdyDataFrame(3, true)); | 4520 SpdySerializedFrame body_data(spdy_util_.ConstructSpdyDataFrame(3, true)); |
| 4522 MockRead spdy_reads[] = { | 4521 MockRead spdy_reads[] = { |
| 4523 CreateMockRead(resp_authentication, 1), | 4522 CreateMockRead(resp_authentication, 1), |
| 4524 CreateMockRead(body_authentication, 2), | 4523 CreateMockRead(body_authentication, 2), |
| 4525 CreateMockRead(resp_data, 4), | 4524 CreateMockRead(resp_data, 4), |
| 4526 CreateMockRead(body_data, 5), | 4525 CreateMockRead(body_data, 5), |
| 4527 MockRead(ASYNC, 0, 6), | 4526 MockRead(ASYNC, 0, 6), |
| 4528 }; | 4527 }; |
| 4529 | 4528 |
| 4530 SequencedSocketData data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 4529 SequencedSocketData data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4592 SpdySerializedFrame connect(spdy_util_.ConstructSpdyConnect( | 4591 SpdySerializedFrame connect(spdy_util_.ConstructSpdyConnect( |
| 4593 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 4592 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
| 4594 // fetch https://www.example.org/ via HTTP | 4593 // fetch https://www.example.org/ via HTTP |
| 4595 | 4594 |
| 4596 const char get[] = | 4595 const char get[] = |
| 4597 "GET / HTTP/1.1\r\n" | 4596 "GET / HTTP/1.1\r\n" |
| 4598 "Host: www.example.org\r\n" | 4597 "Host: www.example.org\r\n" |
| 4599 "Connection: keep-alive\r\n\r\n"; | 4598 "Connection: keep-alive\r\n\r\n"; |
| 4600 SpdySerializedFrame wrapped_get( | 4599 SpdySerializedFrame wrapped_get( |
| 4601 spdy_util_.ConstructSpdyDataFrame(1, get, strlen(get), false)); | 4600 spdy_util_.ConstructSpdyDataFrame(1, get, strlen(get), false)); |
| 4602 SpdySerializedFrame conn_resp( | 4601 SpdySerializedFrame conn_resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 4603 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 4604 const char resp[] = "HTTP/1.1 200 OK\r\n" | 4602 const char resp[] = "HTTP/1.1 200 OK\r\n" |
| 4605 "Content-Length: 10\r\n\r\n"; | 4603 "Content-Length: 10\r\n\r\n"; |
| 4606 SpdySerializedFrame wrapped_get_resp( | 4604 SpdySerializedFrame wrapped_get_resp( |
| 4607 spdy_util_.ConstructSpdyDataFrame(1, resp, strlen(resp), false)); | 4605 spdy_util_.ConstructSpdyDataFrame(1, resp, strlen(resp), false)); |
| 4608 SpdySerializedFrame wrapped_body( | 4606 SpdySerializedFrame wrapped_body( |
| 4609 spdy_util_.ConstructSpdyDataFrame(1, "1234567890", 10, false)); | 4607 spdy_util_.ConstructSpdyDataFrame(1, "1234567890", 10, false)); |
| 4610 SpdySerializedFrame window_update( | 4608 SpdySerializedFrame window_update( |
| 4611 spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_get_resp.size())); | 4609 spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_get_resp.size())); |
| 4612 | 4610 |
| 4613 MockWrite spdy_writes[] = { | 4611 MockWrite spdy_writes[] = { |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4674 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); | 4672 new HttpNetworkTransaction(DEFAULT_PRIORITY, session.get())); |
| 4675 | 4673 |
| 4676 // CONNECT to www.example.org:443 via SPDY | 4674 // CONNECT to www.example.org:443 via SPDY |
| 4677 SpdySerializedFrame connect(spdy_util_.ConstructSpdyConnect( | 4675 SpdySerializedFrame connect(spdy_util_.ConstructSpdyConnect( |
| 4678 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 4676 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
| 4679 // fetch https://www.example.org/ via SPDY | 4677 // fetch https://www.example.org/ via SPDY |
| 4680 const char kMyUrl[] = "https://www.example.org/"; | 4678 const char kMyUrl[] = "https://www.example.org/"; |
| 4681 SpdySerializedFrame get( | 4679 SpdySerializedFrame get( |
| 4682 spdy_util_wrapped.ConstructSpdyGet(kMyUrl, 1, LOWEST)); | 4680 spdy_util_wrapped.ConstructSpdyGet(kMyUrl, 1, LOWEST)); |
| 4683 SpdySerializedFrame wrapped_get(spdy_util_.ConstructWrappedSpdyFrame(get, 1)); | 4681 SpdySerializedFrame wrapped_get(spdy_util_.ConstructWrappedSpdyFrame(get, 1)); |
| 4684 SpdySerializedFrame conn_resp( | 4682 SpdySerializedFrame conn_resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 4685 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 4686 SpdySerializedFrame get_resp( | 4683 SpdySerializedFrame get_resp( |
| 4687 spdy_util_wrapped.ConstructSpdyGetSynReply(NULL, 0, 1)); | 4684 spdy_util_wrapped.ConstructSpdyGetReply(NULL, 0, 1)); |
| 4688 SpdySerializedFrame wrapped_get_resp( | 4685 SpdySerializedFrame wrapped_get_resp( |
| 4689 spdy_util_.ConstructWrappedSpdyFrame(get_resp, 1)); | 4686 spdy_util_.ConstructWrappedSpdyFrame(get_resp, 1)); |
| 4690 SpdySerializedFrame body(spdy_util_wrapped.ConstructSpdyDataFrame(1, true)); | 4687 SpdySerializedFrame body(spdy_util_wrapped.ConstructSpdyDataFrame(1, true)); |
| 4691 SpdySerializedFrame wrapped_body( | 4688 SpdySerializedFrame wrapped_body( |
| 4692 spdy_util_.ConstructWrappedSpdyFrame(body, 1)); | 4689 spdy_util_.ConstructWrappedSpdyFrame(body, 1)); |
| 4693 SpdySerializedFrame window_update_get_resp( | 4690 SpdySerializedFrame window_update_get_resp( |
| 4694 spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_get_resp.size())); | 4691 spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_get_resp.size())); |
| 4695 SpdySerializedFrame window_update_body( | 4692 SpdySerializedFrame window_update_body( |
| 4696 spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_body.size())); | 4693 spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_body.size())); |
| 4697 | 4694 |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4765 // CONNECT to www.example.org:443 via SPDY | 4762 // CONNECT to www.example.org:443 via SPDY |
| 4766 SpdySerializedFrame connect(spdy_util_.ConstructSpdyConnect( | 4763 SpdySerializedFrame connect(spdy_util_.ConstructSpdyConnect( |
| 4767 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 4764 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
| 4768 SpdySerializedFrame get( | 4765 SpdySerializedFrame get( |
| 4769 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 4766 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
| 4770 | 4767 |
| 4771 MockWrite spdy_writes[] = { | 4768 MockWrite spdy_writes[] = { |
| 4772 CreateMockWrite(connect, 0), CreateMockWrite(get, 2), | 4769 CreateMockWrite(connect, 0), CreateMockWrite(get, 2), |
| 4773 }; | 4770 }; |
| 4774 | 4771 |
| 4775 SpdySerializedFrame resp(spdy_util_.ConstructSpdySynReplyError(1)); | 4772 SpdySerializedFrame resp(spdy_util_.ConstructSpdyReplyError(1)); |
| 4776 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); | 4773 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 4777 MockRead spdy_reads[] = { | 4774 MockRead spdy_reads[] = { |
| 4778 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, 0, 3), | 4775 CreateMockRead(resp, 1, ASYNC), MockRead(ASYNC, 0, 3), |
| 4779 }; | 4776 }; |
| 4780 | 4777 |
| 4781 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 4778 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 4782 arraysize(spdy_writes)); | 4779 arraysize(spdy_writes)); |
| 4783 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 4780 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 4784 | 4781 |
| 4785 SSLSocketDataProvider ssl(ASYNC, OK); | 4782 SSLSocketDataProvider ssl(ASYNC, OK); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4817 request1.load_flags = 0; | 4814 request1.load_flags = 0; |
| 4818 | 4815 |
| 4819 HttpRequestInfo request2; | 4816 HttpRequestInfo request2; |
| 4820 request2.method = "GET"; | 4817 request2.method = "GET"; |
| 4821 request2.url = GURL("https://mail.example.org/"); | 4818 request2.url = GURL("https://mail.example.org/"); |
| 4822 request2.load_flags = 0; | 4819 request2.load_flags = 0; |
| 4823 | 4820 |
| 4824 // CONNECT to www.example.org:443 via SPDY. | 4821 // CONNECT to www.example.org:443 via SPDY. |
| 4825 SpdySerializedFrame connect1(spdy_util_.ConstructSpdyConnect( | 4822 SpdySerializedFrame connect1(spdy_util_.ConstructSpdyConnect( |
| 4826 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 4823 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
| 4827 SpdySerializedFrame conn_resp1( | 4824 SpdySerializedFrame conn_resp1(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 4828 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 4829 | 4825 |
| 4830 // Fetch https://www.example.org/ via HTTP. | 4826 // Fetch https://www.example.org/ via HTTP. |
| 4831 const char get1[] = | 4827 const char get1[] = |
| 4832 "GET / HTTP/1.1\r\n" | 4828 "GET / HTTP/1.1\r\n" |
| 4833 "Host: www.example.org\r\n" | 4829 "Host: www.example.org\r\n" |
| 4834 "Connection: keep-alive\r\n\r\n"; | 4830 "Connection: keep-alive\r\n\r\n"; |
| 4835 SpdySerializedFrame wrapped_get1( | 4831 SpdySerializedFrame wrapped_get1( |
| 4836 spdy_util_.ConstructSpdyDataFrame(1, get1, strlen(get1), false)); | 4832 spdy_util_.ConstructSpdyDataFrame(1, get1, strlen(get1), false)); |
| 4837 const char resp1[] = "HTTP/1.1 200 OK\r\n" | 4833 const char resp1[] = "HTTP/1.1 200 OK\r\n" |
| 4838 "Content-Length: 1\r\n\r\n"; | 4834 "Content-Length: 1\r\n\r\n"; |
| 4839 SpdySerializedFrame wrapped_get_resp1( | 4835 SpdySerializedFrame wrapped_get_resp1( |
| 4840 spdy_util_.ConstructSpdyDataFrame(1, resp1, strlen(resp1), false)); | 4836 spdy_util_.ConstructSpdyDataFrame(1, resp1, strlen(resp1), false)); |
| 4841 SpdySerializedFrame wrapped_body1( | 4837 SpdySerializedFrame wrapped_body1( |
| 4842 spdy_util_.ConstructSpdyDataFrame(1, "1", 1, false)); | 4838 spdy_util_.ConstructSpdyDataFrame(1, "1", 1, false)); |
| 4843 SpdySerializedFrame window_update( | 4839 SpdySerializedFrame window_update( |
| 4844 spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_get_resp1.size())); | 4840 spdy_util_.ConstructSpdyWindowUpdate(1, wrapped_get_resp1.size())); |
| 4845 | 4841 |
| 4846 // CONNECT to mail.example.org:443 via SPDY. | 4842 // CONNECT to mail.example.org:443 via SPDY. |
| 4847 SpdyHeaderBlock connect2_block; | 4843 SpdyHeaderBlock connect2_block; |
| 4848 connect2_block[spdy_util_.GetMethodKey()] = "CONNECT"; | 4844 connect2_block[spdy_util_.GetMethodKey()] = "CONNECT"; |
| 4849 connect2_block[spdy_util_.GetHostKey()] = "mail.example.org:443"; | 4845 connect2_block[spdy_util_.GetHostKey()] = "mail.example.org:443"; |
| 4850 SpdySerializedFrame connect2( | 4846 SpdySerializedFrame connect2(spdy_util_.ConstructSpdyHeaders( |
| 4851 spdy_util_.ConstructSpdySyn(3, std::move(connect2_block), LOWEST, false)); | 4847 3, std::move(connect2_block), LOWEST, false)); |
| 4852 | 4848 |
| 4853 SpdySerializedFrame conn_resp2( | 4849 SpdySerializedFrame conn_resp2(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); |
| 4854 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | |
| 4855 | 4850 |
| 4856 // Fetch https://mail.example.org/ via HTTP. | 4851 // Fetch https://mail.example.org/ via HTTP. |
| 4857 const char get2[] = | 4852 const char get2[] = |
| 4858 "GET / HTTP/1.1\r\n" | 4853 "GET / HTTP/1.1\r\n" |
| 4859 "Host: mail.example.org\r\n" | 4854 "Host: mail.example.org\r\n" |
| 4860 "Connection: keep-alive\r\n\r\n"; | 4855 "Connection: keep-alive\r\n\r\n"; |
| 4861 SpdySerializedFrame wrapped_get2( | 4856 SpdySerializedFrame wrapped_get2( |
| 4862 spdy_util_.ConstructSpdyDataFrame(3, get2, strlen(get2), false)); | 4857 spdy_util_.ConstructSpdyDataFrame(3, get2, strlen(get2), false)); |
| 4863 const char resp2[] = "HTTP/1.1 200 OK\r\n" | 4858 const char resp2[] = "HTTP/1.1 200 OK\r\n" |
| 4864 "Content-Length: 2\r\n\r\n"; | 4859 "Content-Length: 2\r\n\r\n"; |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4951 request1.load_flags = 0; | 4946 request1.load_flags = 0; |
| 4952 | 4947 |
| 4953 HttpRequestInfo request2; | 4948 HttpRequestInfo request2; |
| 4954 request2.method = "GET"; | 4949 request2.method = "GET"; |
| 4955 request2.url = GURL("https://www.example.org/2"); | 4950 request2.url = GURL("https://www.example.org/2"); |
| 4956 request2.load_flags = 0; | 4951 request2.load_flags = 0; |
| 4957 | 4952 |
| 4958 // CONNECT to www.example.org:443 via SPDY. | 4953 // CONNECT to www.example.org:443 via SPDY. |
| 4959 SpdySerializedFrame connect1(spdy_util_.ConstructSpdyConnect( | 4954 SpdySerializedFrame connect1(spdy_util_.ConstructSpdyConnect( |
| 4960 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); | 4955 NULL, 0, 1, LOWEST, HostPortPair("www.example.org", 443))); |
| 4961 SpdySerializedFrame conn_resp1( | 4956 SpdySerializedFrame conn_resp1(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 4962 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 4963 | 4957 |
| 4964 // Fetch https://www.example.org/ via HTTP. | 4958 // Fetch https://www.example.org/ via HTTP. |
| 4965 const char get1[] = | 4959 const char get1[] = |
| 4966 "GET / HTTP/1.1\r\n" | 4960 "GET / HTTP/1.1\r\n" |
| 4967 "Host: www.example.org\r\n" | 4961 "Host: www.example.org\r\n" |
| 4968 "Connection: keep-alive\r\n\r\n"; | 4962 "Connection: keep-alive\r\n\r\n"; |
| 4969 SpdySerializedFrame wrapped_get1( | 4963 SpdySerializedFrame wrapped_get1( |
| 4970 spdy_util_.ConstructSpdyDataFrame(1, get1, strlen(get1), false)); | 4964 spdy_util_.ConstructSpdyDataFrame(1, get1, strlen(get1), false)); |
| 4971 const char resp1[] = "HTTP/1.1 200 OK\r\n" | 4965 const char resp1[] = "HTTP/1.1 200 OK\r\n" |
| 4972 "Content-Length: 1\r\n\r\n"; | 4966 "Content-Length: 1\r\n\r\n"; |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5074 | 5068 |
| 5075 HttpRequestInfo request2; | 5069 HttpRequestInfo request2; |
| 5076 request2.method = "GET"; | 5070 request2.method = "GET"; |
| 5077 request2.url = GURL("http://mail.example.org/"); | 5071 request2.url = GURL("http://mail.example.org/"); |
| 5078 request2.load_flags = 0; | 5072 request2.load_flags = 0; |
| 5079 | 5073 |
| 5080 // http://www.example.org/ | 5074 // http://www.example.org/ |
| 5081 SpdyHeaderBlock headers( | 5075 SpdyHeaderBlock headers( |
| 5082 spdy_util_.ConstructGetHeaderBlockForProxy("http://www.example.org/")); | 5076 spdy_util_.ConstructGetHeaderBlockForProxy("http://www.example.org/")); |
| 5083 SpdySerializedFrame get1( | 5077 SpdySerializedFrame get1( |
| 5084 spdy_util_.ConstructSpdySyn(1, std::move(headers), LOWEST, true)); | 5078 spdy_util_.ConstructSpdyHeaders(1, std::move(headers), LOWEST, true)); |
| 5085 SpdySerializedFrame get_resp1( | 5079 SpdySerializedFrame get_resp1(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 5086 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 5087 SpdySerializedFrame body1(spdy_util_.ConstructSpdyDataFrame(1, "1", 1, true)); | 5080 SpdySerializedFrame body1(spdy_util_.ConstructSpdyDataFrame(1, "1", 1, true)); |
| 5088 spdy_util_.UpdateWithStreamDestruction(1); | 5081 spdy_util_.UpdateWithStreamDestruction(1); |
| 5089 | 5082 |
| 5090 // http://mail.example.org/ | 5083 // http://mail.example.org/ |
| 5091 SpdyHeaderBlock headers2( | 5084 SpdyHeaderBlock headers2( |
| 5092 spdy_util_.ConstructGetHeaderBlockForProxy("http://mail.example.org/")); | 5085 spdy_util_.ConstructGetHeaderBlockForProxy("http://mail.example.org/")); |
| 5093 SpdySerializedFrame get2( | 5086 SpdySerializedFrame get2( |
| 5094 spdy_util_.ConstructSpdySyn(3, std::move(headers2), LOWEST, true)); | 5087 spdy_util_.ConstructSpdyHeaders(3, std::move(headers2), LOWEST, true)); |
| 5095 SpdySerializedFrame get_resp2( | 5088 SpdySerializedFrame get_resp2(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); |
| 5096 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | |
| 5097 SpdySerializedFrame body2( | 5089 SpdySerializedFrame body2( |
| 5098 spdy_util_.ConstructSpdyDataFrame(3, "22", 2, true)); | 5090 spdy_util_.ConstructSpdyDataFrame(3, "22", 2, true)); |
| 5099 | 5091 |
| 5100 MockWrite spdy_writes[] = { | 5092 MockWrite spdy_writes[] = { |
| 5101 CreateMockWrite(get1, 0), CreateMockWrite(get2, 3), | 5093 CreateMockWrite(get1, 0), CreateMockWrite(get2, 3), |
| 5102 }; | 5094 }; |
| 5103 | 5095 |
| 5104 MockRead spdy_reads[] = { | 5096 MockRead spdy_reads[] = { |
| 5105 CreateMockRead(get_resp1, 1, ASYNC), | 5097 CreateMockRead(get_resp1, 1, ASYNC), |
| 5106 CreateMockRead(body1, 2, ASYNC), | 5098 CreateMockRead(body1, 2, ASYNC), |
| (...skipping 2558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7665 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 7657 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
| 7666 MockWrite data_writes[] = { | 7658 MockWrite data_writes[] = { |
| 7667 CreateMockWrite(conn, 0, SYNCHRONOUS), | 7659 CreateMockWrite(conn, 0, SYNCHRONOUS), |
| 7668 CreateMockWrite(goaway, 2, SYNCHRONOUS), | 7660 CreateMockWrite(goaway, 2, SYNCHRONOUS), |
| 7669 }; | 7661 }; |
| 7670 | 7662 |
| 7671 static const char* const kExtraHeaders[] = { | 7663 static const char* const kExtraHeaders[] = { |
| 7672 "location", | 7664 "location", |
| 7673 "http://login.example.com/", | 7665 "http://login.example.com/", |
| 7674 }; | 7666 }; |
| 7675 SpdySerializedFrame resp(spdy_util_.ConstructSpdySynReplyError( | 7667 SpdySerializedFrame resp(spdy_util_.ConstructSpdyReplyError( |
| 7676 "302 Redirect", kExtraHeaders, arraysize(kExtraHeaders) / 2, 1)); | 7668 "302 Redirect", kExtraHeaders, arraysize(kExtraHeaders) / 2, 1)); |
| 7677 MockRead data_reads[] = { | 7669 MockRead data_reads[] = { |
| 7678 CreateMockRead(resp, 1), MockRead(ASYNC, 0, 3), // EOF | 7670 CreateMockRead(resp, 1), MockRead(ASYNC, 0, 3), // EOF |
| 7679 }; | 7671 }; |
| 7680 | 7672 |
| 7681 SequencedSocketData data(data_reads, arraysize(data_reads), data_writes, | 7673 SequencedSocketData data(data_reads, arraysize(data_reads), data_writes, |
| 7682 arraysize(data_writes)); | 7674 arraysize(data_writes)); |
| 7683 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy | 7675 SSLSocketDataProvider proxy_ssl(ASYNC, OK); // SSL to the proxy |
| 7684 proxy_ssl.SetNextProto(kProtoHTTP2); | 7676 proxy_ssl.SetNextProto(kProtoHTTP2); |
| 7685 | 7677 |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7765 SpdySerializedFrame rst( | 7757 SpdySerializedFrame rst( |
| 7766 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 7758 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
| 7767 MockWrite data_writes[] = { | 7759 MockWrite data_writes[] = { |
| 7768 CreateMockWrite(conn, 0), CreateMockWrite(rst, 3), | 7760 CreateMockWrite(conn, 0), CreateMockWrite(rst, 3), |
| 7769 }; | 7761 }; |
| 7770 | 7762 |
| 7771 static const char* const kExtraHeaders[] = { | 7763 static const char* const kExtraHeaders[] = { |
| 7772 "location", | 7764 "location", |
| 7773 "http://login.example.com/", | 7765 "http://login.example.com/", |
| 7774 }; | 7766 }; |
| 7775 SpdySerializedFrame resp(spdy_util_.ConstructSpdySynReplyError( | 7767 SpdySerializedFrame resp(spdy_util_.ConstructSpdyReplyError( |
| 7776 "404 Not Found", kExtraHeaders, arraysize(kExtraHeaders) / 2, 1)); | 7768 "404 Not Found", kExtraHeaders, arraysize(kExtraHeaders) / 2, 1)); |
| 7777 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame( | 7769 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame( |
| 7778 1, "The host does not exist", 23, true)); | 7770 1, "The host does not exist", 23, true)); |
| 7779 MockRead data_reads[] = { | 7771 MockRead data_reads[] = { |
| 7780 CreateMockRead(resp, 1), CreateMockRead(body, 2), | 7772 CreateMockRead(resp, 1), CreateMockRead(body, 2), |
| 7781 MockRead(ASYNC, 0, 4), // EOF | 7773 MockRead(ASYNC, 0, 4), // EOF |
| 7782 }; | 7774 }; |
| 7783 | 7775 |
| 7784 SequencedSocketData data(data_reads, arraysize(data_reads), data_writes, | 7776 SequencedSocketData data(data_reads, arraysize(data_reads), data_writes, |
| 7785 arraysize(data_writes)); | 7777 arraysize(data_writes)); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7847 CreateMockWrite(req, 0, ASYNC), CreateMockWrite(rst, 2, ASYNC), | 7839 CreateMockWrite(req, 0, ASYNC), CreateMockWrite(rst, 2, ASYNC), |
| 7848 CreateMockWrite(connect2, 3), CreateMockWrite(wrapped_get, 5), | 7840 CreateMockWrite(connect2, 3), CreateMockWrite(wrapped_get, 5), |
| 7849 }; | 7841 }; |
| 7850 | 7842 |
| 7851 // The proxy responds to the connect with a 407, using a persistent | 7843 // The proxy responds to the connect with a 407, using a persistent |
| 7852 // connection. | 7844 // connection. |
| 7853 const char kAuthStatus[] = "407"; | 7845 const char kAuthStatus[] = "407"; |
| 7854 const char* const kAuthChallenge[] = { | 7846 const char* const kAuthChallenge[] = { |
| 7855 "proxy-authenticate", "Basic realm=\"MyRealm1\"", | 7847 "proxy-authenticate", "Basic realm=\"MyRealm1\"", |
| 7856 }; | 7848 }; |
| 7857 SpdySerializedFrame conn_auth_resp(spdy_util_.ConstructSpdySynReplyError( | 7849 SpdySerializedFrame conn_auth_resp(spdy_util_.ConstructSpdyReplyError( |
| 7858 kAuthStatus, kAuthChallenge, arraysize(kAuthChallenge) / 2, 1)); | 7850 kAuthStatus, kAuthChallenge, arraysize(kAuthChallenge) / 2, 1)); |
| 7859 | 7851 |
| 7860 SpdySerializedFrame conn_resp( | 7852 SpdySerializedFrame conn_resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); |
| 7861 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | |
| 7862 const char resp[] = "HTTP/1.1 200 OK\r\n" | 7853 const char resp[] = "HTTP/1.1 200 OK\r\n" |
| 7863 "Content-Length: 5\r\n\r\n"; | 7854 "Content-Length: 5\r\n\r\n"; |
| 7864 | 7855 |
| 7865 SpdySerializedFrame wrapped_get_resp( | 7856 SpdySerializedFrame wrapped_get_resp( |
| 7866 spdy_util_.ConstructSpdyDataFrame(3, resp, strlen(resp), false)); | 7857 spdy_util_.ConstructSpdyDataFrame(3, resp, strlen(resp), false)); |
| 7867 SpdySerializedFrame wrapped_body( | 7858 SpdySerializedFrame wrapped_body( |
| 7868 spdy_util_.ConstructSpdyDataFrame(3, "hello", 5, false)); | 7859 spdy_util_.ConstructSpdyDataFrame(3, "hello", 5, false)); |
| 7869 MockRead spdy_reads[] = { | 7860 MockRead spdy_reads[] = { |
| 7870 CreateMockRead(conn_auth_resp, 1, ASYNC), | 7861 CreateMockRead(conn_auth_resp, 1, ASYNC), |
| 7871 CreateMockRead(conn_resp, 4, ASYNC), | 7862 CreateMockRead(conn_resp, 4, ASYNC), |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7968 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 7959 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 7969 | 7960 |
| 7970 SpdySerializedFrame stream1_syn( | 7961 SpdySerializedFrame stream1_syn( |
| 7971 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); | 7962 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); |
| 7972 | 7963 |
| 7973 MockWrite spdy_writes[] = { | 7964 MockWrite spdy_writes[] = { |
| 7974 CreateMockWrite(stream1_syn, 0, ASYNC), | 7965 CreateMockWrite(stream1_syn, 0, ASYNC), |
| 7975 }; | 7966 }; |
| 7976 | 7967 |
| 7977 SpdySerializedFrame stream1_reply( | 7968 SpdySerializedFrame stream1_reply( |
| 7978 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 7969 spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 7979 | 7970 |
| 7980 SpdySerializedFrame stream1_body(spdy_util_.ConstructSpdyDataFrame(1, true)); | 7971 SpdySerializedFrame stream1_body(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 7981 | 7972 |
| 7982 SpdySerializedFrame stream2_syn(spdy_util_.ConstructSpdyPush( | 7973 SpdySerializedFrame stream2_syn(spdy_util_.ConstructSpdyPush( |
| 7983 NULL, 0, 2, 1, "http://www.another-origin.com/foo.dat")); | 7974 NULL, 0, 2, 1, "http://www.another-origin.com/foo.dat")); |
| 7984 const char kPushedData[] = "pushed"; | 7975 const char kPushedData[] = "pushed"; |
| 7985 SpdySerializedFrame stream2_body(spdy_util_.ConstructSpdyDataFrame( | 7976 SpdySerializedFrame stream2_body(spdy_util_.ConstructSpdyDataFrame( |
| 7986 2, kPushedData, strlen(kPushedData), true)); | 7977 2, kPushedData, strlen(kPushedData), true)); |
| 7987 | 7978 |
| 7988 MockRead spdy_reads[] = { | 7979 MockRead spdy_reads[] = { |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8082 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); | 8073 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); |
| 8083 | 8074 |
| 8084 SpdySerializedFrame push_rst( | 8075 SpdySerializedFrame push_rst( |
| 8085 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); | 8076 spdy_util_.ConstructSpdyRstStream(2, RST_STREAM_REFUSED_STREAM)); |
| 8086 | 8077 |
| 8087 MockWrite spdy_writes[] = { | 8078 MockWrite spdy_writes[] = { |
| 8088 CreateMockWrite(stream1_syn, 0, ASYNC), CreateMockWrite(push_rst, 3), | 8079 CreateMockWrite(stream1_syn, 0, ASYNC), CreateMockWrite(push_rst, 3), |
| 8089 }; | 8080 }; |
| 8090 | 8081 |
| 8091 SpdySerializedFrame stream1_reply( | 8082 SpdySerializedFrame stream1_reply( |
| 8092 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 8083 spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 8093 | 8084 |
| 8094 SpdySerializedFrame stream1_body(spdy_util_.ConstructSpdyDataFrame(1, true)); | 8085 SpdySerializedFrame stream1_body(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 8095 | 8086 |
| 8096 SpdySerializedFrame stream2_syn(spdy_util_.ConstructSpdyPush( | 8087 SpdySerializedFrame stream2_syn(spdy_util_.ConstructSpdyPush( |
| 8097 NULL, 0, 2, 1, "https://www.another-origin.com/foo.dat")); | 8088 NULL, 0, 2, 1, "https://www.another-origin.com/foo.dat")); |
| 8098 | 8089 |
| 8099 MockRead spdy_reads[] = { | 8090 MockRead spdy_reads[] = { |
| 8100 CreateMockRead(stream1_reply, 1, ASYNC), | 8091 CreateMockRead(stream1_reply, 1, ASYNC), |
| 8101 CreateMockRead(stream2_syn, 2, ASYNC), | 8092 CreateMockRead(stream2_syn, 2, ASYNC), |
| 8102 CreateMockRead(stream1_body, 4, ASYNC), | 8093 CreateMockRead(stream1_body, 4, ASYNC), |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8160 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 8151 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 8161 | 8152 |
| 8162 SpdySerializedFrame stream1_syn( | 8153 SpdySerializedFrame stream1_syn( |
| 8163 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); | 8154 spdy_util_.ConstructSpdyGet("http://www.example.org/", 1, LOWEST)); |
| 8164 | 8155 |
| 8165 MockWrite spdy_writes[] = { | 8156 MockWrite spdy_writes[] = { |
| 8166 CreateMockWrite(stream1_syn, 0, ASYNC), | 8157 CreateMockWrite(stream1_syn, 0, ASYNC), |
| 8167 }; | 8158 }; |
| 8168 | 8159 |
| 8169 SpdySerializedFrame stream1_reply( | 8160 SpdySerializedFrame stream1_reply( |
| 8170 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 8161 spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 8171 | 8162 |
| 8172 SpdySerializedFrame stream2_syn(spdy_util_.ConstructSpdyPush( | 8163 SpdySerializedFrame stream2_syn(spdy_util_.ConstructSpdyPush( |
| 8173 nullptr, 0, 2, 1, "https://myproxy:70/foo.dat")); | 8164 nullptr, 0, 2, 1, "https://myproxy:70/foo.dat")); |
| 8174 | 8165 |
| 8175 SpdySerializedFrame stream1_body(spdy_util_.ConstructSpdyDataFrame(1, true)); | 8166 SpdySerializedFrame stream1_body(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 8176 | 8167 |
| 8177 SpdySerializedFrame stream2_reply( | 8168 SpdySerializedFrame stream2_reply( |
| 8178 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 8169 spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 8179 | 8170 |
| 8180 SpdySerializedFrame stream2_body(spdy_util_.ConstructSpdyDataFrame(1, true)); | 8171 SpdySerializedFrame stream2_body(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 8181 | 8172 |
| 8182 MockRead spdy_reads[] = { | 8173 MockRead spdy_reads[] = { |
| 8183 CreateMockRead(stream1_reply, 1, ASYNC), | 8174 CreateMockRead(stream1_reply, 1, ASYNC), |
| 8184 CreateMockRead(stream2_syn, 2, ASYNC), | 8175 CreateMockRead(stream2_syn, 2, ASYNC), |
| 8185 CreateMockRead(stream1_body, 3, ASYNC), | 8176 CreateMockRead(stream1_body, 3, ASYNC), |
| 8186 CreateMockRead(stream2_body, 4, ASYNC), | 8177 CreateMockRead(stream2_body, 4, ASYNC), |
| 8187 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), // Force a hang | 8178 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), // Force a hang |
| 8188 }; | 8179 }; |
| (...skipping 2545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10734 ssl_http2.SetNextProto(kProtoHTTP2); | 10725 ssl_http2.SetNextProto(kProtoHTTP2); |
| 10735 ssl_http2.cert = | 10726 ssl_http2.cert = |
| 10736 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); | 10727 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); |
| 10737 ASSERT_TRUE(ssl_http2.cert.get()); | 10728 ASSERT_TRUE(ssl_http2.cert.get()); |
| 10738 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_http2); | 10729 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_http2); |
| 10739 | 10730 |
| 10740 SpdySerializedFrame req( | 10731 SpdySerializedFrame req( |
| 10741 spdy_util_.ConstructSpdyGet("https://www.example.org/", 1, LOWEST)); | 10732 spdy_util_.ConstructSpdyGet("https://www.example.org/", 1, LOWEST)); |
| 10742 MockWrite spdy_writes[] = {CreateMockWrite(req, 0)}; | 10733 MockWrite spdy_writes[] = {CreateMockWrite(req, 0)}; |
| 10743 | 10734 |
| 10744 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 10735 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 10745 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); | 10736 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 10746 MockRead spdy_reads[] = { | 10737 MockRead spdy_reads[] = { |
| 10747 CreateMockRead(resp, 1), CreateMockRead(data, 2), MockRead(ASYNC, 0, 3), | 10738 CreateMockRead(resp, 1), CreateMockRead(data, 2), MockRead(ASYNC, 0, 3), |
| 10748 }; | 10739 }; |
| 10749 | 10740 |
| 10750 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 10741 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 10751 arraysize(spdy_writes)); | 10742 arraysize(spdy_writes)); |
| 10752 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 10743 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 10753 | 10744 |
| 10754 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); | 10745 MockConnect never_finishing_connect(SYNCHRONOUS, ERR_IO_PENDING); |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10832 // Third transaction starts an alternative and a non-alternative job. | 10823 // Third transaction starts an alternative and a non-alternative job. |
| 10833 // The non-alternative job hangs, but the alternative one succeeds. | 10824 // The non-alternative job hangs, but the alternative one succeeds. |
| 10834 // The second transaction, still pending, binds to this socket. | 10825 // The second transaction, still pending, binds to this socket. |
| 10835 SpdySerializedFrame req1( | 10826 SpdySerializedFrame req1( |
| 10836 spdy_util_.ConstructSpdyGet("https://www.example.org/", 1, LOWEST)); | 10827 spdy_util_.ConstructSpdyGet("https://www.example.org/", 1, LOWEST)); |
| 10837 SpdySerializedFrame req2( | 10828 SpdySerializedFrame req2( |
| 10838 spdy_util_.ConstructSpdyGet("https://www.example.org/", 3, LOWEST)); | 10829 spdy_util_.ConstructSpdyGet("https://www.example.org/", 3, LOWEST)); |
| 10839 MockWrite spdy_writes[] = { | 10830 MockWrite spdy_writes[] = { |
| 10840 CreateMockWrite(req1, 0), CreateMockWrite(req2, 1), | 10831 CreateMockWrite(req1, 0), CreateMockWrite(req2, 1), |
| 10841 }; | 10832 }; |
| 10842 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 10833 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 10843 SpdySerializedFrame data1(spdy_util_.ConstructSpdyDataFrame(1, true)); | 10834 SpdySerializedFrame data1(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 10844 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | 10835 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); |
| 10845 SpdySerializedFrame data2(spdy_util_.ConstructSpdyDataFrame(3, true)); | 10836 SpdySerializedFrame data2(spdy_util_.ConstructSpdyDataFrame(3, true)); |
| 10846 MockRead spdy_reads[] = { | 10837 MockRead spdy_reads[] = { |
| 10847 CreateMockRead(resp1, 2), CreateMockRead(data1, 3), | 10838 CreateMockRead(resp1, 2), CreateMockRead(data1, 3), |
| 10848 CreateMockRead(resp2, 4), CreateMockRead(data2, 5), | 10839 CreateMockRead(resp2, 4), CreateMockRead(data2, 5), |
| 10849 MockRead(ASYNC, 0, 6), | 10840 MockRead(ASYNC, 0, 6), |
| 10850 }; | 10841 }; |
| 10851 | 10842 |
| 10852 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 10843 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 10853 arraysize(spdy_writes)); | 10844 arraysize(spdy_writes)); |
| 10854 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 10845 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11082 MockWrite spdy_writes[] = { | 11073 MockWrite spdy_writes[] = { |
| 11083 MockWrite(ASYNC, 0, | 11074 MockWrite(ASYNC, 0, |
| 11084 "CONNECT www.example.org:443 HTTP/1.1\r\n" | 11075 "CONNECT www.example.org:443 HTTP/1.1\r\n" |
| 11085 "Host: www.example.org:443\r\n" | 11076 "Host: www.example.org:443\r\n" |
| 11086 "Proxy-Connection: keep-alive\r\n\r\n"), | 11077 "Proxy-Connection: keep-alive\r\n\r\n"), |
| 11087 CreateMockWrite(req, 2), | 11078 CreateMockWrite(req, 2), |
| 11088 }; | 11079 }; |
| 11089 | 11080 |
| 11090 const char kCONNECTResponse[] = "HTTP/1.1 200 Connected\r\n\r\n"; | 11081 const char kCONNECTResponse[] = "HTTP/1.1 200 Connected\r\n\r\n"; |
| 11091 | 11082 |
| 11092 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 11083 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 11093 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); | 11084 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 11094 MockRead spdy_reads[] = { | 11085 MockRead spdy_reads[] = { |
| 11095 MockRead(ASYNC, 1, kCONNECTResponse), CreateMockRead(resp, 3), | 11086 MockRead(ASYNC, 1, kCONNECTResponse), CreateMockRead(resp, 3), |
| 11096 CreateMockRead(data, 4), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), | 11087 CreateMockRead(data, 4), MockRead(SYNCHRONOUS, ERR_IO_PENDING, 5), |
| 11097 }; | 11088 }; |
| 11098 | 11089 |
| 11099 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 11090 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 11100 arraysize(spdy_writes)); | 11091 arraysize(spdy_writes)); |
| 11101 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 11092 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 11102 | 11093 |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11172 ssl_http2.SetNextProto(kProtoHTTP2); | 11163 ssl_http2.SetNextProto(kProtoHTTP2); |
| 11173 ssl_http2.cert = | 11164 ssl_http2.cert = |
| 11174 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); | 11165 ImportCertFromFile(GetTestCertsDirectory(), "spdy_pooling.pem"); |
| 11175 ASSERT_TRUE(ssl_http2.cert); | 11166 ASSERT_TRUE(ssl_http2.cert); |
| 11176 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_http2); | 11167 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl_http2); |
| 11177 | 11168 |
| 11178 SpdySerializedFrame req( | 11169 SpdySerializedFrame req( |
| 11179 spdy_util_.ConstructSpdyGet("https://www.example.org/", 1, LOWEST)); | 11170 spdy_util_.ConstructSpdyGet("https://www.example.org/", 1, LOWEST)); |
| 11180 MockWrite spdy_writes[] = {CreateMockWrite(req, 0)}; | 11171 MockWrite spdy_writes[] = {CreateMockWrite(req, 0)}; |
| 11181 | 11172 |
| 11182 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 11173 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 11183 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); | 11174 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 11184 MockRead spdy_reads[] = { | 11175 MockRead spdy_reads[] = { |
| 11185 CreateMockRead(resp, 1), CreateMockRead(data, 2), MockRead(ASYNC, 0, 3), | 11176 CreateMockRead(resp, 1), CreateMockRead(data, 2), MockRead(ASYNC, 0, 3), |
| 11186 }; | 11177 }; |
| 11187 | 11178 |
| 11188 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 11179 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 11189 arraysize(spdy_writes)); | 11180 arraysize(spdy_writes)); |
| 11190 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 11181 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 11191 | 11182 |
| 11192 TestCompletionCallback callback; | 11183 TestCompletionCallback callback; |
| (...skipping 1132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12325 NetLog::TYPE_HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS, | 12316 NetLog::TYPE_HTTP_TRANSACTION_READ_TUNNEL_RESPONSE_HEADERS, |
| 12326 NetLog::PHASE_NONE); | 12317 NetLog::PHASE_NONE); |
| 12327 } | 12318 } |
| 12328 | 12319 |
| 12329 // Test for crbug.com/55424. | 12320 // Test for crbug.com/55424. |
| 12330 TEST_F(HttpNetworkTransactionTest, PreconnectWithExistingSpdySession) { | 12321 TEST_F(HttpNetworkTransactionTest, PreconnectWithExistingSpdySession) { |
| 12331 SpdySerializedFrame req( | 12322 SpdySerializedFrame req( |
| 12332 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); | 12323 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); |
| 12333 MockWrite spdy_writes[] = {CreateMockWrite(req, 0)}; | 12324 MockWrite spdy_writes[] = {CreateMockWrite(req, 0)}; |
| 12334 | 12325 |
| 12335 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 12326 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 12336 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); | 12327 SpdySerializedFrame data(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 12337 MockRead spdy_reads[] = { | 12328 MockRead spdy_reads[] = { |
| 12338 CreateMockRead(resp, 1), CreateMockRead(data, 2), MockRead(ASYNC, 0, 3), | 12329 CreateMockRead(resp, 1), CreateMockRead(data, 2), MockRead(ASYNC, 0, 3), |
| 12339 }; | 12330 }; |
| 12340 | 12331 |
| 12341 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, | 12332 SequencedSocketData spdy_data(spdy_reads, arraysize(spdy_reads), spdy_writes, |
| 12342 arraysize(spdy_writes)); | 12333 arraysize(spdy_writes)); |
| 12343 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); | 12334 session_deps_.socket_factory->AddSocketDataProvider(&spdy_data); |
| 12344 | 12335 |
| 12345 SSLSocketDataProvider ssl(ASYNC, OK); | 12336 SSLSocketDataProvider ssl(ASYNC, OK); |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12747 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 12738 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 12748 | 12739 |
| 12749 SpdySerializedFrame host1_req( | 12740 SpdySerializedFrame host1_req( |
| 12750 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); | 12741 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); |
| 12751 spdy_util_.UpdateWithStreamDestruction(1); | 12742 spdy_util_.UpdateWithStreamDestruction(1); |
| 12752 SpdySerializedFrame host2_req( | 12743 SpdySerializedFrame host2_req( |
| 12753 spdy_util_.ConstructSpdyGet("https://www.gmail.com", 3, LOWEST)); | 12744 spdy_util_.ConstructSpdyGet("https://www.gmail.com", 3, LOWEST)); |
| 12754 MockWrite spdy_writes[] = { | 12745 MockWrite spdy_writes[] = { |
| 12755 CreateMockWrite(host1_req, 0), CreateMockWrite(host2_req, 3), | 12746 CreateMockWrite(host1_req, 0), CreateMockWrite(host2_req, 3), |
| 12756 }; | 12747 }; |
| 12757 SpdySerializedFrame host1_resp( | 12748 SpdySerializedFrame host1_resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 12758 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 12759 SpdySerializedFrame host1_resp_body( | 12749 SpdySerializedFrame host1_resp_body( |
| 12760 spdy_util_.ConstructSpdyDataFrame(1, true)); | 12750 spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 12761 SpdySerializedFrame host2_resp( | 12751 SpdySerializedFrame host2_resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); |
| 12762 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | |
| 12763 SpdySerializedFrame host2_resp_body( | 12752 SpdySerializedFrame host2_resp_body( |
| 12764 spdy_util_.ConstructSpdyDataFrame(3, true)); | 12753 spdy_util_.ConstructSpdyDataFrame(3, true)); |
| 12765 MockRead spdy_reads[] = { | 12754 MockRead spdy_reads[] = { |
| 12766 CreateMockRead(host1_resp, 1), CreateMockRead(host1_resp_body, 2), | 12755 CreateMockRead(host1_resp, 1), CreateMockRead(host1_resp_body, 2), |
| 12767 CreateMockRead(host2_resp, 4), CreateMockRead(host2_resp_body, 5), | 12756 CreateMockRead(host2_resp, 4), CreateMockRead(host2_resp_body, 5), |
| 12768 MockRead(ASYNC, 0, 6), | 12757 MockRead(ASYNC, 0, 6), |
| 12769 }; | 12758 }; |
| 12770 | 12759 |
| 12771 IPEndPoint peer_addr(IPAddress::IPv4Localhost(), 443); | 12760 IPEndPoint peer_addr(IPAddress::IPv4Localhost(), 443); |
| 12772 MockConnect connect(ASYNC, OK, peer_addr); | 12761 MockConnect connect(ASYNC, OK, peer_addr); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12840 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 12829 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 12841 | 12830 |
| 12842 SpdySerializedFrame host1_req( | 12831 SpdySerializedFrame host1_req( |
| 12843 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); | 12832 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); |
| 12844 spdy_util_.UpdateWithStreamDestruction(1); | 12833 spdy_util_.UpdateWithStreamDestruction(1); |
| 12845 SpdySerializedFrame host2_req( | 12834 SpdySerializedFrame host2_req( |
| 12846 spdy_util_.ConstructSpdyGet("https://www.gmail.com", 3, LOWEST)); | 12835 spdy_util_.ConstructSpdyGet("https://www.gmail.com", 3, LOWEST)); |
| 12847 MockWrite spdy_writes[] = { | 12836 MockWrite spdy_writes[] = { |
| 12848 CreateMockWrite(host1_req, 0), CreateMockWrite(host2_req, 3), | 12837 CreateMockWrite(host1_req, 0), CreateMockWrite(host2_req, 3), |
| 12849 }; | 12838 }; |
| 12850 SpdySerializedFrame host1_resp( | 12839 SpdySerializedFrame host1_resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 12851 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 12852 SpdySerializedFrame host1_resp_body( | 12840 SpdySerializedFrame host1_resp_body( |
| 12853 spdy_util_.ConstructSpdyDataFrame(1, true)); | 12841 spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 12854 SpdySerializedFrame host2_resp( | 12842 SpdySerializedFrame host2_resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); |
| 12855 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | |
| 12856 SpdySerializedFrame host2_resp_body( | 12843 SpdySerializedFrame host2_resp_body( |
| 12857 spdy_util_.ConstructSpdyDataFrame(3, true)); | 12844 spdy_util_.ConstructSpdyDataFrame(3, true)); |
| 12858 MockRead spdy_reads[] = { | 12845 MockRead spdy_reads[] = { |
| 12859 CreateMockRead(host1_resp, 1), CreateMockRead(host1_resp_body, 2), | 12846 CreateMockRead(host1_resp, 1), CreateMockRead(host1_resp_body, 2), |
| 12860 CreateMockRead(host2_resp, 4), CreateMockRead(host2_resp_body, 5), | 12847 CreateMockRead(host2_resp, 4), CreateMockRead(host2_resp_body, 5), |
| 12861 MockRead(ASYNC, 0, 6), | 12848 MockRead(ASYNC, 0, 6), |
| 12862 }; | 12849 }; |
| 12863 | 12850 |
| 12864 IPEndPoint peer_addr(IPAddress::IPv4Localhost(), 443); | 12851 IPEndPoint peer_addr(IPAddress::IPv4Localhost(), 443); |
| 12865 MockConnect connect(ASYNC, OK, peer_addr); | 12852 MockConnect connect(ASYNC, OK, peer_addr); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12964 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 12951 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 12965 | 12952 |
| 12966 SpdySerializedFrame host1_req( | 12953 SpdySerializedFrame host1_req( |
| 12967 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); | 12954 spdy_util_.ConstructSpdyGet("https://www.example.org", 1, LOWEST)); |
| 12968 spdy_util_.UpdateWithStreamDestruction(1); | 12955 spdy_util_.UpdateWithStreamDestruction(1); |
| 12969 SpdySerializedFrame host2_req( | 12956 SpdySerializedFrame host2_req( |
| 12970 spdy_util_.ConstructSpdyGet("https://www.gmail.com", 3, LOWEST)); | 12957 spdy_util_.ConstructSpdyGet("https://www.gmail.com", 3, LOWEST)); |
| 12971 MockWrite spdy_writes[] = { | 12958 MockWrite spdy_writes[] = { |
| 12972 CreateMockWrite(host1_req, 0), CreateMockWrite(host2_req, 3), | 12959 CreateMockWrite(host1_req, 0), CreateMockWrite(host2_req, 3), |
| 12973 }; | 12960 }; |
| 12974 SpdySerializedFrame host1_resp( | 12961 SpdySerializedFrame host1_resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 12975 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 12976 SpdySerializedFrame host1_resp_body( | 12962 SpdySerializedFrame host1_resp_body( |
| 12977 spdy_util_.ConstructSpdyDataFrame(1, true)); | 12963 spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 12978 SpdySerializedFrame host2_resp( | 12964 SpdySerializedFrame host2_resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); |
| 12979 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | |
| 12980 SpdySerializedFrame host2_resp_body( | 12965 SpdySerializedFrame host2_resp_body( |
| 12981 spdy_util_.ConstructSpdyDataFrame(3, true)); | 12966 spdy_util_.ConstructSpdyDataFrame(3, true)); |
| 12982 MockRead spdy_reads[] = { | 12967 MockRead spdy_reads[] = { |
| 12983 CreateMockRead(host1_resp, 1), CreateMockRead(host1_resp_body, 2), | 12968 CreateMockRead(host1_resp, 1), CreateMockRead(host1_resp_body, 2), |
| 12984 CreateMockRead(host2_resp, 4), CreateMockRead(host2_resp_body, 5), | 12969 CreateMockRead(host2_resp, 4), CreateMockRead(host2_resp_body, 5), |
| 12985 MockRead(ASYNC, 0, 6), | 12970 MockRead(ASYNC, 0, 6), |
| 12986 }; | 12971 }; |
| 12987 | 12972 |
| 12988 IPEndPoint peer_addr(IPAddress::IPv4Localhost(), 443); | 12973 IPEndPoint peer_addr(IPAddress::IPv4Localhost(), 443); |
| 12989 MockConnect connect(ASYNC, OK, peer_addr); | 12974 MockConnect connect(ASYNC, OK, peer_addr); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13049 const std::string http_url = "http://www.example.org:8080/"; | 13034 const std::string http_url = "http://www.example.org:8080/"; |
| 13050 | 13035 |
| 13051 // SPDY GET for HTTPS URL | 13036 // SPDY GET for HTTPS URL |
| 13052 SpdySerializedFrame req1( | 13037 SpdySerializedFrame req1( |
| 13053 spdy_util_.ConstructSpdyGet(https_url.c_str(), 1, LOWEST)); | 13038 spdy_util_.ConstructSpdyGet(https_url.c_str(), 1, LOWEST)); |
| 13054 | 13039 |
| 13055 MockWrite writes1[] = { | 13040 MockWrite writes1[] = { |
| 13056 CreateMockWrite(req1, 0), | 13041 CreateMockWrite(req1, 0), |
| 13057 }; | 13042 }; |
| 13058 | 13043 |
| 13059 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 13044 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 13060 SpdySerializedFrame body1(spdy_util_.ConstructSpdyDataFrame(1, true)); | 13045 SpdySerializedFrame body1(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 13061 MockRead reads1[] = {CreateMockRead(resp1, 1), CreateMockRead(body1, 2), | 13046 MockRead reads1[] = {CreateMockRead(resp1, 1), CreateMockRead(body1, 2), |
| 13062 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 3)}; | 13047 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 3)}; |
| 13063 | 13048 |
| 13064 SequencedSocketData data1(reads1, arraysize(reads1), writes1, | 13049 SequencedSocketData data1(reads1, arraysize(reads1), writes1, |
| 13065 arraysize(writes1)); | 13050 arraysize(writes1)); |
| 13066 MockConnect connect_data1(ASYNC, OK); | 13051 MockConnect connect_data1(ASYNC, OK); |
| 13067 data1.set_connect_data(connect_data1); | 13052 data1.set_connect_data(connect_data1); |
| 13068 | 13053 |
| 13069 // HTTP GET for the HTTP URL | 13054 // HTTP GET for the HTTP URL |
| (...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13407 SpdySerializedFrame wrapped_req1( | 13392 SpdySerializedFrame wrapped_req1( |
| 13408 spdy_util_.ConstructWrappedSpdyFrame(req1, 1)); | 13393 spdy_util_.ConstructWrappedSpdyFrame(req1, 1)); |
| 13409 | 13394 |
| 13410 // SPDY GET for HTTP URL (through the proxy, but not the tunnel). | 13395 // SPDY GET for HTTP URL (through the proxy, but not the tunnel). |
| 13411 SpdyHeaderBlock req2_block; | 13396 SpdyHeaderBlock req2_block; |
| 13412 req2_block[spdy_util_.GetMethodKey()] = "GET"; | 13397 req2_block[spdy_util_.GetMethodKey()] = "GET"; |
| 13413 req2_block[spdy_util_.GetHostKey()] = "www.example.org:8080"; | 13398 req2_block[spdy_util_.GetHostKey()] = "www.example.org:8080"; |
| 13414 req2_block[spdy_util_.GetSchemeKey()] = "http"; | 13399 req2_block[spdy_util_.GetSchemeKey()] = "http"; |
| 13415 req2_block[spdy_util_.GetPathKey()] = "/"; | 13400 req2_block[spdy_util_.GetPathKey()] = "/"; |
| 13416 SpdySerializedFrame req2( | 13401 SpdySerializedFrame req2( |
| 13417 spdy_util_.ConstructSpdySyn(3, std::move(req2_block), MEDIUM, true)); | 13402 spdy_util_.ConstructSpdyHeaders(3, std::move(req2_block), MEDIUM, true)); |
| 13418 | 13403 |
| 13419 MockWrite writes1[] = { | 13404 MockWrite writes1[] = { |
| 13420 CreateMockWrite(connect, 0), CreateMockWrite(wrapped_req1, 2), | 13405 CreateMockWrite(connect, 0), CreateMockWrite(wrapped_req1, 2), |
| 13421 CreateMockWrite(req2, 6), | 13406 CreateMockWrite(req2, 6), |
| 13422 }; | 13407 }; |
| 13423 | 13408 |
| 13424 SpdySerializedFrame conn_resp( | 13409 SpdySerializedFrame conn_resp( |
| 13425 spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 13410 spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 13426 SpdySerializedFrame resp1( | 13411 SpdySerializedFrame resp1( |
| 13427 spdy_util_wrapped.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 13412 spdy_util_wrapped.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 13428 SpdySerializedFrame body1(spdy_util_wrapped.ConstructSpdyDataFrame(1, true)); | 13413 SpdySerializedFrame body1(spdy_util_wrapped.ConstructSpdyDataFrame(1, true)); |
| 13429 SpdySerializedFrame wrapped_resp1( | 13414 SpdySerializedFrame wrapped_resp1( |
| 13430 spdy_util_wrapped.ConstructWrappedSpdyFrame(resp1, 1)); | 13415 spdy_util_wrapped.ConstructWrappedSpdyFrame(resp1, 1)); |
| 13431 SpdySerializedFrame wrapped_body1( | 13416 SpdySerializedFrame wrapped_body1( |
| 13432 spdy_util_wrapped.ConstructWrappedSpdyFrame(body1, 1)); | 13417 spdy_util_wrapped.ConstructWrappedSpdyFrame(body1, 1)); |
| 13433 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 3)); | 13418 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetReply(NULL, 0, 3)); |
| 13434 SpdySerializedFrame body2(spdy_util_.ConstructSpdyDataFrame(3, true)); | 13419 SpdySerializedFrame body2(spdy_util_.ConstructSpdyDataFrame(3, true)); |
| 13435 MockRead reads1[] = { | 13420 MockRead reads1[] = { |
| 13436 CreateMockRead(conn_resp, 1), | 13421 CreateMockRead(conn_resp, 1), |
| 13437 MockRead(ASYNC, ERR_IO_PENDING, 3), | 13422 MockRead(ASYNC, ERR_IO_PENDING, 3), |
| 13438 CreateMockRead(wrapped_resp1, 4), | 13423 CreateMockRead(wrapped_resp1, 4), |
| 13439 CreateMockRead(wrapped_body1, 5), | 13424 CreateMockRead(wrapped_body1, 5), |
| 13440 MockRead(ASYNC, ERR_IO_PENDING, 7), | 13425 MockRead(ASYNC, ERR_IO_PENDING, 7), |
| 13441 CreateMockRead(resp2, 8), | 13426 CreateMockRead(resp2, 8), |
| 13442 CreateMockRead(body2, 9), | 13427 CreateMockRead(body2, 9), |
| 13443 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 10), | 13428 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 10), |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13518 const std::string url2 = "https://news.example.org/"; | 13503 const std::string url2 = "https://news.example.org/"; |
| 13519 const std::string ip_addr = "1.2.3.4"; | 13504 const std::string ip_addr = "1.2.3.4"; |
| 13520 | 13505 |
| 13521 // Second SpdyTestUtil instance for the second socket. | 13506 // Second SpdyTestUtil instance for the second socket. |
| 13522 SpdyTestUtil spdy_util_secure; | 13507 SpdyTestUtil spdy_util_secure; |
| 13523 | 13508 |
| 13524 // SPDY GET for HTTP URL (through SPDY proxy) | 13509 // SPDY GET for HTTP URL (through SPDY proxy) |
| 13525 SpdyHeaderBlock headers( | 13510 SpdyHeaderBlock headers( |
| 13526 spdy_util_.ConstructGetHeaderBlockForProxy("http://www.example.org/")); | 13511 spdy_util_.ConstructGetHeaderBlockForProxy("http://www.example.org/")); |
| 13527 SpdySerializedFrame req1( | 13512 SpdySerializedFrame req1( |
| 13528 spdy_util_.ConstructSpdySyn(1, std::move(headers), LOWEST, true)); | 13513 spdy_util_.ConstructSpdyHeaders(1, std::move(headers), LOWEST, true)); |
| 13529 | 13514 |
| 13530 MockWrite writes1[] = { | 13515 MockWrite writes1[] = { |
| 13531 CreateMockWrite(req1, 0), | 13516 CreateMockWrite(req1, 0), |
| 13532 }; | 13517 }; |
| 13533 | 13518 |
| 13534 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 13519 SpdySerializedFrame resp1(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 13535 SpdySerializedFrame body1(spdy_util_.ConstructSpdyDataFrame(1, true)); | 13520 SpdySerializedFrame body1(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 13536 MockRead reads1[] = { | 13521 MockRead reads1[] = { |
| 13537 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(resp1, 2), | 13522 MockRead(ASYNC, ERR_IO_PENDING, 1), CreateMockRead(resp1, 2), |
| 13538 CreateMockRead(body1, 3), MockRead(ASYNC, OK, 4), // EOF | 13523 CreateMockRead(body1, 3), MockRead(ASYNC, OK, 4), // EOF |
| 13539 }; | 13524 }; |
| 13540 | 13525 |
| 13541 SequencedSocketData data1(reads1, arraysize(reads1), writes1, | 13526 SequencedSocketData data1(reads1, arraysize(reads1), writes1, |
| 13542 arraysize(writes1)); | 13527 arraysize(writes1)); |
| 13543 IPAddress ip; | 13528 IPAddress ip; |
| 13544 ASSERT_TRUE(ip.AssignFromIPLiteral(ip_addr)); | 13529 ASSERT_TRUE(ip.AssignFromIPLiteral(ip_addr)); |
| 13545 IPEndPoint peer_addr = IPEndPoint(ip, 443); | 13530 IPEndPoint peer_addr = IPEndPoint(ip, 443); |
| 13546 MockConnect connect_data1(ASYNC, OK, peer_addr); | 13531 MockConnect connect_data1(ASYNC, OK, peer_addr); |
| 13547 data1.set_connect_data(connect_data1); | 13532 data1.set_connect_data(connect_data1); |
| 13548 | 13533 |
| 13549 // SPDY GET for HTTPS URL (direct) | 13534 // SPDY GET for HTTPS URL (direct) |
| 13550 SpdySerializedFrame req2( | 13535 SpdySerializedFrame req2( |
| 13551 spdy_util_secure.ConstructSpdyGet(url2.c_str(), 1, MEDIUM)); | 13536 spdy_util_secure.ConstructSpdyGet(url2.c_str(), 1, MEDIUM)); |
| 13552 | 13537 |
| 13553 MockWrite writes2[] = { | 13538 MockWrite writes2[] = { |
| 13554 CreateMockWrite(req2, 0), | 13539 CreateMockWrite(req2, 0), |
| 13555 }; | 13540 }; |
| 13556 | 13541 |
| 13557 SpdySerializedFrame resp2( | 13542 SpdySerializedFrame resp2(spdy_util_secure.ConstructSpdyGetReply(NULL, 0, 1)); |
| 13558 spdy_util_secure.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 13559 SpdySerializedFrame body2(spdy_util_secure.ConstructSpdyDataFrame(1, true)); | 13543 SpdySerializedFrame body2(spdy_util_secure.ConstructSpdyDataFrame(1, true)); |
| 13560 MockRead reads2[] = {CreateMockRead(resp2, 1), CreateMockRead(body2, 2), | 13544 MockRead reads2[] = {CreateMockRead(resp2, 1), CreateMockRead(body2, 2), |
| 13561 MockRead(ASYNC, OK, 3)}; | 13545 MockRead(ASYNC, OK, 3)}; |
| 13562 | 13546 |
| 13563 SequencedSocketData data2(reads2, arraysize(reads2), writes2, | 13547 SequencedSocketData data2(reads2, arraysize(reads2), writes2, |
| 13564 arraysize(writes2)); | 13548 arraysize(writes2)); |
| 13565 MockConnect connect_data2(ASYNC, OK); | 13549 MockConnect connect_data2(ASYNC, OK); |
| 13566 data2.set_connect_data(connect_data2); | 13550 data2.set_connect_data(connect_data2); |
| 13567 | 13551 |
| 13568 // Set up a proxy config that sends HTTP requests to a proxy, and | 13552 // Set up a proxy config that sends HTTP requests to a proxy, and |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13640 }; | 13624 }; |
| 13641 | 13625 |
| 13642 SequencedSocketData data1(reads1, arraysize(reads1), NULL, 0); | 13626 SequencedSocketData data1(reads1, arraysize(reads1), NULL, 0); |
| 13643 | 13627 |
| 13644 SpdySerializedFrame req2( | 13628 SpdySerializedFrame req2( |
| 13645 spdy_util_.ConstructSpdyGet(https_url.c_str(), 1, MEDIUM)); | 13629 spdy_util_.ConstructSpdyGet(https_url.c_str(), 1, MEDIUM)); |
| 13646 MockWrite writes2[] = { | 13630 MockWrite writes2[] = { |
| 13647 CreateMockWrite(req2, 0), | 13631 CreateMockWrite(req2, 0), |
| 13648 }; | 13632 }; |
| 13649 | 13633 |
| 13650 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | 13634 SpdySerializedFrame resp2(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 13651 SpdySerializedFrame body2(spdy_util_.ConstructSpdyDataFrame(1, true)); | 13635 SpdySerializedFrame body2(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 13652 MockRead reads2[] = { | 13636 MockRead reads2[] = { |
| 13653 CreateMockRead(resp2, 1), CreateMockRead(body2, 2), | 13637 CreateMockRead(resp2, 1), CreateMockRead(body2, 2), |
| 13654 MockRead(ASYNC, OK, 3) // EOF | 13638 MockRead(ASYNC, OK, 3) // EOF |
| 13655 }; | 13639 }; |
| 13656 | 13640 |
| 13657 SequencedSocketData data2(reads2, arraysize(reads2), writes2, | 13641 SequencedSocketData data2(reads2, arraysize(reads2), writes2, |
| 13658 arraysize(writes2)); | 13642 arraysize(writes2)); |
| 13659 | 13643 |
| 13660 SSLSocketDataProvider ssl1(ASYNC, OK); | 13644 SSLSocketDataProvider ssl1(ASYNC, OK); |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13712 SSLSocketDataProvider ssl2(ASYNC, OK); | 13696 SSLSocketDataProvider ssl2(ASYNC, OK); |
| 13713 ssl2.SetNextProto(kProtoHTTP2); | 13697 ssl2.SetNextProto(kProtoHTTP2); |
| 13714 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl1); | 13698 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl1); |
| 13715 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); | 13699 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl2); |
| 13716 | 13700 |
| 13717 SpdySerializedFrame host1_req( | 13701 SpdySerializedFrame host1_req( |
| 13718 spdy_util_.ConstructSpdyGet("https://www.a.com", 1, DEFAULT_PRIORITY)); | 13702 spdy_util_.ConstructSpdyGet("https://www.a.com", 1, DEFAULT_PRIORITY)); |
| 13719 MockWrite spdy1_writes[] = { | 13703 MockWrite spdy1_writes[] = { |
| 13720 CreateMockWrite(host1_req, 0), | 13704 CreateMockWrite(host1_req, 0), |
| 13721 }; | 13705 }; |
| 13722 SpdySerializedFrame host1_resp( | 13706 SpdySerializedFrame host1_resp(spdy_util_.ConstructSpdyGetReply(NULL, 0, 1)); |
| 13723 spdy_util_.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 13724 SpdySerializedFrame host1_resp_body( | 13707 SpdySerializedFrame host1_resp_body( |
| 13725 spdy_util_.ConstructSpdyDataFrame(1, true)); | 13708 spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 13726 MockRead spdy1_reads[] = { | 13709 MockRead spdy1_reads[] = { |
| 13727 CreateMockRead(host1_resp, 1), CreateMockRead(host1_resp_body, 2), | 13710 CreateMockRead(host1_resp, 1), CreateMockRead(host1_resp_body, 2), |
| 13728 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 3), | 13711 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 3), |
| 13729 }; | 13712 }; |
| 13730 | 13713 |
| 13731 // Use a separate test instance for the separate SpdySession that will be | 13714 // Use a separate test instance for the separate SpdySession that will be |
| 13732 // created. | 13715 // created. |
| 13733 SpdyTestUtil spdy_util_2; | 13716 SpdyTestUtil spdy_util_2; |
| 13734 std::unique_ptr<SequencedSocketData> spdy1_data( | 13717 std::unique_ptr<SequencedSocketData> spdy1_data( |
| 13735 new SequencedSocketData(spdy1_reads, arraysize(spdy1_reads), spdy1_writes, | 13718 new SequencedSocketData(spdy1_reads, arraysize(spdy1_reads), spdy1_writes, |
| 13736 arraysize(spdy1_writes))); | 13719 arraysize(spdy1_writes))); |
| 13737 session_deps_.socket_factory->AddSocketDataProvider(spdy1_data.get()); | 13720 session_deps_.socket_factory->AddSocketDataProvider(spdy1_data.get()); |
| 13738 | 13721 |
| 13739 SpdySerializedFrame host2_req( | 13722 SpdySerializedFrame host2_req( |
| 13740 spdy_util_2.ConstructSpdyGet("https://www.b.com", 1, DEFAULT_PRIORITY)); | 13723 spdy_util_2.ConstructSpdyGet("https://www.b.com", 1, DEFAULT_PRIORITY)); |
| 13741 MockWrite spdy2_writes[] = { | 13724 MockWrite spdy2_writes[] = { |
| 13742 CreateMockWrite(host2_req, 0), | 13725 CreateMockWrite(host2_req, 0), |
| 13743 }; | 13726 }; |
| 13744 SpdySerializedFrame host2_resp( | 13727 SpdySerializedFrame host2_resp(spdy_util_2.ConstructSpdyGetReply(NULL, 0, 1)); |
| 13745 spdy_util_2.ConstructSpdyGetSynReply(NULL, 0, 1)); | |
| 13746 SpdySerializedFrame host2_resp_body( | 13728 SpdySerializedFrame host2_resp_body( |
| 13747 spdy_util_2.ConstructSpdyDataFrame(1, true)); | 13729 spdy_util_2.ConstructSpdyDataFrame(1, true)); |
| 13748 MockRead spdy2_reads[] = { | 13730 MockRead spdy2_reads[] = { |
| 13749 CreateMockRead(host2_resp, 1), CreateMockRead(host2_resp_body, 2), | 13731 CreateMockRead(host2_resp, 1), CreateMockRead(host2_resp_body, 2), |
| 13750 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 3), | 13732 MockRead(SYNCHRONOUS, ERR_IO_PENDING, 3), |
| 13751 }; | 13733 }; |
| 13752 | 13734 |
| 13753 std::unique_ptr<SequencedSocketData> spdy2_data( | 13735 std::unique_ptr<SequencedSocketData> spdy2_data( |
| 13754 new SequencedSocketData(spdy2_reads, arraysize(spdy2_reads), spdy2_writes, | 13736 new SequencedSocketData(spdy2_reads, arraysize(spdy2_reads), spdy2_writes, |
| 13755 arraysize(spdy2_writes))); | 13737 arraysize(spdy2_writes))); |
| (...skipping 1818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15574 HttpRequestInfo request; | 15556 HttpRequestInfo request; |
| 15575 request.url = GURL(https_url); | 15557 request.url = GURL(https_url); |
| 15576 request.method = "GET"; | 15558 request.method = "GET"; |
| 15577 | 15559 |
| 15578 SSLSocketDataProvider ssl(ASYNC, OK); | 15560 SSLSocketDataProvider ssl(ASYNC, OK); |
| 15579 ssl.token_binding_negotiated = true; | 15561 ssl.token_binding_negotiated = true; |
| 15580 ssl.token_binding_key_param = TB_PARAM_ECDSAP256; | 15562 ssl.token_binding_key_param = TB_PARAM_ECDSAP256; |
| 15581 ssl.SetNextProto(kProtoHTTP2); | 15563 ssl.SetNextProto(kProtoHTTP2); |
| 15582 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); | 15564 session_deps_.socket_factory->AddSSLSocketDataProvider(&ssl); |
| 15583 | 15565 |
| 15584 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetSynReply(nullptr, 0, 1)); | 15566 SpdySerializedFrame resp(spdy_util_.ConstructSpdyGetReply(nullptr, 0, 1)); |
| 15585 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true)); | 15567 SpdySerializedFrame body(spdy_util_.ConstructSpdyDataFrame(1, true)); |
| 15586 MockRead reads[] = {CreateMockRead(resp), CreateMockRead(body), | 15568 MockRead reads[] = {CreateMockRead(resp), CreateMockRead(body), |
| 15587 MockRead(ASYNC, ERR_IO_PENDING)}; | 15569 MockRead(ASYNC, ERR_IO_PENDING)}; |
| 15588 StaticSocketDataProvider data(reads, arraysize(reads), nullptr, 0); | 15570 StaticSocketDataProvider data(reads, arraysize(reads), nullptr, 0); |
| 15589 session_deps_.socket_factory->AddSocketDataProvider(&data); | 15571 session_deps_.socket_factory->AddSocketDataProvider(&data); |
| 15590 session_deps_.channel_id_service.reset(new ChannelIDService( | 15572 session_deps_.channel_id_service.reset(new ChannelIDService( |
| 15591 new DefaultChannelIDStore(nullptr), base::ThreadTaskRunnerHandle::Get())); | 15573 new DefaultChannelIDStore(nullptr), base::ThreadTaskRunnerHandle::Get())); |
| 15592 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 15574 std::unique_ptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
| 15593 | 15575 |
| 15594 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); | 15576 HttpNetworkTransaction trans(DEFAULT_PRIORITY, session.get()); |
| 15595 TestCompletionCallback callback; | 15577 TestCompletionCallback callback; |
| 15596 EXPECT_EQ(ERR_IO_PENDING, | 15578 EXPECT_EQ(ERR_IO_PENDING, |
| 15597 trans.Start(&request, callback.callback(), BoundNetLog())); | 15579 trans.Start(&request, callback.callback(), BoundNetLog())); |
| 15598 base::RunLoop().RunUntilIdle(); | 15580 base::RunLoop().RunUntilIdle(); |
| 15599 | 15581 |
| 15600 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); | 15582 EXPECT_TRUE(trans.GetResponseInfo()->was_fetched_via_spdy); |
| 15601 HttpRequestHeaders headers; | 15583 HttpRequestHeaders headers; |
| 15602 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); | 15584 ASSERT_TRUE(trans.GetFullRequestHeaders(&headers)); |
| 15603 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); | 15585 EXPECT_TRUE(headers.HasHeader(HttpRequestHeaders::kTokenBinding)); |
| 15604 } | 15586 } |
| 15605 #endif // !defined(OS_IOS) | 15587 #endif // !defined(OS_IOS) |
| 15606 | 15588 |
| 15607 } // namespace net | 15589 } // namespace net |
| OLD | NEW |