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

Unified Diff: net/http/http_server_properties_manager.cc

Issue 892203004: Make HttpServerProperties::GetSupportsQuic not host-specific. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698