Index: chrome/browser/permissions/permission_context_base_unittest.cc |
diff --git a/chrome/browser/permissions/permission_context_base_unittest.cc b/chrome/browser/permissions/permission_context_base_unittest.cc |
index 888e537e1dc4832d2f21fca11f1e63e3ce7107f7..d995730a4e33e9ae73c8c0416890c299136378ee 100644 |
--- a/chrome/browser/permissions/permission_context_base_unittest.cc |
+++ b/chrome/browser/permissions/permission_context_base_unittest.cc |
@@ -37,7 +37,6 @@ |
#include "components/safe_browsing_db/test_database_manager.h" |
#include "components/variations/variations_associated_data.h" |
#include "content/public/browser/browser_thread.h" |
-#include "content/public/browser/permission_type.h" |
#include "content/public/browser/render_frame_host.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/test/mock_render_process_host.h" |
@@ -103,9 +102,8 @@ class MockSafeBrowsingDatabaseManager |
class TestPermissionContext : public PermissionContextBase { |
public: |
TestPermissionContext(Profile* profile, |
- const content::PermissionType permission_type, |
const ContentSettingsType content_settings_type) |
- : PermissionContextBase(profile, permission_type, content_settings_type), |
+ : PermissionContextBase(profile, content_settings_type), |
tab_context_updated_(false) {} |
~TestPermissionContext() override {} |
@@ -136,7 +134,8 @@ class TestPermissionContext : public PermissionContextBase { |
const GURL& url_b) { |
auto* map = HostContentSettingsMapFactory::GetForProfile(profile()); |
return map->GetContentSetting(url_a.GetOrigin(), url_b.GetOrigin(), |
- content_settings_type(), std::string()); |
+ content_settings_storage_type(), |
+ std::string()); |
} |
void RequestPermission(content::WebContents* web_contents, |
@@ -203,9 +202,8 @@ class TestKillSwitchPermissionContext : public TestPermissionContext { |
public: |
TestKillSwitchPermissionContext( |
Profile* profile, |
- const content::PermissionType permission_type, |
const ContentSettingsType content_settings_type) |
- : TestPermissionContext(profile, permission_type, content_settings_type), |
+ : TestPermissionContext(profile, content_settings_type), |
field_trial_list_(base::MakeUnique<base::FieldTrialList>( |
base::MakeUnique<base::MockEntropyProvider>())) {} |
@@ -266,12 +264,10 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
#endif |
} |
- void TestAskAndDecide_TestContent(content::PermissionType permission, |
- ContentSettingsType content_settings_type, |
+ void TestAskAndDecide_TestContent(ContentSettingsType content_settings_type, |
ContentSetting decision, |
bool persist) { |
- TestPermissionContext permission_context(profile(), permission, |
- content_settings_type); |
+ TestPermissionContext permission_context(profile(), content_settings_type); |
GURL url("https://www.google.com"); |
NavigateAndCommit(url); |
base::HistogramTester histograms; |
@@ -304,11 +300,11 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
if (decision_string.size()) { |
histograms.ExpectUniqueSample( |
"Permissions.Prompt." + decision_string + ".PriorDismissCount." + |
- PermissionUtil::GetPermissionString(permission), |
+ PermissionUtil::GetPermissionString(content_settings_type), |
0, 1); |
histograms.ExpectUniqueSample( |
"Permissions.Prompt." + decision_string + ".PriorIgnoreCount." + |
- PermissionUtil::GetPermissionString(permission), |
+ PermissionUtil::GetPermissionString(content_settings_type), |
0, 1); |
} |
@@ -323,7 +319,6 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
void DismissMultipleTimesAndExpectBlock( |
const GURL& url, |
- content::PermissionType permission_type, |
ContentSettingsType content_settings_type, |
uint32_t iterations) { |
base::HistogramTester histograms; |
@@ -333,8 +328,8 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
for (uint32_t i = 0; i < iterations; ++i) { |
ContentSetting expected = |
(i < 2) ? CONTENT_SETTING_ASK : CONTENT_SETTING_BLOCK; |
- TestPermissionContext permission_context( |
- profile(), permission_type, content_settings_type); |
+ TestPermissionContext permission_context(profile(), |
+ content_settings_type); |
const PermissionRequestID id( |
web_contents()->GetRenderProcessHost()->GetID(), |
web_contents()->GetMainFrame()->GetRoutingID(), i); |
@@ -350,11 +345,11 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
base::Unretained(&permission_context))); |
histograms.ExpectTotalCount( |
"Permissions.Prompt.Dismissed.PriorDismissCount." + |
- PermissionUtil::GetPermissionString(permission_type), |
+ PermissionUtil::GetPermissionString(content_settings_type), |
i + 1); |
histograms.ExpectBucketCount( |
"Permissions.Prompt.Dismissed.PriorDismissCount." + |
- PermissionUtil::GetPermissionString(permission_type), |
+ PermissionUtil::GetPermissionString(content_settings_type), |
i, 1); |
ASSERT_EQ(1u, permission_context.decisions().size()); |
EXPECT_EQ(expected, permission_context.decisions()[0]); |
@@ -362,8 +357,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
EXPECT_EQ(expected, permission_context.GetPermissionStatus(url, url)); |
} |
- TestPermissionContext permission_context(profile(), permission_type, |
- content_settings_type); |
+ TestPermissionContext permission_context(profile(), content_settings_type); |
const PermissionRequestID id( |
web_contents()->GetRenderProcessHost()->GetID(), |
web_contents()->GetMainFrame()->GetRoutingID(), -1); |
@@ -390,8 +384,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
// First, ensure that > 3 dismissals behaves correctly. |
for (uint32_t i = 0; i < 4; ++i) { |
TestPermissionContext permission_context( |
- profile(), content::PermissionType::GEOLOCATION, |
- CONTENT_SETTINGS_TYPE_GEOLOCATION); |
+ profile(), CONTENT_SETTINGS_TYPE_GEOLOCATION); |
const PermissionRequestID id( |
web_contents()->GetRenderProcessHost()->GetID(), |
@@ -431,10 +424,8 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
// Sanity check independence per permission type by checking two of them. |
DismissMultipleTimesAndExpectBlock(url, |
- content::PermissionType::GEOLOCATION, |
CONTENT_SETTINGS_TYPE_GEOLOCATION, 3); |
DismissMultipleTimesAndExpectBlock(url, |
- content::PermissionType::NOTIFICATIONS, |
CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 3); |
} |
@@ -474,8 +465,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
for (uint32_t i = 0; i < 5; ++i) { |
TestPermissionContext permission_context( |
- profile(), content::PermissionType::MIDI_SYSEX, |
- CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
+ profile(), CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
ContentSetting expected = |
(i < 4) ? CONTENT_SETTING_ASK : CONTENT_SETTING_BLOCK; |
@@ -503,19 +493,16 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
} |
// Ensure that we finish in the block state. |
- TestPermissionContext permission_context( |
- profile(), content::PermissionType::MIDI_SYSEX, |
- CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
+ TestPermissionContext permission_context(profile(), |
+ CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
EXPECT_EQ(CONTENT_SETTING_BLOCK, |
permission_context.GetPermissionStatus(url, url)); |
variations::testing::ClearAllVariationParams(); |
} |
void TestRequestPermissionInvalidUrl( |
- content::PermissionType permission_type, |
ContentSettingsType content_settings_type) { |
- TestPermissionContext permission_context(profile(), permission_type, |
- content_settings_type); |
+ TestPermissionContext permission_context(profile(), content_settings_type); |
GURL url; |
ASSERT_FALSE(url.is_valid()); |
NavigateAndCommit(url); |
@@ -537,11 +524,9 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
permission_context.GetContentSettingFromMap(url, url)); |
} |
- void TestGrantAndRevoke_TestContent(content::PermissionType permission_type, |
- ContentSettingsType content_settings_type, |
+ void TestGrantAndRevoke_TestContent(ContentSettingsType content_settings_type, |
ContentSetting expected_default) { |
- TestPermissionContext permission_context(profile(), permission_type, |
- content_settings_type); |
+ TestPermissionContext permission_context(profile(), content_settings_type); |
GURL url("https://www.google.com"); |
NavigateAndCommit(url); |
@@ -577,15 +562,14 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
} |
void TestGlobalPermissionsKillSwitch( |
- content::PermissionType permission_type, |
ContentSettingsType content_settings_type) { |
- TestKillSwitchPermissionContext permission_context( |
- profile(), permission_type, content_settings_type); |
+ TestKillSwitchPermissionContext permission_context(profile(), |
+ content_settings_type); |
permission_context.ResetFieldTrialList(); |
EXPECT_FALSE(permission_context.IsPermissionKillSwitchOn()); |
std::map<std::string, std::string> params; |
- params[PermissionUtil::GetPermissionString(permission_type)] = |
+ params[PermissionUtil::GetPermissionString(content_settings_type)] = |
kPermissionsKillSwitchBlockedValue; |
variations::AssociateVariationParams( |
kPermissionsKillSwitchFieldStudy, kPermissionsKillSwitchTestGroup, |
@@ -599,8 +583,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
// HostContentSettingsMap. |
void TestParallelRequests(ContentSetting response) { |
TestPermissionContext permission_context( |
- profile(), content::PermissionType::NOTIFICATIONS, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
+ profile(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
GURL url("http://www.google.com"); |
NavigateAndCommit(url); |
@@ -641,7 +624,6 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
} |
void TestPermissionsBlacklisting( |
- content::PermissionType permission_type, |
ContentSettingsType content_settings_type, |
scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> db_manager, |
const GURL& url, |
@@ -650,8 +632,7 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
NavigateAndCommit(url); |
base::test::ScopedFeatureList scoped_feature_list; |
scoped_feature_list.InitAndEnableFeature(features::kPermissionsBlacklist); |
- TestPermissionContext permission_context(profile(), permission_type, |
- content_settings_type); |
+ TestPermissionContext permission_context(profile(), content_settings_type); |
PermissionDecisionAutoBlocker::GetForProfile(profile()) |
->SetSafeBrowsingDatabaseManagerAndTimeoutForTesting(db_manager, |
timeout); |
@@ -699,39 +680,34 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
// Simulates clicking Accept. The permission should be granted and |
// saved for future use. |
TEST_F(PermissionContextBaseTests, TestAskAndGrantPersist) { |
- TestAskAndDecide_TestContent(content::PermissionType::NOTIFICATIONS, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
+ TestAskAndDecide_TestContent(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
CONTENT_SETTING_ALLOW, true); |
} |
// Simulates clicking Accept. The permission should be granted, but not |
// persisted. |
TEST_F(PermissionContextBaseTests, TestAskAndGrantNoPersist) { |
- TestAskAndDecide_TestContent(content::PermissionType::NOTIFICATIONS, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
+ TestAskAndDecide_TestContent(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
CONTENT_SETTING_ALLOW, false); |
} |
// Simulates clicking Block. The permission should be denied and |
// saved for future use. |
TEST_F(PermissionContextBaseTests, TestAskAndBlockPersist) { |
- TestAskAndDecide_TestContent(content::PermissionType::GEOLOCATION, |
- CONTENT_SETTINGS_TYPE_GEOLOCATION, |
+ TestAskAndDecide_TestContent(CONTENT_SETTINGS_TYPE_GEOLOCATION, |
CONTENT_SETTING_BLOCK, true); |
} |
// Simulates clicking Block. The permission should be denied, but not persisted. |
TEST_F(PermissionContextBaseTests, TestAskAndBlockNoPersist) { |
- TestAskAndDecide_TestContent(content::PermissionType::GEOLOCATION, |
- CONTENT_SETTINGS_TYPE_GEOLOCATION, |
+ TestAskAndDecide_TestContent(CONTENT_SETTINGS_TYPE_GEOLOCATION, |
CONTENT_SETTING_BLOCK, false); |
} |
// Simulates clicking Dismiss (X) in the infobar/bubble. |
// The permission should be denied but not saved for future use. |
TEST_F(PermissionContextBaseTests, TestAskAndDismiss) { |
- TestAskAndDecide_TestContent(content::PermissionType::MIDI_SYSEX, |
- CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
+ TestAskAndDecide_TestContent(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
CONTENT_SETTING_ASK, false); |
} |
@@ -750,17 +726,11 @@ TEST_F(PermissionContextBaseTests, TestDismissVariations) { |
// Simulates non-valid requesting URL. |
// The permission should be denied but not saved for future use. |
TEST_F(PermissionContextBaseTests, TestNonValidRequestingUrl) { |
- TestRequestPermissionInvalidUrl(content::PermissionType::GEOLOCATION, |
- CONTENT_SETTINGS_TYPE_GEOLOCATION); |
- TestRequestPermissionInvalidUrl(content::PermissionType::NOTIFICATIONS, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
- TestRequestPermissionInvalidUrl(content::PermissionType::MIDI_SYSEX, |
- CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
- TestRequestPermissionInvalidUrl(content::PermissionType::PUSH_MESSAGING, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
+ TestRequestPermissionInvalidUrl(CONTENT_SETTINGS_TYPE_GEOLOCATION); |
+ TestRequestPermissionInvalidUrl(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
+ TestRequestPermissionInvalidUrl(CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
#if defined(OS_ANDROID) || defined(OS_CHROMEOS) |
TestRequestPermissionInvalidUrl( |
- content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); |
#endif |
} |
@@ -768,14 +738,11 @@ TEST_F(PermissionContextBaseTests, TestNonValidRequestingUrl) { |
#if defined(OS_ANDROID) |
// This test is specific to Android because other platforms use bubbles. |
TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithInfobars) { |
- TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, |
- CONTENT_SETTINGS_TYPE_GEOLOCATION, |
+ TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_GEOLOCATION, |
CONTENT_SETTING_ASK); |
- TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, |
- CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
+ TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
CONTENT_SETTING_ASK); |
TestGrantAndRevoke_TestContent( |
- content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTING_ASK); |
// TODO(timvolodine): currently no test for |
// CONTENT_SETTINGS_TYPE_NOTIFICATIONS because notification permissions work |
@@ -787,42 +754,28 @@ TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithInfobars) { |
// Simulates granting and revoking of permissions using permission bubbles. |
// This test shouldn't run on mobile because mobile platforms use infobars. |
TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithBubbles) { |
- TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, |
- CONTENT_SETTINGS_TYPE_GEOLOCATION, |
- CONTENT_SETTING_ASK); |
- TestGrantAndRevoke_TestContent(content::PermissionType::NOTIFICATIONS, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
+ TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_GEOLOCATION, |
CONTENT_SETTING_ASK); |
- TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, |
- CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
+ TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
CONTENT_SETTING_ASK); |
- TestGrantAndRevoke_TestContent(content::PermissionType::PUSH_MESSAGING, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
+ TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, |
CONTENT_SETTING_ASK); |
} |
#endif |
// Tests the global kill switch by enabling/disabling the Field Trials. |
TEST_F(PermissionContextBaseTests, TestGlobalKillSwitch) { |
- TestGlobalPermissionsKillSwitch(content::PermissionType::GEOLOCATION, |
- CONTENT_SETTINGS_TYPE_GEOLOCATION); |
- TestGlobalPermissionsKillSwitch(content::PermissionType::NOTIFICATIONS, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
- TestGlobalPermissionsKillSwitch(content::PermissionType::MIDI_SYSEX, |
- CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
- TestGlobalPermissionsKillSwitch(content::PermissionType::PUSH_MESSAGING, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
- TestGlobalPermissionsKillSwitch(content::PermissionType::DURABLE_STORAGE, |
- CONTENT_SETTINGS_TYPE_DURABLE_STORAGE); |
+ TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_GEOLOCATION); |
+ TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
+ TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_MIDI_SYSEX); |
+ TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); |
+ TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE); |
#if defined(OS_ANDROID) || defined(OS_CHROMEOS) |
TestGlobalPermissionsKillSwitch( |
- content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); |
#endif |
- TestGlobalPermissionsKillSwitch(content::PermissionType::AUDIO_CAPTURE, |
- CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); |
- TestGlobalPermissionsKillSwitch(content::PermissionType::VIDEO_CAPTURE, |
- CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); |
+ TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); |
+ TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); |
} |
TEST_F(PermissionContextBaseTests, TestParallelRequestsAllowed) { |
@@ -845,8 +798,7 @@ TEST_F(PermissionContextBaseTests, TestPermissionsBlacklistingBlocked) { |
const GURL url("https://www.example.com"); |
std::set<std::string> blacklisted_permissions{"GEOLOCATION"}; |
db_manager->BlacklistUrlPermissions(url, blacklisted_permissions); |
- TestPermissionsBlacklisting(content::PermissionType::GEOLOCATION, |
- CONTENT_SETTINGS_TYPE_GEOLOCATION, db_manager, |
+ TestPermissionsBlacklisting(CONTENT_SETTINGS_TYPE_GEOLOCATION, db_manager, |
url, 2000 /* timeout */, CONTENT_SETTING_BLOCK); |
} |
@@ -858,7 +810,6 @@ TEST_F(PermissionContextBaseTests, TestPermissionsBlacklistingAllowed) { |
const GURL url("https://www.example.com"); |
std::set<std::string> blacklisted_permissions{"GEOLOCATION"}; |
db_manager->BlacklistUrlPermissions(url, blacklisted_permissions); |
- TestPermissionsBlacklisting(content::PermissionType::NOTIFICATIONS, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager, |
+ TestPermissionsBlacklisting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager, |
url, 2000 /* timeout */, CONTENT_SETTING_ALLOW); |
} |