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 44e469cda75c612cfbfcea0cccd529cef6a2633c..f969f0bf71a3ae47f5338d4e90075654a3d623b1 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" |
@@ -99,9 +98,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 {} |
@@ -199,9 +197,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>())) {} |
@@ -262,12 +259,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; |
@@ -300,11 +295,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); |
} |
@@ -319,7 +314,6 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
void DismissMultipleTimesAndExpectBlock( |
const GURL& url, |
- content::PermissionType permission_type, |
ContentSettingsType content_settings_type, |
uint32_t iterations) { |
base::HistogramTester histograms; |
@@ -329,8 +323,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); |
@@ -346,11 +340,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]); |
@@ -358,8 +352,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); |
@@ -386,8 +379,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(), |
@@ -427,10 +419,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); |
} |
@@ -470,8 +460,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; |
@@ -499,19 +488,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); |
@@ -533,11 +519,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); |
@@ -573,15 +557,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, |
@@ -595,8 +578,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); |
@@ -637,7 +619,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, |
@@ -646,8 +627,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); |
@@ -695,39 +675,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); |
} |
@@ -746,17 +721,12 @@ 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); |
+ TestRequestPermissionInvalidUrl(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); |
#if defined(OS_ANDROID) || defined(OS_CHROMEOS) |
TestRequestPermissionInvalidUrl( |
- content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, |
CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); |
#endif |
} |
@@ -764,14 +734,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 |
@@ -783,42 +750,30 @@ 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, |
+ TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_GEOLOCATION, |
CONTENT_SETTING_ASK); |
- TestGrantAndRevoke_TestContent(content::PermissionType::NOTIFICATIONS, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
+ TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
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::PUSH_MESSAGING, |
- CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
+ TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, |
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_NOTIFICATIONS); |
+ 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) { |
@@ -841,8 +796,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); |
} |
@@ -854,7 +808,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); |
} |