OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <memory> | 5 #include <memory> |
6 #include <string> | 6 #include <string> |
7 | 7 |
8 #include "base/auto_reset.h" | 8 #include "base/auto_reset.h" |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
157 EXPECT_EQ(CONTENT_SETTING_DETECT_IMPORTANT_CONTENT, | 157 EXPECT_EQ(CONTENT_SETTING_DETECT_IMPORTANT_CONTENT, |
158 host_content_settings_map->GetDefaultContentSetting( | 158 host_content_settings_map->GetDefaultContentSetting( |
159 CONTENT_SETTINGS_TYPE_PLUGINS, NULL)); | 159 CONTENT_SETTINGS_TYPE_PLUGINS, NULL)); |
160 #endif | 160 #endif |
161 | 161 |
162 host_content_settings_map->SetDefaultContentSetting( | 162 host_content_settings_map->SetDefaultContentSetting( |
163 CONTENT_SETTINGS_TYPE_POPUPS, CONTENT_SETTING_ALLOW); | 163 CONTENT_SETTINGS_TYPE_POPUPS, CONTENT_SETTING_ALLOW); |
164 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 164 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
165 host_content_settings_map->GetDefaultContentSetting( | 165 host_content_settings_map->GetDefaultContentSetting( |
166 CONTENT_SETTINGS_TYPE_POPUPS, NULL)); | 166 CONTENT_SETTINGS_TYPE_POPUPS, NULL)); |
167 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
168 host_content_settings_map->GetDefaultContentSetting( | |
169 CONTENT_SETTINGS_TYPE_KEYGEN, NULL)); | |
170 } | 167 } |
171 | 168 |
172 TEST_F(HostContentSettingsMapTest, IndividualSettings) { | 169 TEST_F(HostContentSettingsMapTest, IndividualSettings) { |
173 TestingProfile profile; | 170 TestingProfile profile; |
174 HostContentSettingsMap* host_content_settings_map = | 171 HostContentSettingsMap* host_content_settings_map = |
175 HostContentSettingsMapFactory::GetForProfile(&profile); | 172 HostContentSettingsMapFactory::GetForProfile(&profile); |
176 | 173 |
177 // Check returning individual settings. | 174 // Check returning individual settings. |
178 GURL host("http://example.com/"); | 175 GURL host("http://example.com/"); |
179 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 176 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 host, host, CONTENT_SETTINGS_TYPE_POPUPS, std::string())); | 214 host, host, CONTENT_SETTINGS_TYPE_POPUPS, std::string())); |
218 EXPECT_EQ(CONTENT_SETTING_ASK, | 215 EXPECT_EQ(CONTENT_SETTING_ASK, |
219 host_content_settings_map->GetContentSetting( | 216 host_content_settings_map->GetContentSetting( |
220 host, host, CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); | 217 host, host, CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
221 EXPECT_EQ( | 218 EXPECT_EQ( |
222 CONTENT_SETTING_ASK, | 219 CONTENT_SETTING_ASK, |
223 host_content_settings_map->GetContentSetting( | 220 host_content_settings_map->GetContentSetting( |
224 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string())); | 221 host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string())); |
225 | 222 |
226 host_content_settings_map->SetContentSettingDefaultScope( | 223 host_content_settings_map->SetContentSettingDefaultScope( |
227 host, GURL(), CONTENT_SETTINGS_TYPE_KEYGEN, std::string(), | |
228 CONTENT_SETTING_ALLOW); | |
229 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
230 host_content_settings_map->GetContentSetting( | |
231 host, host, CONTENT_SETTINGS_TYPE_KEYGEN, std::string())); | |
232 | |
233 host_content_settings_map->SetContentSettingDefaultScope( | |
234 host, GURL(), CONTENT_SETTINGS_TYPE_AUTOPLAY, std::string(), | 224 host, GURL(), CONTENT_SETTINGS_TYPE_AUTOPLAY, std::string(), |
235 CONTENT_SETTING_BLOCK); | 225 CONTENT_SETTING_BLOCK); |
236 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 226 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
237 host_content_settings_map->GetContentSetting( | 227 host_content_settings_map->GetContentSetting( |
238 host, host, CONTENT_SETTINGS_TYPE_AUTOPLAY, std::string())); | 228 host, host, CONTENT_SETTINGS_TYPE_AUTOPLAY, std::string())); |
239 | 229 |
240 // Check returning all hosts for a setting. | 230 // Check returning all hosts for a setting. |
241 GURL host2("http://example.org/"); | 231 GURL host2("http://example.org/"); |
242 host_content_settings_map->SetContentSettingDefaultScope( | 232 host_content_settings_map->SetContentSettingDefaultScope( |
243 host2, GURL(), CONTENT_SETTINGS_TYPE_JAVASCRIPT, std::string(), | 233 host2, GURL(), CONTENT_SETTINGS_TYPE_JAVASCRIPT, std::string(), |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
569 host_content_settings_map->SetContentSettingDefaultScope( | 559 host_content_settings_map->SetContentSettingDefaultScope( |
570 host_ending_with_dot, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, std::string(), | 560 host_ending_with_dot, GURL(), CONTENT_SETTINGS_TYPE_POPUPS, std::string(), |
571 CONTENT_SETTING_ALLOW); | 561 CONTENT_SETTING_ALLOW); |
572 EXPECT_EQ( | 562 EXPECT_EQ( |
573 CONTENT_SETTING_ALLOW, | 563 CONTENT_SETTING_ALLOW, |
574 host_content_settings_map->GetContentSetting(host_ending_with_dot, | 564 host_content_settings_map->GetContentSetting(host_ending_with_dot, |
575 host_ending_with_dot, | 565 host_ending_with_dot, |
576 CONTENT_SETTINGS_TYPE_POPUPS, | 566 CONTENT_SETTINGS_TYPE_POPUPS, |
577 std::string())); | 567 std::string())); |
578 | 568 |
579 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
580 host_content_settings_map->GetContentSetting( | |
581 host_ending_with_dot, host_ending_with_dot, | |
582 CONTENT_SETTINGS_TYPE_KEYGEN, std::string())); | |
583 host_content_settings_map->SetContentSettingDefaultScope( | |
584 host_ending_with_dot, GURL(), CONTENT_SETTINGS_TYPE_KEYGEN, std::string(), | |
585 CONTENT_SETTING_ALLOW); | |
586 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
587 host_content_settings_map->GetContentSetting( | |
588 host_ending_with_dot, host_ending_with_dot, | |
589 CONTENT_SETTINGS_TYPE_KEYGEN, std::string())); | |
590 host_content_settings_map->SetContentSettingDefaultScope( | |
591 host_ending_with_dot, GURL(), CONTENT_SETTINGS_TYPE_KEYGEN, std::string(), | |
592 CONTENT_SETTING_DEFAULT); | |
593 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
594 host_content_settings_map->GetContentSetting( | |
595 host_ending_with_dot, host_ending_with_dot, | |
596 CONTENT_SETTINGS_TYPE_KEYGEN, std::string())); | |
597 | |
598 EXPECT_EQ(CONTENT_SETTING_ALLOW, | 569 EXPECT_EQ(CONTENT_SETTING_ALLOW, |
599 host_content_settings_map->GetContentSetting( | 570 host_content_settings_map->GetContentSetting( |
600 host_ending_with_dot, host_ending_with_dot, | 571 host_ending_with_dot, host_ending_with_dot, |
601 CONTENT_SETTINGS_TYPE_AUTOPLAY, std::string())); | 572 CONTENT_SETTINGS_TYPE_AUTOPLAY, std::string())); |
602 host_content_settings_map->SetContentSettingDefaultScope( | 573 host_content_settings_map->SetContentSettingDefaultScope( |
603 host_ending_with_dot, GURL(), CONTENT_SETTINGS_TYPE_AUTOPLAY, | 574 host_ending_with_dot, GURL(), CONTENT_SETTINGS_TYPE_AUTOPLAY, |
604 std::string(), CONTENT_SETTING_BLOCK); | 575 std::string(), CONTENT_SETTING_BLOCK); |
605 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 576 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
606 host_content_settings_map->GetContentSetting( | 577 host_content_settings_map->GetContentSetting( |
607 host_ending_with_dot, host_ending_with_dot, | 578 host_ending_with_dot, host_ending_with_dot, |
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1091 EXPECT_EQ(CONTENT_SETTING_BLOCK, | 1062 EXPECT_EQ(CONTENT_SETTING_BLOCK, |
1092 host_content_settings_map->GetDefaultContentSetting( | 1063 host_content_settings_map->GetDefaultContentSetting( |
1093 CONTENT_SETTINGS_TYPE_PLUGINS, NULL)); | 1064 CONTENT_SETTINGS_TYPE_PLUGINS, NULL)); |
1094 | 1065 |
1095 // Remove the preference to manage the default-content-setting for Plugins. | 1066 // Remove the preference to manage the default-content-setting for Plugins. |
1096 prefs->RemoveManagedPref(prefs::kManagedDefaultPluginsSetting); | 1067 prefs->RemoveManagedPref(prefs::kManagedDefaultPluginsSetting); |
1097 EXPECT_EQ(CONTENT_SETTING_DETECT_IMPORTANT_CONTENT, | 1068 EXPECT_EQ(CONTENT_SETTING_DETECT_IMPORTANT_CONTENT, |
1098 host_content_settings_map->GetDefaultContentSetting( | 1069 host_content_settings_map->GetDefaultContentSetting( |
1099 CONTENT_SETTINGS_TYPE_PLUGINS, NULL)); | 1070 CONTENT_SETTINGS_TYPE_PLUGINS, NULL)); |
1100 #endif | 1071 #endif |
1101 | |
1102 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
1103 host_content_settings_map->GetDefaultContentSetting( | |
1104 CONTENT_SETTINGS_TYPE_KEYGEN, NULL)); | |
1105 | |
1106 // Set managed-default content setting through the coresponding preferences. | |
1107 prefs->SetManagedPref(prefs::kManagedDefaultKeygenSetting, | |
1108 new base::FundamentalValue(CONTENT_SETTING_ALLOW)); | |
1109 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
1110 host_content_settings_map->GetDefaultContentSetting( | |
1111 CONTENT_SETTINGS_TYPE_KEYGEN, NULL)); | |
1112 | |
1113 // Remove managed-default content settings preferences. | |
1114 prefs->RemoveManagedPref(prefs::kManagedDefaultKeygenSetting); | |
1115 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
1116 host_content_settings_map->GetDefaultContentSetting( | |
1117 CONTENT_SETTINGS_TYPE_KEYGEN, NULL)); | |
1118 } | 1072 } |
1119 | 1073 |
1120 TEST_F(HostContentSettingsMapTest, | 1074 TEST_F(HostContentSettingsMapTest, |
1121 GetNonDefaultContentSettingsIfTypeManaged) { | 1075 GetNonDefaultContentSettingsIfTypeManaged) { |
1122 TestingProfile profile; | 1076 TestingProfile profile; |
1123 HostContentSettingsMap* host_content_settings_map = | 1077 HostContentSettingsMap* host_content_settings_map = |
1124 HostContentSettingsMapFactory::GetForProfile(&profile); | 1078 HostContentSettingsMapFactory::GetForProfile(&profile); |
1125 sync_preferences::TestingPrefServiceSyncable* prefs = | 1079 sync_preferences::TestingPrefServiceSyncable* prefs = |
1126 profile.GetTestingPrefService(); | 1080 profile.GetTestingPrefService(); |
1127 | 1081 |
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1361 | 1315 |
1362 // Test that during construction all the prefs get cleared. | 1316 // Test that during construction all the prefs get cleared. |
1363 HostContentSettingsMapFactory::GetForProfile(&profile); | 1317 HostContentSettingsMapFactory::GetForProfile(&profile); |
1364 | 1318 |
1365 const base::DictionaryValue* all_settings_dictionary = | 1319 const base::DictionaryValue* all_settings_dictionary = |
1366 profile.GetPrefs()->GetDictionary( | 1320 profile.GetPrefs()->GetDictionary( |
1367 GetPrefName(CONTENT_SETTINGS_TYPE_COOKIES)); | 1321 GetPrefName(CONTENT_SETTINGS_TYPE_COOKIES)); |
1368 EXPECT_TRUE(all_settings_dictionary->empty()); | 1322 EXPECT_TRUE(all_settings_dictionary->empty()); |
1369 } | 1323 } |
1370 | 1324 |
1371 TEST_F(HostContentSettingsMapTest, MigrateKeygenSettings) { | |
1372 TestingProfile profile; | |
1373 HostContentSettingsMap* host_content_settings_map = | |
1374 HostContentSettingsMapFactory::GetForProfile(&profile); | |
1375 | |
1376 // Set old formatted settings. | |
1377 GURL host("http://example.com/"); | |
1378 ContentSettingsPattern pattern = | |
1379 ContentSettingsPattern::FromURLNoWildcard(host); | |
1380 | |
1381 // Default setting is BLOCK. | |
1382 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
1383 host_content_settings_map->GetContentSetting( | |
1384 host, host, CONTENT_SETTINGS_TYPE_KEYGEN, std::string())); | |
1385 | |
1386 host_content_settings_map->SetContentSettingCustomScope( | |
1387 pattern, pattern, CONTENT_SETTINGS_TYPE_KEYGEN, std::string(), | |
1388 CONTENT_SETTING_ALLOW); | |
1389 // Because of the old formatted setting entry which has two same patterns, | |
1390 // SetContentSetting() to (host, GURL()) will be ignored. | |
1391 host_content_settings_map->SetContentSettingDefaultScope( | |
1392 host, GURL(), CONTENT_SETTINGS_TYPE_KEYGEN, std::string(), | |
1393 CONTENT_SETTING_BLOCK); | |
1394 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
1395 host_content_settings_map->GetContentSetting( | |
1396 host, host, CONTENT_SETTINGS_TYPE_KEYGEN, std::string())); | |
1397 | |
1398 host_content_settings_map->MigrateKeygenSettings(); | |
1399 | |
1400 ContentSettingsForOneType settings; | |
1401 host_content_settings_map->GetSettingsForOneType(CONTENT_SETTINGS_TYPE_KEYGEN, | |
1402 std::string(), &settings); | |
1403 for (const ContentSettingPatternSource& setting_entry : settings) { | |
1404 EXPECT_EQ(setting_entry.secondary_pattern, | |
1405 ContentSettingsPattern::Wildcard()); | |
1406 } | |
1407 | |
1408 EXPECT_EQ(CONTENT_SETTING_ALLOW, | |
1409 host_content_settings_map->GetContentSetting( | |
1410 host, host, CONTENT_SETTINGS_TYPE_KEYGEN, std::string())); | |
1411 | |
1412 // After migrating old settings, changes to the setting works. | |
1413 host_content_settings_map->SetContentSettingDefaultScope( | |
1414 host, GURL(), CONTENT_SETTINGS_TYPE_KEYGEN, std::string(), | |
1415 CONTENT_SETTING_BLOCK); | |
1416 EXPECT_EQ(CONTENT_SETTING_BLOCK, | |
1417 host_content_settings_map->GetContentSetting( | |
1418 host, host, CONTENT_SETTINGS_TYPE_KEYGEN, std::string())); | |
1419 } | |
1420 | |
1421 TEST_F(HostContentSettingsMapTest, MigrateDomainScopedSettings) { | 1325 TEST_F(HostContentSettingsMapTest, MigrateDomainScopedSettings) { |
1422 TestingProfile profile; | 1326 TestingProfile profile; |
1423 HostContentSettingsMap* host_content_settings_map = | 1327 HostContentSettingsMap* host_content_settings_map = |
1424 HostContentSettingsMapFactory::GetForProfile(&profile); | 1328 HostContentSettingsMapFactory::GetForProfile(&profile); |
1425 PrefService* prefs = profile.GetPrefs(); | 1329 PrefService* prefs = profile.GetPrefs(); |
1426 // Set the pref to its initial state so that migration can be done later in | 1330 // Set the pref to its initial state so that migration can be done later in |
1427 // the test (normally it is done on construction of HostContentSettingsMap). | 1331 // the test (normally it is done on construction of HostContentSettingsMap). |
1428 int default_value; | 1332 int default_value; |
1429 prefs->GetDefaultPrefValue(prefs::kDomainToOriginMigrationStatus) | 1333 prefs->GetDefaultPrefValue(prefs::kDomainToOriginMigrationStatus) |
1430 ->GetAsInteger(&default_value); | 1334 ->GetAsInteger(&default_value); |
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1810 EXPECT_TRUE(map->CanSetNarrowestContentSetting( | 1714 EXPECT_TRUE(map->CanSetNarrowestContentSetting( |
1811 valid_url, valid_url, | 1715 valid_url, valid_url, |
1812 CONTENT_SETTINGS_TYPE_POPUPS)); | 1716 CONTENT_SETTINGS_TYPE_POPUPS)); |
1813 | 1717 |
1814 GURL invalid_url("about:blank"); | 1718 GURL invalid_url("about:blank"); |
1815 EXPECT_FALSE(map->CanSetNarrowestContentSetting( | 1719 EXPECT_FALSE(map->CanSetNarrowestContentSetting( |
1816 invalid_url, invalid_url, | 1720 invalid_url, invalid_url, |
1817 CONTENT_SETTINGS_TYPE_POPUPS)); | 1721 CONTENT_SETTINGS_TYPE_POPUPS)); |
1818 } | 1722 } |
1819 | 1723 |
OLD | NEW |