Chromium Code Reviews| Index: net/http/http_server_properties_manager.cc |
| diff --git a/net/http/http_server_properties_manager.cc b/net/http/http_server_properties_manager.cc |
| index 6a4aaaaf62691584e548501b3982f8b24ac08b47..7cd2baa503ea34dd5a43d4a70389c605b6e5fb3f 100644 |
| --- a/net/http/http_server_properties_manager.cc |
| +++ b/net/http/http_server_properties_manager.cc |
| @@ -519,10 +519,9 @@ void HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefSequence() { |
| base::Bind( |
| &HttpServerPropertiesManager::UpdateCacheFromPrefsOnNetworkSequence, |
| base::Unretained(this), base::Owned(spdy_servers.release()), |
| - base::Owned(alternative_service_map.release()), base::Owned(addr), |
| - base::Owned(server_network_stats_map.release()), |
| - base::Owned(quic_server_info_map.release()), |
| - detected_corrupted_prefs)); |
| + base::Passed(&alternative_service_map), base::Owned(addr), |
| + base::Passed(&server_network_stats_map), |
| + base::Passed(&quic_server_info_map), detected_corrupted_prefs)); |
| } |
| bool HttpServerPropertiesManager::AddServersData( |
| @@ -775,11 +774,11 @@ bool HttpServerPropertiesManager::AddToQuicServerInfoMap( |
| } |
| void HttpServerPropertiesManager::UpdateCacheFromPrefsOnNetworkSequence( |
| - ServerList* spdy_servers, |
| - AlternativeServiceMap* alternative_service_map, |
| - IPAddress* last_quic_address, |
| - ServerNetworkStatsMap* server_network_stats_map, |
| - QuicServerInfoMap* quic_server_info_map, |
| + const ServerList* spdy_servers, |
| + std::unique_ptr<AlternativeServiceMap> alternative_service_map, |
| + const IPAddress* last_quic_address, |
| + std::unique_ptr<ServerNetworkStatsMap> server_network_stats_map, |
| + std::unique_ptr<QuicServerInfoMap> quic_server_info_map, |
| bool detected_corrupted_prefs) { |
| // Preferences have the master data because admins might have pushed new |
| // preferences. Update the cached data with new data from preferences. |
| @@ -793,16 +792,18 @@ void HttpServerPropertiesManager::UpdateCacheFromPrefsOnNetworkSequence( |
| UMA_HISTOGRAM_COUNTS("Net.CountOfAlternateProtocolServers", |
| alternative_service_map->size()); |
| http_server_properties_impl_->SetAlternativeServiceServers( |
| - alternative_service_map); |
| + std::move(alternative_service_map)); |
| http_server_properties_impl_->SetSupportsQuic(last_quic_address); |
| - http_server_properties_impl_->SetServerNetworkStats(server_network_stats_map); |
| + http_server_properties_impl_->SetServerNetworkStats( |
| + std::move(server_network_stats_map)); |
| UMA_HISTOGRAM_COUNTS_1000("Net.CountOfQuicServerInfos", |
| quic_server_info_map->size()); |
| - http_server_properties_impl_->SetQuicServerInfoMap(quic_server_info_map); |
| + http_server_properties_impl_->SetQuicServerInfoMap( |
| + std::move(quic_server_info_map)); |
| // Update the prefs with what we have read (delete all corrupted prefs). |
| if (detected_corrupted_prefs) |
| @@ -838,9 +839,9 @@ void HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkSequence( |
| DCHECK(network_task_runner_->RunsTasksInCurrentSequence()); |
| // It is in MRU order. |
| - base::ListValue* spdy_server_list = new base::ListValue; |
| - http_server_properties_impl_->GetSpdyServerList( |
| - spdy_server_list, kMaxSupportsSpdyServerHostsToPersist); |
| + std::unique_ptr<ServerList> spdy_servers = base::MakeUnique<ServerList>(); |
| + http_server_properties_impl_->GetSpdyServers( |
| + spdy_servers.get(), kMaxSupportsSpdyServerHostsToPersist); |
|
Ryan Hamilton
2017/06/20 18:25:56
it's a bit odd that GetSpdyServers takes a vector<
wangyix1
2017/06/21 18:45:33
Done.
|
| AlternativeServiceMap* alternative_service_map = |
| new AlternativeServiceMap(kMaxAlternateProtocolHostsToPersist); |
| @@ -922,7 +923,7 @@ void HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkSequence( |
| FROM_HERE, |
| base::Bind( |
| &HttpServerPropertiesManager::UpdatePrefsOnPrefThread, pref_weak_ptr_, |
| - base::Owned(spdy_server_list), base::Owned(alternative_service_map), |
| + base::Passed(&spdy_servers), base::Owned(alternative_service_map), |
| base::Owned(last_quic_addr), base::Owned(server_network_stats_map), |
| base::Owned(quic_server_info_map), completion)); |
| } |
| @@ -957,7 +958,7 @@ struct ServerPref { |
| // All maps and lists are in MRU order. |
| void HttpServerPropertiesManager::UpdatePrefsOnPrefThread( |
| - base::ListValue* spdy_server_list, |
| + std::unique_ptr<ServerList> spdy_servers, |
| AlternativeServiceMap* alternative_service_map, |
| IPAddress* last_quic_address, |
| ServerNetworkStatsMap* server_network_stats_map, |
| @@ -969,18 +970,15 @@ void HttpServerPropertiesManager::UpdatePrefsOnPrefThread( |
| DCHECK(pref_task_runner_->RunsTasksInCurrentSequence()); |
| // Add servers that support spdy to server_pref_map in the MRU order. |
| - for (size_t index = spdy_server_list->GetSize(); index > 0; --index) { |
| - std::string server_str; |
| - if (spdy_server_list->GetString(index - 1, &server_str)) { |
| - url::SchemeHostPort server((GURL(server_str))); |
| - ServerPrefMap::iterator it = server_pref_map.Get(server); |
| - if (it == server_pref_map.end()) { |
| - ServerPref server_pref; |
| - server_pref.supports_spdy = true; |
| - server_pref_map.Put(server, server_pref); |
| - } else { |
| - it->second.supports_spdy = true; |
| - } |
| + for (size_t i = spdy_servers->size(); i > 0; --i) { |
| + url::SchemeHostPort server((GURL(spdy_servers->at(i - 1)))); |
| + ServerPrefMap::iterator it = server_pref_map.Get(server); |
| + if (it == server_pref_map.end()) { |
| + ServerPref server_pref; |
| + server_pref.supports_spdy = true; |
| + server_pref_map.Put(server, server_pref); |
| + } else { |
| + it->second.supports_spdy = true; |
| } |
| } |