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

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

Issue 1572753003: QUIC - Allow cronet apps to specify how many server configs are to be (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: reabse TOT Created 4 years, 11 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_server_properties_manager.h" 5 #include "net/http/http_server_properties_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/metrics/histogram_macros.h" 8 #include "base/metrics/histogram_macros.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); 399 DCHECK(network_task_runner_->RunsTasksOnCurrentThread());
400 return http_server_properties_impl_->GetQuicServerInfo(server_id); 400 return http_server_properties_impl_->GetQuicServerInfo(server_id);
401 } 401 }
402 402
403 const QuicServerInfoMap& HttpServerPropertiesManager::quic_server_info_map() 403 const QuicServerInfoMap& HttpServerPropertiesManager::quic_server_info_map()
404 const { 404 const {
405 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); 405 DCHECK(network_task_runner_->RunsTasksOnCurrentThread());
406 return http_server_properties_impl_->quic_server_info_map(); 406 return http_server_properties_impl_->quic_server_info_map();
407 } 407 }
408 408
409 int HttpServerPropertiesManager::max_server_configs_stored_in_properties()
410 const {
411 DCHECK(network_task_runner_->RunsTasksOnCurrentThread());
412 return http_server_properties_impl_
413 ->max_server_configs_stored_in_properties();
414 }
415
416 void HttpServerPropertiesManager::set_max_server_configs_stored_in_properties(
417 int max_server_configs_stored_in_properties) {
418 DCHECK(network_task_runner_->RunsTasksOnCurrentThread());
419 return http_server_properties_impl_
420 ->set_max_server_configs_stored_in_properties(
421 max_server_configs_stored_in_properties);
422 }
423
409 // 424 //
410 // Update the HttpServerPropertiesImpl's cache with data from preferences. 425 // Update the HttpServerPropertiesImpl's cache with data from preferences.
411 // 426 //
412 void HttpServerPropertiesManager::ScheduleUpdateCacheOnPrefThread() { 427 void HttpServerPropertiesManager::ScheduleUpdateCacheOnPrefThread() {
413 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); 428 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread());
414 // Cancel pending updates, if any. 429 // Cancel pending updates, if any.
415 pref_cache_update_timer_->Stop(); 430 pref_cache_update_timer_->Stop();
416 StartCacheUpdateTimerOnPrefThread( 431 StartCacheUpdateTimerOnPrefThread(
417 base::TimeDelta::FromMilliseconds(kUpdateCacheDelayMs)); 432 base::TimeDelta::FromMilliseconds(kUpdateCacheDelayMs));
418 } 433 }
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 505
491 // String is host/port pair of spdy server. 506 // String is host/port pair of spdy server.
492 scoped_ptr<ServerList> spdy_servers(new ServerList); 507 scoped_ptr<ServerList> spdy_servers(new ServerList);
493 scoped_ptr<SpdySettingsMap> spdy_settings_map( 508 scoped_ptr<SpdySettingsMap> spdy_settings_map(
494 new SpdySettingsMap(kMaxSpdySettingsHostsToPersist)); 509 new SpdySettingsMap(kMaxSpdySettingsHostsToPersist));
495 scoped_ptr<AlternativeServiceMap> alternative_service_map( 510 scoped_ptr<AlternativeServiceMap> alternative_service_map(
496 new AlternativeServiceMap(kMaxAlternateProtocolHostsToPersist)); 511 new AlternativeServiceMap(kMaxAlternateProtocolHostsToPersist));
497 scoped_ptr<ServerNetworkStatsMap> server_network_stats_map( 512 scoped_ptr<ServerNetworkStatsMap> server_network_stats_map(
498 new ServerNetworkStatsMap(kMaxServerNetworkStatsHostsToPersist)); 513 new ServerNetworkStatsMap(kMaxServerNetworkStatsHostsToPersist));
499 scoped_ptr<QuicServerInfoMap> quic_server_info_map( 514 scoped_ptr<QuicServerInfoMap> quic_server_info_map(
500 new QuicServerInfoMap(kMaxQuicServersToPersist)); 515 new QuicServerInfoMap(QuicServerInfoMap::NO_AUTO_EVICT));
501 516
502 if (version < 4) { 517 if (version < 4) {
503 if (!AddServersData(*servers_dict, spdy_servers.get(), 518 if (!AddServersData(*servers_dict, spdy_servers.get(),
504 spdy_settings_map.get(), alternative_service_map.get(), 519 spdy_settings_map.get(), alternative_service_map.get(),
505 server_network_stats_map.get())) { 520 server_network_stats_map.get())) {
506 detected_corrupted_prefs = true; 521 detected_corrupted_prefs = true;
507 } 522 }
508 } else { 523 } else {
509 for (base::ListValue::const_iterator it = servers_list->begin(); 524 for (base::ListValue::const_iterator it = servers_list->begin();
510 it != servers_list->end(); ++it) { 525 it != servers_list->end(); ++it) {
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 it != network_stats_map.rend() && 988 it != network_stats_map.rend() &&
974 count < kMaxServerNetworkStatsHostsToPersist; 989 count < kMaxServerNetworkStatsHostsToPersist;
975 ++it, ++count) { 990 ++it, ++count) {
976 server_network_stats_map->Put(it->first, it->second); 991 server_network_stats_map->Put(it->first, it->second);
977 } 992 }
978 993
979 QuicServerInfoMap* quic_server_info_map = nullptr; 994 QuicServerInfoMap* quic_server_info_map = nullptr;
980 const QuicServerInfoMap& main_quic_server_info_map = 995 const QuicServerInfoMap& main_quic_server_info_map =
981 http_server_properties_impl_->quic_server_info_map(); 996 http_server_properties_impl_->quic_server_info_map();
982 if (main_quic_server_info_map.size() > 0) { 997 if (main_quic_server_info_map.size() > 0) {
983 quic_server_info_map = new QuicServerInfoMap(kMaxQuicServersToPersist); 998 quic_server_info_map =
999 new QuicServerInfoMap(max_server_configs_stored_in_properties());
984 for (const std::pair<const QuicServerId, std::string>& entry : 1000 for (const std::pair<const QuicServerId, std::string>& entry :
985 main_quic_server_info_map) { 1001 main_quic_server_info_map) {
986 quic_server_info_map->Put(entry.first, entry.second); 1002 quic_server_info_map->Put(entry.first, entry.second);
987 } 1003 }
988 } 1004 }
989 1005
990 IPAddressNumber* last_quic_addr = new IPAddressNumber; 1006 IPAddressNumber* last_quic_addr = new IPAddressNumber;
991 http_server_properties_impl_->GetSupportsQuic(last_quic_addr); 1007 http_server_properties_impl_->GetSupportsQuic(last_quic_addr);
992 // Update the preferences on the pref thread. 1008 // Update the preferences on the pref thread.
993 pref_task_runner_->PostTask( 1009 pref_task_runner_->PostTask(
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
1250 quic_servers_dict); 1266 quic_servers_dict);
1251 } 1267 }
1252 1268
1253 void HttpServerPropertiesManager::OnHttpServerPropertiesChanged() { 1269 void HttpServerPropertiesManager::OnHttpServerPropertiesChanged() {
1254 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); 1270 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread());
1255 if (!setting_prefs_) 1271 if (!setting_prefs_)
1256 ScheduleUpdateCacheOnPrefThread(); 1272 ScheduleUpdateCacheOnPrefThread();
1257 } 1273 }
1258 1274
1259 } // namespace net 1275 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698