| 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);
|
| }
|
|
|