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 c2f6f56d57b25723c86d6af64e2f75059c652d9d..4ed53a7ed6a7d5dbe3d4204e53b066ac4f82fb36 100644 |
--- a/net/http/http_server_properties_manager.cc |
+++ b/net/http/http_server_properties_manager.cc |
@@ -282,28 +282,20 @@ const SpdySettingsMap& HttpServerPropertiesManager::spdy_settings_map() |
return http_server_properties_impl_->spdy_settings_map(); |
} |
-SupportsQuic HttpServerPropertiesManager::GetSupportsQuic( |
- const HostPortPair& host_port_pair) const { |
+bool HttpServerPropertiesManager::GetSupportsQuic( |
+ IPAddressNumber* last_address) const { |
DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
- return http_server_properties_impl_->GetSupportsQuic(host_port_pair); |
+ return http_server_properties_impl_->GetSupportsQuic(last_address); |
} |
void HttpServerPropertiesManager::SetSupportsQuic( |
- const HostPortPair& host_port_pair, |
bool used_quic, |
- const std::string& address) { |
+ const IPAddressNumber& address) { |
DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
- http_server_properties_impl_->SetSupportsQuic( |
- host_port_pair, used_quic, address); |
+ http_server_properties_impl_->SetSupportsQuic(used_quic, address); |
ScheduleUpdatePrefsOnNetworkThread(); |
} |
-const SupportsQuicMap& HttpServerPropertiesManager::supports_quic_map() |
- const { |
- DCHECK(network_task_runner_->RunsTasksOnCurrentThread()); |
- return http_server_properties_impl_->supports_quic_map(); |
-} |
- |
void HttpServerPropertiesManager::SetServerNetworkStats( |
const HostPortPair& host_port_pair, |
ServerNetworkStats stats) { |
@@ -372,13 +364,15 @@ void HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread() { |
return; |
} |
+ IPAddressNumber* addr = new IPAddressNumber; |
+ ReadSupportsQuic(http_server_properties_dict, addr); |
+ |
// String is host/port pair of spdy server. |
scoped_ptr<StringVector> spdy_servers(new StringVector); |
scoped_ptr<SpdySettingsMap> spdy_settings_map( |
new SpdySettingsMap(kMaxSpdySettingsHostsToPersist)); |
scoped_ptr<AlternateProtocolMap> alternate_protocol_map( |
new AlternateProtocolMap(kMaxAlternateProtocolHostsToPersist)); |
- scoped_ptr<SupportsQuicMap> supports_quic_map(new SupportsQuicMap()); |
scoped_ptr<ServerNetworkStatsMap> server_network_stats_map( |
new ServerNetworkStatsMap(kMaxServerNetworkStatsHostsToPersist)); |
@@ -410,8 +404,6 @@ void HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread() { |
AddToSpdySettingsMap(server, *server_pref_dict, spdy_settings_map.get()); |
if (!AddToAlternateProtocolMap(server, *server_pref_dict, |
alternate_protocol_map.get()) || |
- !AddToSupportsQuicMap(server, *server_pref_dict, |
- supports_quic_map.get()) || |
!AddToNetworkStatsMap(server, *server_pref_dict, |
server_network_stats_map.get())) { |
detected_corrupted_prefs = true; |
@@ -424,8 +416,7 @@ void HttpServerPropertiesManager::UpdateCacheFromPrefsOnPrefThread() { |
&HttpServerPropertiesManager::UpdateCacheFromPrefsOnNetworkThread, |
base::Unretained(this), base::Owned(spdy_servers.release()), |
base::Owned(spdy_settings_map.release()), |
- base::Owned(alternate_protocol_map.release()), |
- base::Owned(supports_quic_map.release()), |
+ base::Owned(alternate_protocol_map.release()), base::Owned(addr), |
base::Owned(server_network_stats_map.release()), |
detected_corrupted_prefs)); |
} |
@@ -508,30 +499,30 @@ bool HttpServerPropertiesManager::AddToAlternateProtocolMap( |
return true; |
} |
-bool HttpServerPropertiesManager::AddToSupportsQuicMap( |
- const HostPortPair& server, |
- const base::DictionaryValue& server_pref_dict, |
- SupportsQuicMap* supports_quic_map) { |
- DCHECK(supports_quic_map->find(server) == supports_quic_map->end()); |
+bool HttpServerPropertiesManager::ReadSupportsQuic( |
+ const base::DictionaryValue& http_server_properties_dict, |
+ IPAddressNumber* last_quic_address) { |
const base::DictionaryValue* supports_quic_dict = NULL; |
- if (!server_pref_dict.GetDictionaryWithoutPathExpansion( |
+ if (!http_server_properties_dict.GetDictionaryWithoutPathExpansion( |
kSupportsQuicKey, &supports_quic_dict)) { |
return true; |
} |
- bool used_quic = 0; |
+ bool used_quic = false; |
if (!supports_quic_dict->GetBooleanWithoutPathExpansion(kUsedQuicKey, |
&used_quic)) { |
- DVLOG(1) << "Malformed SupportsQuic server: " << server.ToString(); |
+ DVLOG(1) << "Malformed SupportsQuic"; |
return false; |
} |
+ if (!used_quic) |
+ return false; |
+ |
std::string address; |
if (!supports_quic_dict->GetStringWithoutPathExpansion(kAddressKey, |
- &address)) { |
- DVLOG(1) << "Malformed SupportsQuic server: " << server.ToString(); |
+ &address) || |
+ !ParseIPLiteralToNumber(address, last_quic_address)) { |
+ DVLOG(1) << "Malformed SupportsQuic"; |
return false; |
} |
- SupportsQuic supports_quic(used_quic, address); |
- supports_quic_map->insert(std::make_pair(server, supports_quic)); |
return true; |
} |
@@ -564,7 +555,7 @@ void HttpServerPropertiesManager::UpdateCacheFromPrefsOnNetworkThread( |
StringVector* spdy_servers, |
SpdySettingsMap* spdy_settings_map, |
AlternateProtocolMap* alternate_protocol_map, |
- SupportsQuicMap* supports_quic_map, |
+ IPAddressNumber* last_quic_address, |
ServerNetworkStatsMap* server_network_stats_map, |
bool detected_corrupted_prefs) { |
// Preferences have the master data because admins might have pushed new |
@@ -586,7 +577,7 @@ void HttpServerPropertiesManager::UpdateCacheFromPrefsOnNetworkThread( |
http_server_properties_impl_->InitializeAlternateProtocolServers( |
alternate_protocol_map); |
- http_server_properties_impl_->InitializeSupportsQuic(supports_quic_map); |
+ http_server_properties_impl_->InitializeSupportsQuic(last_quic_address); |
http_server_properties_impl_->InitializeServerNetworkStats( |
server_network_stats_map); |
@@ -663,14 +654,6 @@ void HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkThread( |
++count; |
} |
- SupportsQuicMap* supports_quic_map = new SupportsQuicMap(); |
- const SupportsQuicMap& main_supports_quic_map = |
- http_server_properties_impl_->supports_quic_map(); |
- for (SupportsQuicMap::const_iterator it = main_supports_quic_map.begin(); |
- it != main_supports_quic_map.end(); ++it) { |
- supports_quic_map->insert(std::make_pair(it->first, it->second)); |
- } |
- |
ServerNetworkStatsMap* server_network_stats_map = |
new ServerNetworkStatsMap(kMaxServerNetworkStatsHostsToPersist); |
const ServerNetworkStatsMap& main_server_network_stats_map = |
@@ -681,13 +664,15 @@ void HttpServerPropertiesManager::UpdatePrefsFromCacheOnNetworkThread( |
server_network_stats_map->Put(it->first, it->second); |
} |
+ IPAddressNumber* last_quic_addr = new IPAddressNumber; |
+ http_server_properties_impl_->GetSupportsQuic(last_quic_addr); |
// Update the preferences on the pref thread. |
pref_task_runner_->PostTask( |
FROM_HERE, |
base::Bind( |
&HttpServerPropertiesManager::UpdatePrefsOnPrefThread, pref_weak_ptr_, |
base::Owned(spdy_server_list), base::Owned(spdy_settings_map), |
- base::Owned(alternate_protocol_map), base::Owned(supports_quic_map), |
+ base::Owned(alternate_protocol_map), base::Owned(last_quic_addr), |
base::Owned(server_network_stats_map), completion)); |
} |
@@ -722,7 +707,7 @@ void HttpServerPropertiesManager::UpdatePrefsOnPrefThread( |
base::ListValue* spdy_server_list, |
SpdySettingsMap* spdy_settings_map, |
AlternateProtocolMap* alternate_protocol_map, |
- SupportsQuicMap* supports_quic_map, |
+ IPAddressNumber* last_quic_address, |
ServerNetworkStatsMap* server_network_stats_map, |
const base::Closure& completion) { |
typedef std::map<HostPortPair, ServerPref> ServerPrefMap; |
@@ -761,11 +746,13 @@ void HttpServerPropertiesManager::UpdatePrefsOnPrefThread( |
} |
// Add SupportsQuic servers to server_pref_map. |
+ /* |
for (SupportsQuicMap::const_iterator map_it = supports_quic_map->begin(); |
map_it != supports_quic_map->end(); ++map_it) { |
const HostPortPair& server = map_it->first; |
server_pref_map[server].supports_quic = &map_it->second; |
} |
+ */ |
ramant (doing other things)
2015/02/03 18:09:37
nit: could lines 747-755 be deleted.
Ryan Hamilton
2015/02/03 22:50:45
Done.
|
// Add ServerNetworkStats servers to server_pref_map. |
for (ServerNetworkStatsMap::const_iterator map_it = |
@@ -792,7 +779,6 @@ void HttpServerPropertiesManager::UpdatePrefsOnPrefThread( |
SaveSpdySettingsToServerPrefs(server_pref.settings_map, server_pref_dict); |
SaveAlternateProtocolToServerPrefs(server_pref.alternate_protocol, |
server_pref_dict); |
- SaveSupportsQuicToServerPrefs(server_pref.supports_quic, server_pref_dict); |
SaveNetworkStatsToServerPrefs(server_pref.server_network_stats, |
server_pref_dict); |
@@ -802,6 +788,9 @@ void HttpServerPropertiesManager::UpdatePrefsOnPrefThread( |
http_server_properties_dict.SetWithoutPathExpansion(kServersKey, |
servers_dict); |
SetVersion(&http_server_properties_dict, kVersionNumber); |
+ |
+ SaveSupportsQuicToPrefs(last_quic_address, &http_server_properties_dict); |
+ |
setting_prefs_ = true; |
pref_service_->Set(path_, http_server_properties_dict); |
setting_prefs_ = false; |
@@ -850,18 +839,18 @@ void HttpServerPropertiesManager::SaveAlternateProtocolToServerPrefs( |
port_alternate_protocol_dict); |
} |
-void HttpServerPropertiesManager::SaveSupportsQuicToServerPrefs( |
- const SupportsQuic* supports_quic, |
- base::DictionaryValue* server_pref_dict) { |
- // Save supports_quic. |
- if (!supports_quic) |
+void HttpServerPropertiesManager::SaveSupportsQuicToPrefs( |
+ const IPAddressNumber* last_quic_address, |
+ base::DictionaryValue* http_server_properties_dict) { |
+ if (!last_quic_address || last_quic_address->empty()) |
return; |
base::DictionaryValue* supports_quic_dict = new base::DictionaryValue; |
- supports_quic_dict->SetBoolean(kUsedQuicKey, supports_quic->used_quic); |
- supports_quic_dict->SetString(kAddressKey, supports_quic->address); |
- server_pref_dict->SetWithoutPathExpansion(kSupportsQuicKey, |
- supports_quic_dict); |
+ supports_quic_dict->SetBoolean(kUsedQuicKey, true); |
+ supports_quic_dict->SetString(kAddressKey, |
+ IPAddressToString(*last_quic_address)); |
+ http_server_properties_dict->SetWithoutPathExpansion(kSupportsQuicKey, |
+ supports_quic_dict); |
} |
void HttpServerPropertiesManager::SaveNetworkStatsToServerPrefs( |