Chromium Code Reviews| 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..a3ce320c74d70052e15ed137ff0fddf3e4b45f56 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 {} |
| @@ -203,9 +201,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 +263,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 +299,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 +318,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 +327,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 +344,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 +356,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 +383,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 +423,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 +464,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 +492,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 +523,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 +561,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 +582,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 +623,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 +631,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 +679,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 +725,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); |
|
raymes
2017/02/09 00:39:57
I think this got removed. Should PUSH still work h
|
| + 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 |
| } |
| @@ -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,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, |
|
raymes
2017/02/09 00:39:57
Same here - should this stay as PUSH?
|
| 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); |
|
raymes
2017/02/09 00:39:57
Same here
Timothy Loh
2017/02/10 07:25:38
I moved some code around to keep this test working
|
| - 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) { |
| @@ -845,8 +800,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 +812,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); |
| } |