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

Side by Side Diff: net/http/http_server_properties_impl.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: Fix comments in Patch set 4 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 (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_server_properties_impl.h" 5 #include "net/http/http_server_properties_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 15 matching lines...) Expand all
26 const uint64_t kBrokenAlternativeProtocolDelaySecs = 300; 26 const uint64_t kBrokenAlternativeProtocolDelaySecs = 300;
27 27
28 } // namespace 28 } // namespace
29 29
30 HttpServerPropertiesImpl::HttpServerPropertiesImpl() 30 HttpServerPropertiesImpl::HttpServerPropertiesImpl()
31 : spdy_servers_map_(SpdyServerHostPortMap::NO_AUTO_EVICT), 31 : spdy_servers_map_(SpdyServerHostPortMap::NO_AUTO_EVICT),
32 alternative_service_map_(AlternativeServiceMap::NO_AUTO_EVICT), 32 alternative_service_map_(AlternativeServiceMap::NO_AUTO_EVICT),
33 spdy_settings_map_(SpdySettingsMap::NO_AUTO_EVICT), 33 spdy_settings_map_(SpdySettingsMap::NO_AUTO_EVICT),
34 server_network_stats_map_(ServerNetworkStatsMap::NO_AUTO_EVICT), 34 server_network_stats_map_(ServerNetworkStatsMap::NO_AUTO_EVICT),
35 alternative_service_probability_threshold_(1.0), 35 alternative_service_probability_threshold_(1.0),
36 quic_server_info_map_(kMaxQuicServersToPersist), 36 quic_server_info_map_(QuicServerInfoMap::NO_AUTO_EVICT),
37 max_server_configs_stored_in_properties_(kMaxQuicServersToPersist),
37 weak_ptr_factory_(this) { 38 weak_ptr_factory_(this) {
38 canonical_suffixes_.push_back(".c.youtube.com"); 39 canonical_suffixes_.push_back(".c.youtube.com");
39 canonical_suffixes_.push_back(".googlevideo.com"); 40 canonical_suffixes_.push_back(".googlevideo.com");
40 canonical_suffixes_.push_back(".googleusercontent.com"); 41 canonical_suffixes_.push_back(".googleusercontent.com");
41 } 42 }
42 43
43 HttpServerPropertiesImpl::~HttpServerPropertiesImpl() { 44 HttpServerPropertiesImpl::~HttpServerPropertiesImpl() {
44 } 45 }
45 46
46 void HttpServerPropertiesImpl::InitializeSpdyServers( 47 void HttpServerPropertiesImpl::InitializeSpdyServers(
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
177 if (server_network_stats_map_.Get(it->first) == 178 if (server_network_stats_map_.Get(it->first) ==
178 server_network_stats_map_.end()) { 179 server_network_stats_map_.end()) {
179 server_network_stats_map_.Put(it->first, it->second); 180 server_network_stats_map_.Put(it->first, it->second);
180 } 181 }
181 } 182 }
182 } 183 }
183 184
184 void HttpServerPropertiesImpl::InitializeQuicServerInfoMap( 185 void HttpServerPropertiesImpl::InitializeQuicServerInfoMap(
185 QuicServerInfoMap* quic_server_info_map) { 186 QuicServerInfoMap* quic_server_info_map) {
186 // Add the entries from persisted data. 187 // Add the entries from persisted data.
187 QuicServerInfoMap temp_map(kMaxQuicServersToPersist); 188 QuicServerInfoMap temp_map(QuicServerInfoMap::NO_AUTO_EVICT);
188 for (QuicServerInfoMap::reverse_iterator it = quic_server_info_map->rbegin(); 189 for (QuicServerInfoMap::reverse_iterator it = quic_server_info_map->rbegin();
189 it != quic_server_info_map->rend(); ++it) { 190 it != quic_server_info_map->rend(); ++it) {
190 temp_map.Put(it->first, it->second); 191 temp_map.Put(it->first, it->second);
191 } 192 }
192 193
193 quic_server_info_map_.Swap(temp_map); 194 quic_server_info_map_.Swap(temp_map);
194 195
195 // Add the entries from the memory cache. 196 // Add the entries from the memory cache.
196 for (QuicServerInfoMap::reverse_iterator it = temp_map.rbegin(); 197 for (QuicServerInfoMap::reverse_iterator it = temp_map.rbegin();
197 it != temp_map.rend(); ++it) { 198 it != temp_map.rend(); ++it) {
(...skipping 471 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 if (it == quic_server_info_map_.end()) 670 if (it == quic_server_info_map_.end())
670 return nullptr; 671 return nullptr;
671 return &it->second; 672 return &it->second;
672 } 673 }
673 674
674 const QuicServerInfoMap& HttpServerPropertiesImpl::quic_server_info_map() 675 const QuicServerInfoMap& HttpServerPropertiesImpl::quic_server_info_map()
675 const { 676 const {
676 return quic_server_info_map_; 677 return quic_server_info_map_;
677 } 678 }
678 679
680 size_t HttpServerPropertiesImpl::max_server_configs_stored_in_properties()
681 const {
682 return max_server_configs_stored_in_properties_;
683 }
684
685 void HttpServerPropertiesImpl::SetMaxServerConfigsStoredInProperties(
686 size_t max_server_configs_stored_in_properties) {
687 max_server_configs_stored_in_properties_ =
688 max_server_configs_stored_in_properties;
689
690 // MRUCache doesn't allow the size of the cache to be changed. Thus create a
691 // new map with the new size and add current elements and swap the new map.
692 quic_server_info_map_.ShrinkToSize(max_server_configs_stored_in_properties_);
693 QuicServerInfoMap temp_map(max_server_configs_stored_in_properties_);
694 for (QuicServerInfoMap::reverse_iterator it = quic_server_info_map_.rbegin();
695 it != quic_server_info_map_.rend(); ++it) {
696 temp_map.Put(it->first, it->second);
697 }
698
699 quic_server_info_map_.Swap(temp_map);
700 }
701
679 void HttpServerPropertiesImpl::SetAlternativeServiceProbabilityThreshold( 702 void HttpServerPropertiesImpl::SetAlternativeServiceProbabilityThreshold(
680 double threshold) { 703 double threshold) {
681 alternative_service_probability_threshold_ = threshold; 704 alternative_service_probability_threshold_ = threshold;
682 } 705 }
683 706
684 AlternativeServiceMap::const_iterator 707 AlternativeServiceMap::const_iterator
685 HttpServerPropertiesImpl::GetAlternateProtocolIterator( 708 HttpServerPropertiesImpl::GetAlternateProtocolIterator(
686 const HostPortPair& server) { 709 const HostPortPair& server) {
687 AlternativeServiceMap::const_iterator it = 710 AlternativeServiceMap::const_iterator it =
688 alternative_service_map_.Get(server); 711 alternative_service_map_.Get(server);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 base::TimeDelta delay = when > now ? when - now : base::TimeDelta(); 819 base::TimeDelta delay = when > now ? when - now : base::TimeDelta();
797 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( 820 base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(
798 FROM_HERE, 821 FROM_HERE,
799 base::Bind( 822 base::Bind(
800 &HttpServerPropertiesImpl::ExpireBrokenAlternateProtocolMappings, 823 &HttpServerPropertiesImpl::ExpireBrokenAlternateProtocolMappings,
801 weak_ptr_factory_.GetWeakPtr()), 824 weak_ptr_factory_.GetWeakPtr()),
802 delay); 825 delay);
803 } 826 }
804 827
805 } // namespace net 828 } // namespace net
OLDNEW
« no previous file with comments | « net/http/http_server_properties_impl.h ('k') | net/http/http_server_properties_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698