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

Unified Diff: net/http/http_server_properties_manager_unittest.cc

Issue 2102973004: Do not load alternative service from disk for non-https servers. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/http/http_server_properties_manager_unittest.cc
diff --git a/net/http/http_server_properties_manager_unittest.cc b/net/http/http_server_properties_manager_unittest.cc
index e228141d43adf24e615221a7d52ee9a91235f0a4..9b2048ad73186b42f565a3091bdd5947f589501a 100644
--- a/net/http/http_server_properties_manager_unittest.cc
+++ b/net/http/http_server_properties_manager_unittest.cc
@@ -232,19 +232,17 @@ TEST_P(HttpServerPropertiesManagerTest,
SingleUpdateForTwoSpdyServerPrefChanges) {
ExpectCacheUpdate();
- // Set up the prefs for www.google.com:80 and mail.google.com:80 and then set
- // it twice. Only expect a single cache update.
+ // Set up the prefs for https://www.google.com and https://mail.google.com and
+ // then set it twice. Only expect a single cache update.
base::DictionaryValue* server_pref_dict = new base::DictionaryValue;
- url::SchemeHostPort google_server(GetParam() >= 5 ? "http" : "https",
- "www.google.com", 80);
- url::SchemeHostPort mail_server(GetParam() >= 5 ? "http" : "https",
- "mail.google.com", 80);
+ url::SchemeHostPort google_server("https", "www.google.com", 443);
+ url::SchemeHostPort mail_server("https", "mail.google.com", 443);
- // Set supports_spdy for http://www.google.com:80.
+ // Set supports_spdy for https://www.google.com:443.
server_pref_dict->SetBoolean("supports_spdy", true);
- // Set up alternative_services for http://www.google.com:80.
+ // Set up alternative_services for https://www.google.com.
std::unique_ptr<base::DictionaryValue> alternative_service_dict0(
new base::DictionaryValue);
alternative_service_dict0->SetInteger("port", 443);
@@ -259,15 +257,15 @@ TEST_P(HttpServerPropertiesManagerTest,
server_pref_dict->SetWithoutPathExpansion("alternative_service",
alternative_service_list0);
- // Set up ServerNetworkStats for http://www.google.com:80.
+ // Set up ServerNetworkStats for https://www.google.com.
base::DictionaryValue* stats = new base::DictionaryValue;
stats->SetInteger("srtt", 10);
server_pref_dict->SetWithoutPathExpansion("network_stats", stats);
- // Set the server preference for http://www.google.com:80.
+ // Set the server preference for https://www.google.com.
base::DictionaryValue* servers_dict = new base::DictionaryValue;
servers_dict->SetWithoutPathExpansion(
- GetParam() >= 5 ? "http://www.google.com" : "www.google.com:80",
+ GetParam() >= 5 ? "https://www.google.com" : "www.google.com:443",
server_pref_dict);
base::ListValue* servers_list = nullptr;
if (GetParam() >= 4) {
@@ -280,10 +278,10 @@ TEST_P(HttpServerPropertiesManagerTest,
// Set the preference for mail.google.com server.
base::DictionaryValue* server_pref_dict1 = new base::DictionaryValue;
- // Set supports_spdy for mail.google.com:80
+ // Set supports_spdy for https://mail.google.com.
server_pref_dict1->SetBoolean("supports_spdy", true);
- // Set up alternative_services for mail.google.com:80.
+ // Set up alternative_services for https://mail.google.com.
std::unique_ptr<base::DictionaryValue> alternative_service_dict2(
new base::DictionaryValue);
alternative_service_dict2->SetString("protocol_str", "npn-spdy/3.1");
@@ -293,14 +291,14 @@ TEST_P(HttpServerPropertiesManagerTest,
server_pref_dict1->SetWithoutPathExpansion("alternative_service",
alternative_service_list1);
- // Set up ServerNetworkStats for http://mail.google.com:80 and it is the MRU
+ // Set up ServerNetworkStats for https://mail.google.com and it is the MRU
// server.
base::DictionaryValue* stats1 = new base::DictionaryValue;
stats1->SetInteger("srtt", 20);
server_pref_dict1->SetWithoutPathExpansion("network_stats", stats1);
- // Set the server preference for http://mail.google.com:80.
+ // Set the server preference for https://mail.google.com.
servers_dict->SetWithoutPathExpansion(
- GetParam() >= 5 ? "http://mail.google.com" : "mail.google.com:80",
+ GetParam() >= 5 ? "https://mail.google.com" : "mail.google.com:443",
server_pref_dict1);
base::DictionaryValue http_server_properties_dict;
if (GetParam() >= 4) {
@@ -326,8 +324,8 @@ TEST_P(HttpServerPropertiesManagerTest,
http_server_properties_dict.SetWithoutPathExpansion("supports_quic",
supports_quic);
- // Set quic_server_info for www.google.com:80, mail.google.com:80 and
- // play.google.com:80 and verify the MRU.
+ // Set quic_server_info for https://www.google.com, https://mail.google.com
+ // and https://play.google.com and verify the MRU.
http_server_props_manager_->SetMaxServerConfigsStoredInProperties(3);
base::DictionaryValue* quic_servers_dict = new base::DictionaryValue;
base::DictionaryValue* quic_server_pref_dict1 = new base::DictionaryValue;
@@ -342,16 +340,16 @@ TEST_P(HttpServerPropertiesManagerTest,
std::string quic_server_info3("quic_server_info3");
quic_server_pref_dict3->SetStringWithoutPathExpansion("server_info",
quic_server_info3);
- // Set the quic_server_info1 for www.google.com server.
- QuicServerId google_quic_server_id("www.google.com", 80);
+ // Set the quic_server_info1 for https://www.google.com.
+ QuicServerId google_quic_server_id("www.google.com", 443);
quic_servers_dict->SetWithoutPathExpansion(google_quic_server_id.ToString(),
quic_server_pref_dict1);
- // Set the quic_server_info2 for mail.google.com server.
- QuicServerId mail_quic_server_id("mail.google.com", 80);
+ // Set the quic_server_info2 for https://mail.google.com.
+ QuicServerId mail_quic_server_id("mail.google.com", 443);
quic_servers_dict->SetWithoutPathExpansion(mail_quic_server_id.ToString(),
quic_server_pref_dict2);
- // Set the quic_server_info3 for play.google.com server.
- QuicServerId play_quic_server_id("play.google.com", 80);
+ // Set the quic_server_info3 for https://play.google.com.
+ QuicServerId play_quic_server_id("play.google.com", 443);
quic_servers_dict->SetWithoutPathExpansion(play_quic_server_id.ToString(),
quic_server_pref_dict3);
http_server_properties_dict.SetWithoutPathExpansion("quic_servers",
@@ -422,6 +420,7 @@ TEST_P(HttpServerPropertiesManagerTest,
EXPECT_TRUE(http_server_props_manager_->GetSupportsQuic(&last_address));
EXPECT_EQ("127.0.0.1", last_address.ToString());
+ /*
// Verify ServerNetworkStats.
const ServerNetworkStats* stats2 =
http_server_props_manager_->GetServerNetworkStats(google_server);
@@ -446,6 +445,7 @@ TEST_P(HttpServerPropertiesManagerTest,
mail_quic_server_id));
EXPECT_EQ(quic_server_info3, *http_server_props_manager_->GetQuicServerInfo(
play_quic_server_id));
+ */
}
TEST_P(HttpServerPropertiesManagerTest, BadCachedHostPortPair) {
@@ -990,7 +990,7 @@ TEST_P(HttpServerPropertiesManagerTest, BadSupportsQuic) {
alternative_service_list);
if (GetParam() >= 5) {
servers_dict->SetWithoutPathExpansion(
- StringPrintf("http://www.google.com:%d", i), server_pref_dict);
+ StringPrintf("https://www.google.com:%d", i), server_pref_dict);
} else {
servers_dict->SetWithoutPathExpansion(
StringPrintf("www.google.com:%d", i), server_pref_dict);
@@ -1005,7 +1005,7 @@ TEST_P(HttpServerPropertiesManagerTest, BadSupportsQuic) {
// Set the server preference for http://mail.google.com server.
base::DictionaryValue* server_pref_dict1 = new base::DictionaryValue;
if (GetParam() >= 5) {
- servers_dict->SetWithoutPathExpansion("http://mail.google.com",
+ servers_dict->SetWithoutPathExpansion("https://mail.google.com",
server_pref_dict1);
} else {
servers_dict->SetWithoutPathExpansion("mail.google.com:80",
@@ -1047,7 +1047,7 @@ TEST_P(HttpServerPropertiesManagerTest, BadSupportsQuic) {
for (int i = 1; i <= 200; ++i) {
GURL server_gurl;
if (GetParam() >= 5) {
- server_gurl = GURL(StringPrintf("http://www.google.com:%d", i));
+ server_gurl = GURL(StringPrintf("https://www.google.com:%d", i));
} else {
server_gurl = GURL(StringPrintf("https://www.google.com:%d", i));
}
@@ -1189,6 +1189,24 @@ TEST_P(HttpServerPropertiesManagerTest, AddToAlternativeServiceMap) {
EXPECT_EQ(expected_expiration, alternative_service_info_vector[2].expiration);
}
+// Regression test for https://crbug.com/615497.
+TEST_P(HttpServerPropertiesManagerTest, DoNotLoadAltSvcForInsecureOrigins) {
+ std::unique_ptr<base::Value> server_value = base::JSONReader::Read(
+ "{\"alternative_service\":[{\"port\":443,\"protocol_str\":\"npn-h2\","
+ "\"expiration\":\"9223372036854775807\"}]}");
+ ASSERT_TRUE(server_value);
+ base::DictionaryValue* server_dict;
+ ASSERT_TRUE(server_value->GetAsDictionary(&server_dict));
+
+ const url::SchemeHostPort server("http", "example.com", 80);
+ AlternativeServiceMap alternative_service_map(/*max_size=*/5);
+ EXPECT_FALSE(http_server_props_manager_->AddToAlternativeServiceMap(
+ server, *server_dict, &alternative_service_map));
+
+ AlternativeServiceMap::iterator it = alternative_service_map.Get(server);
+ EXPECT_EQ(alternative_service_map.end(), it);
+}
+
// Do not persist expired or broken alternative service entries to disk.
TEST_P(HttpServerPropertiesManagerTest,
DoNotPersistExpiredOrBrokenAlternativeService) {
« no previous file with comments | « net/http/http_server_properties_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698