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

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

Issue 2850653002: Enable NetProxyPreconnects experiment by default (Closed)
Patch Set: xunjieli comments Created 3 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
« no previous file with comments | « net/http/http_network_session.cc ('k') | net/http/http_stream_factory_impl_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.h" 5 #include "net/http/http_stream_factory_impl.h"
6 6
7 #include <string> 7 #include <string>
8 #include <tuple> 8 #include <tuple>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 } 293 }
294 294
295 bool HttpStreamFactoryImpl::OnInitConnection(const JobController& controller, 295 bool HttpStreamFactoryImpl::OnInitConnection(const JobController& controller,
296 const ProxyInfo& proxy_info, 296 const ProxyInfo& proxy_info,
297 PrivacyMode privacy_mode) { 297 PrivacyMode privacy_mode) {
298 if (!controller.is_preconnect()) { 298 if (!controller.is_preconnect()) {
299 // Connection initialization can be skipped only for the preconnect jobs. 299 // Connection initialization can be skipped only for the preconnect jobs.
300 return false; 300 return false;
301 } 301 }
302 302
303 if (!session_->params().restrict_to_one_preconnect_for_proxies || 303 if (!ProxyServerSupportsPriorities(proxy_info))
304 !ProxyServerSupportsPriorities(proxy_info)) {
305 return false; 304 return false;
306 }
307 305
308 PreconnectingProxyServer preconnecting_proxy_server(proxy_info.proxy_server(), 306 PreconnectingProxyServer preconnecting_proxy_server(proxy_info.proxy_server(),
309 privacy_mode); 307 privacy_mode);
310 308
311 if (base::ContainsKey(preconnecting_proxy_servers_, 309 if (base::ContainsKey(preconnecting_proxy_servers_,
312 preconnecting_proxy_server)) { 310 preconnecting_proxy_server)) {
313 UMA_HISTOGRAM_EXACT_LINEAR("Net.PreconnectSkippedToProxyServers", 1, 2); 311 UMA_HISTOGRAM_EXACT_LINEAR("Net.PreconnectSkippedToProxyServers", 1, 2);
314 // Skip preconnect to the proxy server since we are already preconnecting 312 // Skip preconnect to the proxy server since we are already preconnecting
315 // (probably via some other job). 313 // (probably via some other job). See crbug.com/682041 for details.
316 return true; 314 return true;
317 } 315 }
318 316
319 // Add the proxy server to the set of preconnecting proxy servers. 317 // Add the proxy server to the set of preconnecting proxy servers.
320 // The maximum size of |preconnecting_proxy_servers_|. 318 // The maximum size of |preconnecting_proxy_servers_|.
321 static const size_t kMaxPreconnectingServerSize = 3; 319 static const size_t kMaxPreconnectingServerSize = 3;
322 if (preconnecting_proxy_servers_.size() >= kMaxPreconnectingServerSize) { 320 if (preconnecting_proxy_servers_.size() >= kMaxPreconnectingServerSize) {
323 // Erase the first entry. A better approach (at the cost of higher memory 321 // Erase the first entry. A better approach (at the cost of higher memory
324 // overhead) may be to erase the least recently used entry. 322 // overhead) may be to erase the least recently used entry.
325 preconnecting_proxy_servers_.erase(preconnecting_proxy_servers_.begin()); 323 preconnecting_proxy_servers_.erase(preconnecting_proxy_servers_.begin());
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 factory_dump->AddScalar("main_job_count", 450 factory_dump->AddScalar("main_job_count",
453 base::trace_event::MemoryAllocatorDump::kUnitsObjects, 451 base::trace_event::MemoryAllocatorDump::kUnitsObjects,
454 main_job_count); 452 main_job_count);
455 // The number of preconnect controllers. 453 // The number of preconnect controllers.
456 factory_dump->AddScalar("preconnect_count", 454 factory_dump->AddScalar("preconnect_count",
457 base::trace_event::MemoryAllocatorDump::kUnitsObjects, 455 base::trace_event::MemoryAllocatorDump::kUnitsObjects,
458 num_controllers_for_preconnect); 456 num_controllers_for_preconnect);
459 } 457 }
460 458
461 } // namespace net 459 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_network_session.cc ('k') | net/http/http_stream_factory_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698