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

Unified Diff: chrome/browser/content_settings/host_content_settings_map_unittest.cc

Issue 1442083002: Stop inheriting push notification permissions from regular to incognito (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address review comments (created TestUtils class) Created 5 years 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: chrome/browser/content_settings/host_content_settings_map_unittest.cc
diff --git a/chrome/browser/content_settings/host_content_settings_map_unittest.cc b/chrome/browser/content_settings/host_content_settings_map_unittest.cc
index 04eac30aaa1dbde21d758886ecdcd97193367931..4f59653260503393d14ab47932a3f631ab552c6d 100644
--- a/chrome/browser/content_settings/host_content_settings_map_unittest.cc
+++ b/chrome/browser/content_settings/host_content_settings_map_unittest.cc
@@ -103,7 +103,7 @@ TEST_F(HostContentSettingsMapTest, IndividualSettings) {
// Check returning individual settings.
GURL host("http://example.com/");
ContentSettingsPattern pattern =
- ContentSettingsPattern::FromString("[*.]example.com");
+ ContentSettingsPattern::FromString("[*.]example.com");
EXPECT_EQ(CONTENT_SETTING_ALLOW,
host_content_settings_map->GetContentSetting(
host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string()));
@@ -186,7 +186,7 @@ TEST_F(HostContentSettingsMapTest, IndividualSettings) {
// Check returning all hosts for a setting.
ContentSettingsPattern pattern2 =
- ContentSettingsPattern::FromString("[*.]example.org");
+ ContentSettingsPattern::FromString("[*.]example.org");
host_content_settings_map->SetContentSetting(
pattern2,
ContentSettingsPattern::Wildcard(),
@@ -225,7 +225,7 @@ TEST_F(HostContentSettingsMapTest, Clear) {
// Check clearing one type.
ContentSettingsPattern pattern =
- ContentSettingsPattern::FromString("[*.]example.org");
+ ContentSettingsPattern::FromString("[*.]example.org");
ContentSettingsPattern pattern2 =
ContentSettingsPattern::FromString("[*.]example.net");
host_content_settings_map->SetContentSetting(
@@ -278,9 +278,9 @@ TEST_F(HostContentSettingsMapTest, Patterns) {
GURL host2("http://www.example.com/");
GURL host3("http://example.org/");
ContentSettingsPattern pattern1 =
- ContentSettingsPattern::FromString("[*.]example.com");
+ ContentSettingsPattern::FromString("[*.]example.com");
ContentSettingsPattern pattern2 =
- ContentSettingsPattern::FromString("example.org");
+ ContentSettingsPattern::FromString("example.org");
EXPECT_EQ(CONTENT_SETTING_ALLOW,
host_content_settings_map->GetContentSetting(
host1, host1, CONTENT_SETTINGS_TYPE_IMAGES, std::string()));
@@ -395,7 +395,7 @@ TEST_F(HostContentSettingsMapTest, ObserveExceptionPref) {
->DeepCopy());
ContentSettingsPattern pattern =
- ContentSettingsPattern::FromString("[*.]example.com");
+ ContentSettingsPattern::FromString("[*.]example.com");
GURL host("http://example.com");
EXPECT_EQ(CONTENT_SETTING_ALLOW,
@@ -439,7 +439,7 @@ TEST_F(HostContentSettingsMapTest, HostTrimEndingDotCheck) {
CookieSettingsFactory::GetForProfile(&profile).get();
ContentSettingsPattern pattern =
- ContentSettingsPattern::FromString("[*.]example.com");
+ ContentSettingsPattern::FromString("[*.]example.com");
GURL host_ending_with_dot("http://example.com./");
EXPECT_EQ(CONTENT_SETTING_ALLOW,
@@ -614,11 +614,11 @@ TEST_F(HostContentSettingsMapTest, NestedSettings) {
GURL host("http://a.b.example.com/");
ContentSettingsPattern pattern1 =
- ContentSettingsPattern::FromString("[*.]example.com");
+ ContentSettingsPattern::FromString("[*.]example.com");
ContentSettingsPattern pattern2 =
- ContentSettingsPattern::FromString("[*.]b.example.com");
+ ContentSettingsPattern::FromString("[*.]b.example.com");
ContentSettingsPattern pattern3 =
- ContentSettingsPattern::FromString("a.b.example.com");
+ ContentSettingsPattern::FromString("a.b.example.com");
host_content_settings_map->SetContentSetting(
pattern1,
@@ -678,15 +678,15 @@ TEST_F(HostContentSettingsMapTest, NestedSettings) {
TEST_F(HostContentSettingsMapTest, OffTheRecord) {
TestingProfile profile;
+ Profile* otr_profile = profile.GetOffTheRecordProfile();
HostContentSettingsMap* host_content_settings_map =
HostContentSettingsMapFactory::GetForProfile(&profile);
- scoped_refptr<HostContentSettingsMap> otr_map(
- new HostContentSettingsMap(profile.GetPrefs(),
- true));
+ HostContentSettingsMap* otr_map =
+ HostContentSettingsMapFactory::GetForProfile(otr_profile);
GURL host("http://example.com/");
ContentSettingsPattern pattern =
- ContentSettingsPattern::FromString("[*.]example.com");
+ ContentSettingsPattern::FromString("[*.]example.com");
EXPECT_EQ(CONTENT_SETTING_ALLOW,
host_content_settings_map->GetContentSetting(
@@ -723,8 +723,130 @@ TEST_F(HostContentSettingsMapTest, OffTheRecord) {
EXPECT_EQ(CONTENT_SETTING_ALLOW,
otr_map->GetContentSetting(
host, host, CONTENT_SETTINGS_TYPE_IMAGES, std::string()));
+}
+
+TEST_F(HostContentSettingsMapTest, OffTheRecordPartialInheritPref) {
+ // Permissions marked INHERIT_IN_INCOGNITO_EXCEPT_ALLOW in
+ // ContentSettingsRegistry (e.g. push & notifications) only inherit BLOCK
+ // settings from regular to incognito.
+ TestingProfile profile;
+ Profile* otr_profile = profile.GetOffTheRecordProfile();
+ HostContentSettingsMap* host_content_settings_map =
+ HostContentSettingsMapFactory::GetForProfile(&profile);
+ HostContentSettingsMap* otr_map =
+ HostContentSettingsMapFactory::GetForProfile(otr_profile);
+
+ GURL host("http://example.com/");
+ ContentSettingsPattern pattern =
+ ContentSettingsPattern::FromString("[*.]example.com");
raymes 2015/12/07 03:02:30 nit: probably use: pattern = ContentSettingsPatter
johnme 2015/12/07 11:28:51 Done.
+
+ EXPECT_EQ(
+ CONTENT_SETTING_ASK,
+ host_content_settings_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
+ EXPECT_EQ(
+ CONTENT_SETTING_ASK,
+ otr_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
+
+ // BLOCK should be inherited from the main map to the incognito map.
+ host_content_settings_map->SetContentSetting(
+ pattern,
+ ContentSettingsPattern::Wildcard(),
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
+ std::string(),
+ CONTENT_SETTING_BLOCK);
+ EXPECT_EQ(
+ CONTENT_SETTING_BLOCK,
+ host_content_settings_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
+ EXPECT_EQ(
+ CONTENT_SETTING_BLOCK,
+ otr_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
+
+ // ALLOW should not be inherited from the main map to the incognito map (but
+ // it still overwrites the BLOCK, hence incognito reverts to ASK).
+ host_content_settings_map->SetContentSetting(
+ pattern,
+ ContentSettingsPattern::Wildcard(),
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS,
+ std::string(),
+ CONTENT_SETTING_ALLOW);
+ EXPECT_EQ(
+ CONTENT_SETTING_ALLOW,
+ host_content_settings_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
+ EXPECT_EQ(
+ CONTENT_SETTING_ASK,
+ otr_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
+}
+
+TEST_F(HostContentSettingsMapTest, OffTheRecordPartialInheritDefault) {
+ // Permissions marked INHERIT_IN_INCOGNITO_EXCEPT_ALLOW in
+ // ContentSettingsRegistry (e.g. push & notifications) only inherit BLOCK
+ // default settings from regular to incognito.
+ TestingProfile profile;
+ Profile* otr_profile = profile.GetOffTheRecordProfile();
+ HostContentSettingsMap* host_content_settings_map =
+ HostContentSettingsMapFactory::GetForProfile(&profile);
+ HostContentSettingsMap* otr_map =
+ HostContentSettingsMapFactory::GetForProfile(otr_profile);
+
+ GURL host("http://example.com/");
+
+ EXPECT_EQ(CONTENT_SETTING_ASK,
+ host_content_settings_map->GetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL));
+ EXPECT_EQ(
+ CONTENT_SETTING_ASK,
+ host_content_settings_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
+ EXPECT_EQ(CONTENT_SETTING_ASK,
+ otr_map->GetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL));
+ EXPECT_EQ(
+ CONTENT_SETTING_ASK,
+ otr_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
+
+ // BLOCK should be inherited from the main map to the incognito map.
+ host_content_settings_map->SetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_BLOCK);
+ EXPECT_EQ(CONTENT_SETTING_BLOCK,
+ host_content_settings_map->GetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL));
+ EXPECT_EQ(
+ CONTENT_SETTING_BLOCK,
+ host_content_settings_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
+ EXPECT_EQ(CONTENT_SETTING_BLOCK,
+ otr_map->GetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL));
+ EXPECT_EQ(
+ CONTENT_SETTING_BLOCK,
+ otr_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
- otr_map->ShutdownOnUIThread();
+ // ALLOW should not be inherited from the main map to the incognito map (but
+ // it still overwrites the BLOCK, hence incognito reverts to ASK).
+ host_content_settings_map->SetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW);
+ EXPECT_EQ(CONTENT_SETTING_ALLOW,
+ host_content_settings_map->GetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL));
+ EXPECT_EQ(
+ CONTENT_SETTING_ALLOW,
+ host_content_settings_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
+ EXPECT_EQ(CONTENT_SETTING_ASK,
+ otr_map->GetDefaultContentSetting(
+ CONTENT_SETTINGS_TYPE_NOTIFICATIONS, NULL));
+ EXPECT_EQ(
+ CONTENT_SETTING_ASK,
+ otr_map->GetContentSetting(
+ host, host, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, std::string()));
}
// For a single Unicode encoded pattern, check if it gets converted to punycode
@@ -853,7 +975,7 @@ TEST_F(HostContentSettingsMapTest,
// Set pattern for JavaScript setting.
ContentSettingsPattern pattern =
- ContentSettingsPattern::FromString("[*.]example.com");
+ ContentSettingsPattern::FromString("[*.]example.com");
host_content_settings_map->SetContentSetting(
pattern,
ContentSettingsPattern::Wildcard(),
@@ -991,7 +1113,7 @@ TEST_F(HostContentSettingsMapTest, GetContentSetting) {
GURL host("http://example.com/");
GURL embedder("chrome://foo");
ContentSettingsPattern pattern =
- ContentSettingsPattern::FromString("[*.]example.com");
+ ContentSettingsPattern::FromString("[*.]example.com");
host_content_settings_map->SetContentSetting(
pattern,
ContentSettingsPattern::Wildcard(),

Powered by Google App Engine
This is Rietveld 408576698