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

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

Issue 14749006: [WIP] Pretend-to-preconnect for {mouse,touch}-event triggers. Base URL: https://chromium.googlesource.com/chromium/src.git@preconnect-pretend
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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_stream_factory_impl_job.h" 5 #include "net/http/http_stream_factory_impl_job.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 748 matching lines...) Expand 10 before | Expand all | Expand 10 after
759 // Disable revocation checking for HTTPS proxies since the revocation 759 // Disable revocation checking for HTTPS proxies since the revocation
760 // requests are probably going to need to go through the proxy too. 760 // requests are probably going to need to go through the proxy too.
761 proxy_ssl_config_.rev_checking_enabled = false; 761 proxy_ssl_config_.rev_checking_enabled = false;
762 } 762 }
763 if (using_ssl_) { 763 if (using_ssl_) {
764 InitSSLConfig(origin_, &server_ssl_config_, 764 InitSSLConfig(origin_, &server_ssl_config_,
765 false /* not a proxy server */); 765 false /* not a proxy server */);
766 } 766 }
767 767
768 if (IsPreconnecting()) { 768 if (IsPreconnecting()) {
769 return PreconnectSocketsForHttpRequest( 769 HttpRequestInfo::RequestMotivation motivation = request_info_.motivation;
770 origin_url_, 770 if(motivation == HttpRequestInfo::MOUSE_OVER_MOTIVATED ||
771 request_info_.extra_headers, 771 motivation == HttpRequestInfo::MOUSE_DOWN_MOTIVATED ||
772 request_info_.load_flags, 772 motivation == HttpRequestInfo::TAP_UNCONFIRMED_MOTIVATED ||
773 priority_, 773 motivation == HttpRequestInfo::TAP_DOWN_MOTIVATED) {
mmenke 2013/05/01 16:55:08 Different behaviors based on motivation really doe
774 session_, 774 int would_have_been_connected =
775 proxy_info_, 775 PretendToPreconnectSocketsForHttpRequest(
776 ShouldForceSpdySSL(), 776 origin_url_,
777 want_spdy_over_npn, 777 request_info_.extra_headers,
778 server_ssl_config_, 778 request_info_.load_flags,
779 proxy_ssl_config_, 779 priority_,
780 net_log_, 780 session_,
781 num_streams_); 781 proxy_info_,
782 ShouldForceSpdySSL(),
783 want_spdy_over_npn,
784 server_ssl_config_,
785 proxy_ssl_config_,
786 net_log_,
787 num_streams_);
788 int key = motivation * 2 + (would_have_been_connected > 0 ? 1 : 0);
789 UMA_HISTOGRAM_ENUMERATION("Net.PretendToPreconnect",
790 key, HttpRequestInfo::MAX_MOTIVATED * 2);
791 return OK;
792 } else
793 return PreconnectSocketsForHttpRequest(
794 origin_url_,
795 request_info_.extra_headers,
796 request_info_.load_flags,
797 priority_,
798 session_,
799 proxy_info_,
800 ShouldForceSpdySSL(),
801 want_spdy_over_npn,
802 server_ssl_config_,
803 proxy_ssl_config_,
804 net_log_,
805 num_streams_);
782 } else { 806 } else {
783 // If we can't use a SPDY session, don't both checking for one after 807 // If we can't use a SPDY session, don't both checking for one after
784 // the hostname is resolved. 808 // the hostname is resolved.
785 OnHostResolutionCallback resolution_callback = CanUseExistingSpdySession() ? 809 OnHostResolutionCallback resolution_callback = CanUseExistingSpdySession() ?
786 base::Bind(&Job::OnHostResolution, session_->spdy_session_pool(), 810 base::Bind(&Job::OnHostResolution, session_->spdy_session_pool(),
787 GetSpdySessionKey()) : 811 GetSpdySessionKey()) :
788 OnHostResolutionCallback(); 812 OnHostResolutionCallback();
789 return InitSocketHandleForHttpRequest( 813 return InitSocketHandleForHttpRequest(
790 origin_url_, request_info_.extra_headers, request_info_.load_flags, 814 origin_url_, request_info_.extra_headers, request_info_.load_flags,
791 priority_, session_, proxy_info_, ShouldForceSpdySSL(), 815 priority_, session_, proxy_info_, ShouldForceSpdySSL(),
(...skipping 563 matching lines...) Expand 10 before | Expand all | Expand 10 after
1355 (net::LOAD_MAIN_FRAME | net::LOAD_SUB_FRAME | net::LOAD_PREFETCH | 1379 (net::LOAD_MAIN_FRAME | net::LOAD_SUB_FRAME | net::LOAD_PREFETCH |
1356 net::LOAD_IS_DOWNLOAD)) { 1380 net::LOAD_IS_DOWNLOAD)) {
1357 // Avoid pipelining resources that may be streamed for a long time. 1381 // Avoid pipelining resources that may be streamed for a long time.
1358 return false; 1382 return false;
1359 } 1383 }
1360 return stream_factory_->http_pipelined_host_pool_.IsKeyEligibleForPipelining( 1384 return stream_factory_->http_pipelined_host_pool_.IsKeyEligibleForPipelining(
1361 *http_pipelining_key_.get()); 1385 *http_pipelining_key_.get());
1362 } 1386 }
1363 1387
1364 } // namespace net 1388 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698