OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
(...skipping 2779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2790 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 2790 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
2791 "https://proxy:70")); | 2791 "https://proxy:70")); |
2792 CapturingBoundNetLog log; | 2792 CapturingBoundNetLog log; |
2793 session_deps_.net_log = log.bound().net_log(); | 2793 session_deps_.net_log = log.bound().net_log(); |
2794 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2794 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
2795 | 2795 |
2796 scoped_ptr<HttpTransaction> trans( | 2796 scoped_ptr<HttpTransaction> trans( |
2797 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 2797 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
2798 | 2798 |
2799 // CONNECT to www.google.com:443 via SPDY | 2799 // CONNECT to www.google.com:443 via SPDY |
2800 scoped_ptr<SpdyFrame> connect(ConstructSpdyConnect(NULL, 0, 1)); | 2800 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect(NULL, 0, 1)); |
2801 // fetch https://www.google.com/ via HTTP | 2801 // fetch https://www.google.com/ via HTTP |
2802 | 2802 |
2803 const char get[] = "GET / HTTP/1.1\r\n" | 2803 const char get[] = "GET / HTTP/1.1\r\n" |
2804 "Host: www.google.com\r\n" | 2804 "Host: www.google.com\r\n" |
2805 "Connection: keep-alive\r\n\r\n"; | 2805 "Connection: keep-alive\r\n\r\n"; |
2806 scoped_ptr<SpdyFrame> wrapped_get( | 2806 scoped_ptr<SpdyFrame> wrapped_get( |
2807 ConstructSpdyBodyFrame(1, get, strlen(get), false)); | 2807 ConstructSpdyBodyFrame(1, get, strlen(get), false)); |
2808 scoped_ptr<SpdyFrame> conn_resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2808 scoped_ptr<SpdyFrame> conn_resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
2809 const char resp[] = "HTTP/1.1 200 OK\r\n" | 2809 const char resp[] = "HTTP/1.1 200 OK\r\n" |
2810 "Content-Length: 10\r\n\r\n"; | 2810 "Content-Length: 10\r\n\r\n"; |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2875 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 2875 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
2876 "https://proxy:70")); | 2876 "https://proxy:70")); |
2877 CapturingBoundNetLog log; | 2877 CapturingBoundNetLog log; |
2878 session_deps_.net_log = log.bound().net_log(); | 2878 session_deps_.net_log = log.bound().net_log(); |
2879 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2879 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
2880 | 2880 |
2881 scoped_ptr<HttpTransaction> trans( | 2881 scoped_ptr<HttpTransaction> trans( |
2882 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 2882 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
2883 | 2883 |
2884 // CONNECT to www.google.com:443 via SPDY | 2884 // CONNECT to www.google.com:443 via SPDY |
2885 scoped_ptr<SpdyFrame> connect(ConstructSpdyConnect(NULL, 0, 1)); | 2885 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect(NULL, 0, 1)); |
2886 // fetch https://www.google.com/ via SPDY | 2886 // fetch https://www.google.com/ via SPDY |
2887 const char* const kMyUrl = "https://www.google.com/"; | 2887 const char* const kMyUrl = "https://www.google.com/"; |
2888 scoped_ptr<SpdyFrame> get( | 2888 scoped_ptr<SpdyFrame> get( |
2889 spdy_util_.ConstructSpdyGet(kMyUrl, false, 1, LOWEST)); | 2889 spdy_util_.ConstructSpdyGet(kMyUrl, false, 1, LOWEST)); |
2890 scoped_ptr<SpdyFrame> wrapped_get(ConstructWrappedSpdyFrame(get, 1)); | 2890 scoped_ptr<SpdyFrame> wrapped_get(ConstructWrappedSpdyFrame(get, 1)); |
2891 scoped_ptr<SpdyFrame> conn_resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2891 scoped_ptr<SpdyFrame> conn_resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
2892 scoped_ptr<SpdyFrame> get_resp(ConstructSpdyGetSynReply(NULL, 0, 1)); | 2892 scoped_ptr<SpdyFrame> get_resp(ConstructSpdyGetSynReply(NULL, 0, 1)); |
2893 scoped_ptr<SpdyFrame> wrapped_get_resp( | 2893 scoped_ptr<SpdyFrame> wrapped_get_resp( |
2894 ConstructWrappedSpdyFrame(get_resp, 1)); | 2894 ConstructWrappedSpdyFrame(get_resp, 1)); |
2895 scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); | 2895 scoped_ptr<SpdyFrame> body(ConstructSpdyBodyFrame(1, true)); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2959 session_deps_.proxy_service.reset(ProxyService::CreateFixed( | 2959 session_deps_.proxy_service.reset(ProxyService::CreateFixed( |
2960 "https://proxy:70")); | 2960 "https://proxy:70")); |
2961 CapturingBoundNetLog log; | 2961 CapturingBoundNetLog log; |
2962 session_deps_.net_log = log.bound().net_log(); | 2962 session_deps_.net_log = log.bound().net_log(); |
2963 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 2963 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
2964 | 2964 |
2965 scoped_ptr<HttpTransaction> trans( | 2965 scoped_ptr<HttpTransaction> trans( |
2966 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); | 2966 new HttpNetworkTransaction(DEFAULT_PRIORITY, session)); |
2967 | 2967 |
2968 // CONNECT to www.google.com:443 via SPDY | 2968 // CONNECT to www.google.com:443 via SPDY |
2969 scoped_ptr<SpdyFrame> connect(ConstructSpdyConnect(NULL, 0, 1)); | 2969 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect(NULL, 0, 1)); |
2970 scoped_ptr<SpdyFrame> get( | 2970 scoped_ptr<SpdyFrame> get( |
2971 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 2971 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
2972 | 2972 |
2973 MockWrite spdy_writes[] = { | 2973 MockWrite spdy_writes[] = { |
2974 CreateMockWrite(*connect, 1), | 2974 CreateMockWrite(*connect, 1), |
2975 CreateMockWrite(*get, 3), | 2975 CreateMockWrite(*get, 3), |
2976 }; | 2976 }; |
2977 | 2977 |
2978 scoped_ptr<SpdyFrame> resp(ConstructSpdySynReplyError(1)); | 2978 scoped_ptr<SpdyFrame> resp(ConstructSpdySynReplyError(1)); |
2979 scoped_ptr<SpdyFrame> data(ConstructSpdyBodyFrame(1, true)); | 2979 scoped_ptr<SpdyFrame> data(ConstructSpdyBodyFrame(1, true)); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3021 request1.method = "GET"; | 3021 request1.method = "GET"; |
3022 request1.url = GURL("https://www.google.com/"); | 3022 request1.url = GURL("https://www.google.com/"); |
3023 request1.load_flags = 0; | 3023 request1.load_flags = 0; |
3024 | 3024 |
3025 HttpRequestInfo request2; | 3025 HttpRequestInfo request2; |
3026 request2.method = "GET"; | 3026 request2.method = "GET"; |
3027 request2.url = GURL("https://news.google.com/"); | 3027 request2.url = GURL("https://news.google.com/"); |
3028 request2.load_flags = 0; | 3028 request2.load_flags = 0; |
3029 | 3029 |
3030 // CONNECT to www.google.com:443 via SPDY. | 3030 // CONNECT to www.google.com:443 via SPDY. |
3031 scoped_ptr<SpdyFrame> connect1(ConstructSpdyConnect(NULL, 0, 1)); | 3031 scoped_ptr<SpdyFrame> connect1(spdy_util_.ConstructSpdyConnect(NULL, 0, 1)); |
3032 scoped_ptr<SpdyFrame> conn_resp1(ConstructSpdyGetSynReply(NULL, 0, 1)); | 3032 scoped_ptr<SpdyFrame> conn_resp1(ConstructSpdyGetSynReply(NULL, 0, 1)); |
3033 | 3033 |
3034 // Fetch https://www.google.com/ via HTTP. | 3034 // Fetch https://www.google.com/ via HTTP. |
3035 const char get1[] = "GET / HTTP/1.1\r\n" | 3035 const char get1[] = "GET / HTTP/1.1\r\n" |
3036 "Host: www.google.com\r\n" | 3036 "Host: www.google.com\r\n" |
3037 "Connection: keep-alive\r\n\r\n"; | 3037 "Connection: keep-alive\r\n\r\n"; |
3038 scoped_ptr<SpdyFrame> wrapped_get1( | 3038 scoped_ptr<SpdyFrame> wrapped_get1( |
3039 ConstructSpdyBodyFrame(1, get1, strlen(get1), false)); | 3039 ConstructSpdyBodyFrame(1, get1, strlen(get1), false)); |
3040 const char resp1[] = "HTTP/1.1 200 OK\r\n" | 3040 const char resp1[] = "HTTP/1.1 200 OK\r\n" |
3041 "Content-Length: 1\r\n\r\n"; | 3041 "Content-Length: 1\r\n\r\n"; |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3176 request1.method = "GET"; | 3176 request1.method = "GET"; |
3177 request1.url = GURL("https://www.google.com/"); | 3177 request1.url = GURL("https://www.google.com/"); |
3178 request1.load_flags = 0; | 3178 request1.load_flags = 0; |
3179 | 3179 |
3180 HttpRequestInfo request2; | 3180 HttpRequestInfo request2; |
3181 request2.method = "GET"; | 3181 request2.method = "GET"; |
3182 request2.url = GURL("https://www.google.com/2"); | 3182 request2.url = GURL("https://www.google.com/2"); |
3183 request2.load_flags = 0; | 3183 request2.load_flags = 0; |
3184 | 3184 |
3185 // CONNECT to www.google.com:443 via SPDY. | 3185 // CONNECT to www.google.com:443 via SPDY. |
3186 scoped_ptr<SpdyFrame> connect1(ConstructSpdyConnect(NULL, 0, 1)); | 3186 scoped_ptr<SpdyFrame> connect1(spdy_util_.ConstructSpdyConnect(NULL, 0, 1)); |
3187 scoped_ptr<SpdyFrame> conn_resp1(ConstructSpdyGetSynReply(NULL, 0, 1)); | 3187 scoped_ptr<SpdyFrame> conn_resp1(ConstructSpdyGetSynReply(NULL, 0, 1)); |
3188 | 3188 |
3189 // Fetch https://www.google.com/ via HTTP. | 3189 // Fetch https://www.google.com/ via HTTP. |
3190 const char get1[] = "GET / HTTP/1.1\r\n" | 3190 const char get1[] = "GET / HTTP/1.1\r\n" |
3191 "Host: www.google.com\r\n" | 3191 "Host: www.google.com\r\n" |
3192 "Connection: keep-alive\r\n\r\n"; | 3192 "Connection: keep-alive\r\n\r\n"; |
3193 scoped_ptr<SpdyFrame> wrapped_get1( | 3193 scoped_ptr<SpdyFrame> wrapped_get1( |
3194 ConstructSpdyBodyFrame(1, get1, strlen(get1), false)); | 3194 ConstructSpdyBodyFrame(1, get1, strlen(get1), false)); |
3195 const char resp1[] = "HTTP/1.1 200 OK\r\n" | 3195 const char resp1[] = "HTTP/1.1 200 OK\r\n" |
3196 "Content-Length: 1\r\n\r\n"; | 3196 "Content-Length: 1\r\n\r\n"; |
(...skipping 2466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5663 // Test an HTTPS (SPDY) Proxy's ability to redirect a CONNECT request | 5663 // Test an HTTPS (SPDY) Proxy's ability to redirect a CONNECT request |
5664 TEST_F(HttpNetworkTransactionSpdy2Test, RedirectOfHttpsConnectViaSpdyProxy) { | 5664 TEST_F(HttpNetworkTransactionSpdy2Test, RedirectOfHttpsConnectViaSpdyProxy) { |
5665 session_deps_.proxy_service.reset( | 5665 session_deps_.proxy_service.reset( |
5666 ProxyService::CreateFixed("https://proxy:70")); | 5666 ProxyService::CreateFixed("https://proxy:70")); |
5667 | 5667 |
5668 HttpRequestInfo request; | 5668 HttpRequestInfo request; |
5669 request.method = "GET"; | 5669 request.method = "GET"; |
5670 request.url = GURL("https://www.google.com/"); | 5670 request.url = GURL("https://www.google.com/"); |
5671 request.load_flags = 0; | 5671 request.load_flags = 0; |
5672 | 5672 |
5673 scoped_ptr<SpdyFrame> conn(ConstructSpdyConnect(NULL, 0, 1)); | 5673 scoped_ptr<SpdyFrame> conn(spdy_util_.ConstructSpdyConnect(NULL, 0, 1)); |
5674 scoped_ptr<SpdyFrame> goaway( | 5674 scoped_ptr<SpdyFrame> goaway( |
5675 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 5675 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
5676 MockWrite data_writes[] = { | 5676 MockWrite data_writes[] = { |
5677 CreateMockWrite(*conn.get(), 0, SYNCHRONOUS), | 5677 CreateMockWrite(*conn.get(), 0, SYNCHRONOUS), |
5678 }; | 5678 }; |
5679 | 5679 |
5680 static const char* const kExtraHeaders[] = { | 5680 static const char* const kExtraHeaders[] = { |
5681 "location", | 5681 "location", |
5682 "http://login.example.com/", | 5682 "http://login.example.com/", |
5683 }; | 5683 }; |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5770 TEST_F(HttpNetworkTransactionSpdy2Test, | 5770 TEST_F(HttpNetworkTransactionSpdy2Test, |
5771 ErrorResponseToHttpsConnectViaSpdyProxy) { | 5771 ErrorResponseToHttpsConnectViaSpdyProxy) { |
5772 session_deps_.proxy_service.reset( | 5772 session_deps_.proxy_service.reset( |
5773 ProxyService::CreateFixed("https://proxy:70")); | 5773 ProxyService::CreateFixed("https://proxy:70")); |
5774 | 5774 |
5775 HttpRequestInfo request; | 5775 HttpRequestInfo request; |
5776 request.method = "GET"; | 5776 request.method = "GET"; |
5777 request.url = GURL("https://www.google.com/"); | 5777 request.url = GURL("https://www.google.com/"); |
5778 request.load_flags = 0; | 5778 request.load_flags = 0; |
5779 | 5779 |
5780 scoped_ptr<SpdyFrame> conn(ConstructSpdyConnect(NULL, 0, 1)); | 5780 scoped_ptr<SpdyFrame> conn(spdy_util_.ConstructSpdyConnect(NULL, 0, 1)); |
5781 scoped_ptr<SpdyFrame> rst( | 5781 scoped_ptr<SpdyFrame> rst( |
5782 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 5782 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
5783 MockWrite data_writes[] = { | 5783 MockWrite data_writes[] = { |
5784 CreateMockWrite(*conn.get(), 0, SYNCHRONOUS), | 5784 CreateMockWrite(*conn.get(), 0, SYNCHRONOUS), |
5785 CreateMockWrite(*rst.get(), 3, SYNCHRONOUS), | 5785 CreateMockWrite(*rst.get(), 3, SYNCHRONOUS), |
5786 }; | 5786 }; |
5787 | 5787 |
5788 static const char* const kExtraHeaders[] = { | 5788 static const char* const kExtraHeaders[] = { |
5789 "location", | 5789 "location", |
5790 "http://login.example.com/", | 5790 "http://login.example.com/", |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5835 request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA; | 5835 request.load_flags = net::LOAD_DO_NOT_SEND_AUTH_DATA; |
5836 | 5836 |
5837 // Configure against https proxy server "myproxy:70". | 5837 // Configure against https proxy server "myproxy:70". |
5838 session_deps_.proxy_service.reset( | 5838 session_deps_.proxy_service.reset( |
5839 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70")); | 5839 ProxyService::CreateFixedFromPacResult("HTTPS myproxy:70")); |
5840 CapturingBoundNetLog log; | 5840 CapturingBoundNetLog log; |
5841 session_deps_.net_log = log.bound().net_log(); | 5841 session_deps_.net_log = log.bound().net_log(); |
5842 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); | 5842 scoped_refptr<HttpNetworkSession> session(CreateSession(&session_deps_)); |
5843 | 5843 |
5844 // Since we have proxy, should try to establish tunnel. | 5844 // Since we have proxy, should try to establish tunnel. |
5845 scoped_ptr<SpdyFrame> req(ConstructSpdyConnect(NULL, 0, 1)); | 5845 scoped_ptr<SpdyFrame> req(spdy_util_.ConstructSpdyConnect(NULL, 0, 1)); |
5846 scoped_ptr<SpdyFrame> rst( | 5846 scoped_ptr<SpdyFrame> rst( |
5847 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); | 5847 spdy_util_.ConstructSpdyRstStream(1, RST_STREAM_CANCEL)); |
5848 | 5848 |
5849 // After calling trans->RestartWithAuth(), this is the request we should | 5849 // After calling trans->RestartWithAuth(), this is the request we should |
5850 // be issuing -- the final header line contains the credentials. | 5850 // be issuing -- the final header line contains the credentials. |
5851 const char* const kAuthCredentials[] = { | 5851 const char* const kAuthCredentials[] = { |
5852 "proxy-authorization", "Basic Zm9vOmJhcg==", | 5852 "proxy-authorization", "Basic Zm9vOmJhcg==", |
5853 }; | 5853 }; |
5854 scoped_ptr<SpdyFrame> connect2( | 5854 scoped_ptr<SpdyFrame> connect2(spdy_util_.ConstructSpdyConnect( |
5855 ConstructSpdyConnect(kAuthCredentials, arraysize(kAuthCredentials)/2, 3)); | 5855 kAuthCredentials, arraysize(kAuthCredentials) / 2, 3)); |
5856 // fetch https://www.google.com/ via HTTP | 5856 // fetch https://www.google.com/ via HTTP |
5857 const char get[] = "GET / HTTP/1.1\r\n" | 5857 const char get[] = "GET / HTTP/1.1\r\n" |
5858 "Host: www.google.com\r\n" | 5858 "Host: www.google.com\r\n" |
5859 "Connection: keep-alive\r\n\r\n"; | 5859 "Connection: keep-alive\r\n\r\n"; |
5860 scoped_ptr<SpdyFrame> wrapped_get( | 5860 scoped_ptr<SpdyFrame> wrapped_get( |
5861 ConstructSpdyBodyFrame(3, get, strlen(get), false)); | 5861 ConstructSpdyBodyFrame(3, get, strlen(get), false)); |
5862 | 5862 |
5863 MockWrite spdy_writes[] = { | 5863 MockWrite spdy_writes[] = { |
5864 CreateMockWrite(*req, 1, ASYNC), | 5864 CreateMockWrite(*req, 1, ASYNC), |
5865 CreateMockWrite(*rst, 4, ASYNC), | 5865 CreateMockWrite(*rst, 4, ASYNC), |
(...skipping 4963 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10829 | 10829 |
10830 EXPECT_EQ(OK, callback2.WaitForResult()); | 10830 EXPECT_EQ(OK, callback2.WaitForResult()); |
10831 EXPECT_FALSE(trans2.GetResponseInfo()->was_fetched_via_spdy); | 10831 EXPECT_FALSE(trans2.GetResponseInfo()->was_fetched_via_spdy); |
10832 } | 10832 } |
10833 | 10833 |
10834 TEST_F(HttpNetworkTransactionSpdy2Test, DoNotUseSpdySessionForHttpOverTunnel) { | 10834 TEST_F(HttpNetworkTransactionSpdy2Test, DoNotUseSpdySessionForHttpOverTunnel) { |
10835 const std::string https_url = "https://www.google.com/"; | 10835 const std::string https_url = "https://www.google.com/"; |
10836 const std::string http_url = "http://www.google.com:443/"; | 10836 const std::string http_url = "http://www.google.com:443/"; |
10837 | 10837 |
10838 // SPDY GET for HTTPS URL (through CONNECT tunnel) | 10838 // SPDY GET for HTTPS URL (through CONNECT tunnel) |
10839 scoped_ptr<SpdyFrame> connect(ConstructSpdyConnect(NULL, 0, 1)); | 10839 scoped_ptr<SpdyFrame> connect(spdy_util_.ConstructSpdyConnect(NULL, 0, 1)); |
10840 scoped_ptr<SpdyFrame> req1( | 10840 scoped_ptr<SpdyFrame> req1( |
10841 spdy_util_.ConstructSpdyGet(https_url.c_str(), false, 1, LOWEST)); | 10841 spdy_util_.ConstructSpdyGet(https_url.c_str(), false, 1, LOWEST)); |
10842 | 10842 |
10843 // SPDY GET for HTTP URL (through the proxy, but not the tunnel) | 10843 // SPDY GET for HTTP URL (through the proxy, but not the tunnel) |
10844 scoped_ptr<SpdyFrame> wrapped_req1(ConstructWrappedSpdyFrame(req1, 1)); | 10844 scoped_ptr<SpdyFrame> wrapped_req1(ConstructWrappedSpdyFrame(req1, 1)); |
10845 const char* const headers[] = { | 10845 const char* const headers[] = { |
10846 "method", "GET", | 10846 "method", "GET", |
10847 "url", http_url.c_str(), | 10847 "url", http_url.c_str(), |
10848 "host", "www.google.com:443", | 10848 "host", "www.google.com:443", |
10849 "scheme", "http", | 10849 "scheme", "http", |
(...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11378 EXPECT_EQ("hello!", response_data); | 11378 EXPECT_EQ("hello!", response_data); |
11379 EXPECT_FALSE( | 11379 EXPECT_FALSE( |
11380 session->spdy_session_pool()->HasSession(spdy_session_key_a)); | 11380 session->spdy_session_pool()->HasSession(spdy_session_key_a)); |
11381 EXPECT_FALSE( | 11381 EXPECT_FALSE( |
11382 session->spdy_session_pool()->HasSession(spdy_session_key_b)); | 11382 session->spdy_session_pool()->HasSession(spdy_session_key_b)); |
11383 | 11383 |
11384 HttpStreamFactory::SetNextProtos(std::vector<std::string>()); | 11384 HttpStreamFactory::SetNextProtos(std::vector<std::string>()); |
11385 } | 11385 } |
11386 | 11386 |
11387 } // namespace net | 11387 } // namespace net |
OLD | NEW |