| OLD | NEW |
| 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/single_thread_task_runner.h" | 9 #include "base/single_thread_task_runner.h" |
| 10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 http_server_properties_impl_->Clear(); | 143 http_server_properties_impl_->Clear(); |
| 144 UpdatePrefsFromCacheOnNetworkThread(completion); | 144 UpdatePrefsFromCacheOnNetworkThread(completion); |
| 145 } | 145 } |
| 146 | 146 |
| 147 bool HttpServerPropertiesManager::SupportsRequestPriority( | 147 bool HttpServerPropertiesManager::SupportsRequestPriority( |
| 148 const url::SchemeHostPort& server) { | 148 const url::SchemeHostPort& server) { |
| 149 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 149 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 150 return http_server_properties_impl_->SupportsRequestPriority(server); | 150 return http_server_properties_impl_->SupportsRequestPriority(server); |
| 151 } | 151 } |
| 152 | 152 |
| 153 bool HttpServerPropertiesManager::GetSupportsSpdy(const HostPortPair& server) { | 153 bool HttpServerPropertiesManager::GetSupportsSpdy( |
| 154 const url::SchemeHostPort& server) { |
| 154 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 155 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 155 return http_server_properties_impl_->GetSupportsSpdy(server); | 156 return http_server_properties_impl_->GetSupportsSpdy(server); |
| 156 } | 157 } |
| 157 | 158 |
| 158 void HttpServerPropertiesManager::SetSupportsSpdy(const HostPortPair& server, | 159 void HttpServerPropertiesManager::SetSupportsSpdy( |
| 159 bool support_spdy) { | 160 const url::SchemeHostPort& server, |
| 161 bool support_spdy) { |
| 160 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 162 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 161 | 163 |
| 162 bool old_support_spdy = http_server_properties_impl_->GetSupportsSpdy(server); | 164 bool old_support_spdy = http_server_properties_impl_->GetSupportsSpdy(server); |
| 163 http_server_properties_impl_->SetSupportsSpdy(server, support_spdy); | 165 http_server_properties_impl_->SetSupportsSpdy(server, support_spdy); |
| 164 bool new_support_spdy = http_server_properties_impl_->GetSupportsSpdy(server); | 166 bool new_support_spdy = http_server_properties_impl_->GetSupportsSpdy(server); |
| 165 if (old_support_spdy != new_support_spdy) | 167 if (old_support_spdy != new_support_spdy) |
| 166 ScheduleUpdatePrefsOnNetworkThread(SUPPORTS_SPDY); | 168 ScheduleUpdatePrefsOnNetworkThread(SUPPORTS_SPDY); |
| 167 } | 169 } |
| 168 | 170 |
| 169 bool HttpServerPropertiesManager::RequiresHTTP11(const HostPortPair& server) { | 171 bool HttpServerPropertiesManager::RequiresHTTP11(const HostPortPair& server) { |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 280 } | 282 } |
| 281 | 283 |
| 282 scoped_ptr<base::Value> | 284 scoped_ptr<base::Value> |
| 283 HttpServerPropertiesManager::GetAlternativeServiceInfoAsValue() | 285 HttpServerPropertiesManager::GetAlternativeServiceInfoAsValue() |
| 284 const { | 286 const { |
| 285 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 287 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 286 return http_server_properties_impl_->GetAlternativeServiceInfoAsValue(); | 288 return http_server_properties_impl_->GetAlternativeServiceInfoAsValue(); |
| 287 } | 289 } |
| 288 | 290 |
| 289 const SettingsMap& HttpServerPropertiesManager::GetSpdySettings( | 291 const SettingsMap& HttpServerPropertiesManager::GetSpdySettings( |
| 290 const HostPortPair& host_port_pair) { | 292 const url::SchemeHostPort& origin) { |
| 291 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 293 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 292 return http_server_properties_impl_->GetSpdySettings(host_port_pair); | 294 return http_server_properties_impl_->GetSpdySettings(origin); |
| 293 } | 295 } |
| 294 | 296 |
| 295 bool HttpServerPropertiesManager::SetSpdySetting( | 297 bool HttpServerPropertiesManager::SetSpdySetting( |
| 296 const HostPortPair& host_port_pair, | 298 const url::SchemeHostPort& origin, |
| 297 SpdySettingsIds id, | 299 SpdySettingsIds id, |
| 298 SpdySettingsFlags flags, | 300 SpdySettingsFlags flags, |
| 299 uint32_t value) { | 301 uint32_t value) { |
| 300 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 302 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 301 bool persist = http_server_properties_impl_->SetSpdySetting( | 303 bool persist = |
| 302 host_port_pair, id, flags, value); | 304 http_server_properties_impl_->SetSpdySetting(origin, id, flags, value); |
| 303 if (persist) | 305 if (persist) |
| 304 ScheduleUpdatePrefsOnNetworkThread(SET_SPDY_SETTING); | 306 ScheduleUpdatePrefsOnNetworkThread(SET_SPDY_SETTING); |
| 305 return persist; | 307 return persist; |
| 306 } | 308 } |
| 307 | 309 |
| 308 void HttpServerPropertiesManager::ClearSpdySettings( | 310 void HttpServerPropertiesManager::ClearSpdySettings( |
| 309 const HostPortPair& host_port_pair) { | 311 const url::SchemeHostPort& origin) { |
| 310 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 312 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 311 http_server_properties_impl_->ClearSpdySettings(host_port_pair); | 313 http_server_properties_impl_->ClearSpdySettings(origin); |
| 312 ScheduleUpdatePrefsOnNetworkThread(CLEAR_SPDY_SETTINGS); | 314 ScheduleUpdatePrefsOnNetworkThread(CLEAR_SPDY_SETTINGS); |
| 313 } | 315 } |
| 314 | 316 |
| 315 void HttpServerPropertiesManager::ClearAllSpdySettings() { | 317 void HttpServerPropertiesManager::ClearAllSpdySettings() { |
| 316 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 318 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 317 http_server_properties_impl_->ClearAllSpdySettings(); | 319 http_server_properties_impl_->ClearAllSpdySettings(); |
| 318 ScheduleUpdatePrefsOnNetworkThread(CLEAR_ALL_SPDY_SETTINGS); | 320 ScheduleUpdatePrefsOnNetworkThread(CLEAR_ALL_SPDY_SETTINGS); |
| 319 } | 321 } |
| 320 | 322 |
| 321 const SpdySettingsMap& HttpServerPropertiesManager::spdy_settings_map() | 323 const SpdySettingsMap& HttpServerPropertiesManager::spdy_settings_map() |
| (...skipping 14 matching lines...) Expand all Loading... |
| 336 IPAddress old_last_quic_addr; | 338 IPAddress old_last_quic_addr; |
| 337 http_server_properties_impl_->GetSupportsQuic(&old_last_quic_addr); | 339 http_server_properties_impl_->GetSupportsQuic(&old_last_quic_addr); |
| 338 http_server_properties_impl_->SetSupportsQuic(used_quic, address); | 340 http_server_properties_impl_->SetSupportsQuic(used_quic, address); |
| 339 IPAddress new_last_quic_addr; | 341 IPAddress new_last_quic_addr; |
| 340 http_server_properties_impl_->GetSupportsQuic(&new_last_quic_addr); | 342 http_server_properties_impl_->GetSupportsQuic(&new_last_quic_addr); |
| 341 if (old_last_quic_addr != new_last_quic_addr) | 343 if (old_last_quic_addr != new_last_quic_addr) |
| 342 ScheduleUpdatePrefsOnNetworkThread(SET_SUPPORTS_QUIC); | 344 ScheduleUpdatePrefsOnNetworkThread(SET_SUPPORTS_QUIC); |
| 343 } | 345 } |
| 344 | 346 |
| 345 void HttpServerPropertiesManager::SetServerNetworkStats( | 347 void HttpServerPropertiesManager::SetServerNetworkStats( |
| 346 const HostPortPair& host_port_pair, | 348 const url::SchemeHostPort& origin, |
| 347 ServerNetworkStats stats) { | 349 ServerNetworkStats stats) { |
| 348 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 350 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 349 ServerNetworkStats old_stats; | 351 ServerNetworkStats old_stats; |
| 350 const ServerNetworkStats* old_stats_ptr = | 352 const ServerNetworkStats* old_stats_ptr = |
| 351 http_server_properties_impl_->GetServerNetworkStats(host_port_pair); | 353 http_server_properties_impl_->GetServerNetworkStats(origin); |
| 352 if (http_server_properties_impl_->GetServerNetworkStats(host_port_pair)) | 354 if (http_server_properties_impl_->GetServerNetworkStats(origin)) |
| 353 old_stats = *old_stats_ptr; | 355 old_stats = *old_stats_ptr; |
| 354 http_server_properties_impl_->SetServerNetworkStats(host_port_pair, stats); | 356 http_server_properties_impl_->SetServerNetworkStats(origin, stats); |
| 355 ServerNetworkStats new_stats = | 357 ServerNetworkStats new_stats = |
| 356 *(http_server_properties_impl_->GetServerNetworkStats(host_port_pair)); | 358 *(http_server_properties_impl_->GetServerNetworkStats(origin)); |
| 357 if (old_stats != new_stats) | 359 if (old_stats != new_stats) |
| 358 ScheduleUpdatePrefsOnNetworkThread(SET_SERVER_NETWORK_STATS); | 360 ScheduleUpdatePrefsOnNetworkThread(SET_SERVER_NETWORK_STATS); |
| 359 } | 361 } |
| 360 | 362 |
| 361 const ServerNetworkStats* HttpServerPropertiesManager::GetServerNetworkStats( | 363 const ServerNetworkStats* HttpServerPropertiesManager::GetServerNetworkStats( |
| 362 const HostPortPair& host_port_pair) { | 364 const url::SchemeHostPort& origin) { |
| 363 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 365 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 364 return http_server_properties_impl_->GetServerNetworkStats(host_port_pair); | 366 return http_server_properties_impl_->GetServerNetworkStats(origin); |
| 365 } | 367 } |
| 366 | 368 |
| 367 const ServerNetworkStatsMap& | 369 const ServerNetworkStatsMap& |
| 368 HttpServerPropertiesManager::server_network_stats_map() const { | 370 HttpServerPropertiesManager::server_network_stats_map() const { |
| 369 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); | 371 DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
| 370 return http_server_properties_impl_->server_network_stats_map(); | 372 return http_server_properties_impl_->server_network_stats_map(); |
| 371 } | 373 } |
| 372 | 374 |
| 373 bool HttpServerPropertiesManager::SetQuicServerInfo( | 375 bool HttpServerPropertiesManager::SetQuicServerInfo( |
| 374 const QuicServerId& server_id, | 376 const QuicServerId& server_id, |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 return false; | 565 return false; |
| 564 } | 566 } |
| 565 | 567 |
| 566 // Get if server supports Spdy. | 568 // Get if server supports Spdy. |
| 567 bool supports_spdy = false; | 569 bool supports_spdy = false; |
| 568 if ((server_pref_dict->GetBoolean(kSupportsSpdyKey, &supports_spdy)) && | 570 if ((server_pref_dict->GetBoolean(kSupportsSpdyKey, &supports_spdy)) && |
| 569 supports_spdy) { | 571 supports_spdy) { |
| 570 spdy_servers->push_back(server_str); | 572 spdy_servers->push_back(server_str); |
| 571 } | 573 } |
| 572 | 574 |
| 573 AddToSpdySettingsMap(server, *server_pref_dict, spdy_settings_map); | |
| 574 | |
| 575 // TODO(zhongyi): persist server's scheme/host/pair in a new version. | 575 // TODO(zhongyi): persist server's scheme/host/pair in a new version. |
| 576 // Never call AddToAlternativeServiceMap for old versions disk data. | 576 // Never call AddToAlternativeServiceMap for old versions disk data. |
| 577 url::SchemeHostPort scheme_origin_pair("https", server.host(), | 577 url::SchemeHostPort scheme_origin_pair("https", server.host(), |
| 578 server.port()); | 578 server.port()); |
| 579 |
| 580 AddToSpdySettingsMap(scheme_origin_pair, *server_pref_dict, |
| 581 spdy_settings_map); |
| 582 |
| 579 if (version <= 4) { | 583 if (version <= 4) { |
| 580 DVLOG(1) << "Old version, won't update Alt-Svc from disck data"; | 584 DVLOG(1) << "Old version, won't update Alt-Svc from disck data"; |
| 581 } | 585 } |
| 582 if (!AddToAlternativeServiceMap(scheme_origin_pair, *server_pref_dict, | 586 if (!AddToAlternativeServiceMap(scheme_origin_pair, *server_pref_dict, |
| 583 alternative_service_map) || | 587 alternative_service_map) || |
| 584 !AddToNetworkStatsMap(server, *server_pref_dict, network_stats_map)) { | 588 !AddToNetworkStatsMap(scheme_origin_pair, *server_pref_dict, |
| 589 network_stats_map)) { |
| 585 return false; | 590 return false; |
| 586 } | 591 } |
| 587 } | 592 } |
| 588 return true; | 593 return true; |
| 589 } | 594 } |
| 590 | 595 |
| 591 void HttpServerPropertiesManager::AddToSpdySettingsMap( | 596 void HttpServerPropertiesManager::AddToSpdySettingsMap( |
| 592 const HostPortPair& server, | 597 const url::SchemeHostPort& server, |
| 593 const base::DictionaryValue& server_pref_dict, | 598 const base::DictionaryValue& server_pref_dict, |
| 594 SpdySettingsMap* spdy_settings_map) { | 599 SpdySettingsMap* spdy_settings_map) { |
| 595 // Get SpdySettings. | 600 // Get SpdySettings. |
| 596 DCHECK(spdy_settings_map->Peek(server) == spdy_settings_map->end()); | 601 DCHECK(spdy_settings_map->Peek(server) == spdy_settings_map->end()); |
| 597 const base::DictionaryValue* spdy_settings_dict = nullptr; | 602 const base::DictionaryValue* spdy_settings_dict = nullptr; |
| 598 if (!server_pref_dict.GetDictionaryWithoutPathExpansion( | 603 if (!server_pref_dict.GetDictionaryWithoutPathExpansion( |
| 599 kSettingsKey, &spdy_settings_dict)) { | 604 kSettingsKey, &spdy_settings_dict)) { |
| 600 return; | 605 return; |
| 601 } | 606 } |
| 602 SettingsMap settings_map; | 607 SettingsMap settings_map; |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 if (!supports_quic_dict->GetStringWithoutPathExpansion(kAddressKey, | 755 if (!supports_quic_dict->GetStringWithoutPathExpansion(kAddressKey, |
| 751 &address) || | 756 &address) || |
| 752 !last_quic_address->AssignFromIPLiteral(address)) { | 757 !last_quic_address->AssignFromIPLiteral(address)) { |
| 753 DVLOG(1) << "Malformed SupportsQuic"; | 758 DVLOG(1) << "Malformed SupportsQuic"; |
| 754 return false; | 759 return false; |
| 755 } | 760 } |
| 756 return true; | 761 return true; |
| 757 } | 762 } |
| 758 | 763 |
| 759 bool HttpServerPropertiesManager::AddToNetworkStatsMap( | 764 bool HttpServerPropertiesManager::AddToNetworkStatsMap( |
| 760 const HostPortPair& server, | 765 const url::SchemeHostPort& server, |
| 761 const base::DictionaryValue& server_pref_dict, | 766 const base::DictionaryValue& server_pref_dict, |
| 762 ServerNetworkStatsMap* network_stats_map) { | 767 ServerNetworkStatsMap* network_stats_map) { |
| 763 DCHECK(network_stats_map->Peek(server) == network_stats_map->end()); | 768 DCHECK(network_stats_map->Peek(server) == network_stats_map->end()); |
| 764 const base::DictionaryValue* server_network_stats_dict = nullptr; | 769 const base::DictionaryValue* server_network_stats_dict = nullptr; |
| 765 if (!server_pref_dict.GetDictionaryWithoutPathExpansion( | 770 if (!server_pref_dict.GetDictionaryWithoutPathExpansion( |
| 766 kNetworkStatsKey, &server_network_stats_dict)) { | 771 kNetworkStatsKey, &server_network_stats_dict)) { |
| 767 return true; | 772 return true; |
| 768 } | 773 } |
| 769 int srtt; | 774 int srtt; |
| 770 if (!server_network_stats_dict->GetIntegerWithoutPathExpansion(kSrttKey, | 775 if (!server_network_stats_dict->GetIntegerWithoutPathExpansion(kSrttKey, |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1042 const base::Closure& completion) { | 1047 const base::Closure& completion) { |
| 1043 typedef base::MRUCache<HostPortPair, ServerPref> ServerPrefMap; | 1048 typedef base::MRUCache<HostPortPair, ServerPref> ServerPrefMap; |
| 1044 ServerPrefMap server_pref_map(ServerPrefMap::NO_AUTO_EVICT); | 1049 ServerPrefMap server_pref_map(ServerPrefMap::NO_AUTO_EVICT); |
| 1045 | 1050 |
| 1046 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); | 1051 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); |
| 1047 | 1052 |
| 1048 // Add servers that support spdy to server_pref_map in the MRU order. | 1053 // Add servers that support spdy to server_pref_map in the MRU order. |
| 1049 for (size_t index = spdy_server_list->GetSize(); index > 0; --index) { | 1054 for (size_t index = spdy_server_list->GetSize(); index > 0; --index) { |
| 1050 std::string s; | 1055 std::string s; |
| 1051 if (spdy_server_list->GetString(index - 1, &s)) { | 1056 if (spdy_server_list->GetString(index - 1, &s)) { |
| 1052 HostPortPair server = HostPortPair::FromString(s); | 1057 url::SchemeHostPort scheme_origin_pair = |
| 1058 url::SchemeHostPort::FromString(s); |
| 1059 HostPortPair server = |
| 1060 HostPortPair::FromSchemeHostPort(scheme_origin_pair); |
| 1053 ServerPrefMap::iterator it = server_pref_map.Get(server); | 1061 ServerPrefMap::iterator it = server_pref_map.Get(server); |
| 1054 if (it == server_pref_map.end()) { | 1062 if (it == server_pref_map.end()) { |
| 1055 ServerPref server_pref; | 1063 ServerPref server_pref; |
| 1056 server_pref.supports_spdy = true; | 1064 server_pref.supports_spdy = true; |
| 1057 server_pref_map.Put(server, server_pref); | 1065 server_pref_map.Put(server, server_pref); |
| 1058 } else { | 1066 } else { |
| 1059 it->second.supports_spdy = true; | 1067 it->second.supports_spdy = true; |
| 1060 } | 1068 } |
| 1061 } | 1069 } |
| 1062 } | 1070 } |
| 1063 | 1071 |
| 1064 // Add servers that have SpdySettings to server_pref_map in the MRU order. | 1072 // Add servers that have SpdySettings to server_pref_map in the MRU order. |
| 1065 for (SpdySettingsMap::reverse_iterator map_it = spdy_settings_map->rbegin(); | 1073 for (SpdySettingsMap::reverse_iterator map_it = spdy_settings_map->rbegin(); |
| 1066 map_it != spdy_settings_map->rend(); ++map_it) { | 1074 map_it != spdy_settings_map->rend(); ++map_it) { |
| 1067 const HostPortPair& server = map_it->first; | 1075 const HostPortPair& server = |
| 1076 HostPortPair::FromSchemeHostPort(map_it->first); |
| 1068 ServerPrefMap::iterator it = server_pref_map.Get(server); | 1077 ServerPrefMap::iterator it = server_pref_map.Get(server); |
| 1069 if (it == server_pref_map.end()) { | 1078 if (it == server_pref_map.end()) { |
| 1070 ServerPref server_pref; | 1079 ServerPref server_pref; |
| 1071 server_pref.settings_map = &map_it->second; | 1080 server_pref.settings_map = &map_it->second; |
| 1072 server_pref_map.Put(server, server_pref); | 1081 server_pref_map.Put(server, server_pref); |
| 1073 } else { | 1082 } else { |
| 1074 it->second.settings_map = &map_it->second; | 1083 it->second.settings_map = &map_it->second; |
| 1075 } | 1084 } |
| 1076 } | 1085 } |
| 1077 | 1086 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1088 server_pref_map.Put(server, server_pref); | 1097 server_pref_map.Put(server, server_pref); |
| 1089 } else { | 1098 } else { |
| 1090 it->second.alternative_service_info_vector = &map_it->second; | 1099 it->second.alternative_service_info_vector = &map_it->second; |
| 1091 } | 1100 } |
| 1092 } | 1101 } |
| 1093 | 1102 |
| 1094 // Add ServerNetworkStats servers to server_pref_map in the MRU order. | 1103 // Add ServerNetworkStats servers to server_pref_map in the MRU order. |
| 1095 for (ServerNetworkStatsMap::const_reverse_iterator map_it = | 1104 for (ServerNetworkStatsMap::const_reverse_iterator map_it = |
| 1096 server_network_stats_map->rbegin(); | 1105 server_network_stats_map->rbegin(); |
| 1097 map_it != server_network_stats_map->rend(); ++map_it) { | 1106 map_it != server_network_stats_map->rend(); ++map_it) { |
| 1098 const HostPortPair& server = map_it->first; | 1107 const HostPortPair& server = |
| 1108 HostPortPair::FromSchemeHostPort(map_it->first); |
| 1099 ServerPrefMap::iterator it = server_pref_map.Get(server); | 1109 ServerPrefMap::iterator it = server_pref_map.Get(server); |
| 1100 if (it == server_pref_map.end()) { | 1110 if (it == server_pref_map.end()) { |
| 1101 ServerPref server_pref; | 1111 ServerPref server_pref; |
| 1102 server_pref.server_network_stats = &map_it->second; | 1112 server_pref.server_network_stats = &map_it->second; |
| 1103 server_pref_map.Put(server, server_pref); | 1113 server_pref_map.Put(server, server_pref); |
| 1104 } else { | 1114 } else { |
| 1105 it->second.server_network_stats = &map_it->second; | 1115 it->second.server_network_stats = &map_it->second; |
| 1106 } | 1116 } |
| 1107 } | 1117 } |
| 1108 | 1118 |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1251 quic_servers_dict); | 1261 quic_servers_dict); |
| 1252 } | 1262 } |
| 1253 | 1263 |
| 1254 void HttpServerPropertiesManager::OnHttpServerPropertiesChanged() { | 1264 void HttpServerPropertiesManager::OnHttpServerPropertiesChanged() { |
| 1255 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); | 1265 DCHECK(pref_task_runner_->RunsTasksOnCurrentThread()); |
| 1256 if (!setting_prefs_) | 1266 if (!setting_prefs_) |
| 1257 ScheduleUpdateCacheOnPrefThread(); | 1267 ScheduleUpdateCacheOnPrefThread(); |
| 1258 } | 1268 } |
| 1259 | 1269 |
| 1260 } // namespace net | 1270 } // namespace net |
| OLD | NEW |