| 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 7e09f909dd4ebdade53b5c46aaaaef0b860acfa2..f52e10024dd40799f74637a0224745a5235cf42e 100644
|
| --- a/chrome/browser/permissions/permission_context_base_unittest.cc
|
| +++ b/chrome/browser/permissions/permission_context_base_unittest.cc
|
| @@ -25,6 +25,7 @@
|
| #include "chrome/browser/permissions/permission_decision_auto_blocker.h"
|
| #include "chrome/browser/permissions/permission_queue_controller.h"
|
| #include "chrome/browser/permissions/permission_request_id.h"
|
| +#include "chrome/browser/permissions/permission_uma_util.h"
|
| #include "chrome/browser/permissions/permission_util.h"
|
| #include "chrome/common/chrome_features.h"
|
| #include "chrome/common/chrome_switches.h"
|
| @@ -288,7 +289,8 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
|
| ASSERT_EQ(1u, permission_context.decisions().size());
|
| EXPECT_EQ(decision, permission_context.decisions()[0]);
|
| EXPECT_TRUE(permission_context.tab_context_updated());
|
| -
|
| + histograms.ExpectBucketCount("Permissions.AutoBlocker.EmbargoReason",
|
| + PermissionEmbargoReason::NOT_EMBARGOED, 1);
|
| std::string decision_string;
|
| if (decision == CONTENT_SETTING_ALLOW)
|
| decision_string = "Accepted";
|
| @@ -352,6 +354,8 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
|
| "Permissions.Prompt.Dismissed.PriorDismissCount." +
|
| PermissionUtil::GetPermissionString(permission_type),
|
| i, 1);
|
| + histograms.ExpectTotalCount("Permissions.AutoBlocker.EmbargoReason",
|
| + i + 1);
|
| ASSERT_EQ(1u, permission_context.decisions().size());
|
| EXPECT_EQ(expected, permission_context.decisions()[0]);
|
| EXPECT_TRUE(permission_context.tab_context_updated());
|
| @@ -376,6 +380,15 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
|
|
|
| EXPECT_EQ(CONTENT_SETTING_BLOCK,
|
| permission_context.GetPermissionStatus(url, url));
|
| +
|
| + // The first N-1 dismissals should not result in an embargo being recorded.
|
| + // The embargo should have only been recorded once, on the Nth dismissal.
|
| + histograms.ExpectBucketCount("Permissions.AutoBlocker.EmbargoReason",
|
| + PermissionEmbargoReason::NOT_EMBARGOED,
|
| + iterations - 1);
|
| + histograms.ExpectBucketCount("Permissions.AutoBlocker.EmbargoReason",
|
| + PermissionEmbargoReason::REPEATED_DISMISSALS,
|
| + 1);
|
| }
|
|
|
| void TestBlockOnSeveralDismissals_TestContent() {
|
| @@ -406,6 +419,9 @@ class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness {
|
| i + 1);
|
| histograms.ExpectBucketCount(
|
| "Permissions.Prompt.Dismissed.PriorDismissCount.Geolocation", i, 1);
|
| + histograms.ExpectBucketCount("Permissions.AutoBlocker.EmbargoReason",
|
| + PermissionEmbargoReason::NOT_EMBARGOED,
|
| + i + 1);
|
| ASSERT_EQ(1u, permission_context.decisions().size());
|
| EXPECT_EQ(CONTENT_SETTING_ASK, permission_context.decisions()[0]);
|
| EXPECT_TRUE(permission_context.tab_context_updated());
|
| @@ -841,9 +857,13 @@ TEST_F(PermissionContextBaseTests, TestPermissionsBlacklistingBlocked) {
|
| const GURL url("https://www.example.com");
|
| std::set<std::string> blacklisted_permissions{"GEOLOCATION"};
|
| db_manager->BlacklistUrlPermissions(url, blacklisted_permissions);
|
| + base::HistogramTester histograms;
|
| TestPermissionsBlacklisting(content::PermissionType::GEOLOCATION,
|
| CONTENT_SETTINGS_TYPE_GEOLOCATION, db_manager,
|
| url, 2000 /* timeout */, CONTENT_SETTING_BLOCK);
|
| + histograms.ExpectUniqueSample(
|
| + "Permissions.AutoBlocker.EmbargoReason",
|
| + PermissionEmbargoReason::PERMISSIONS_BLACKLISTING, 1);
|
| }
|
|
|
| // Tests that a URL that is blacklisted for one permission can still request
|
| @@ -854,7 +874,10 @@ TEST_F(PermissionContextBaseTests, TestPermissionsBlacklistingAllowed) {
|
| const GURL url("https://www.example.com");
|
| std::set<std::string> blacklisted_permissions{"GEOLOCATION"};
|
| db_manager->BlacklistUrlPermissions(url, blacklisted_permissions);
|
| + base::HistogramTester histograms;
|
| TestPermissionsBlacklisting(content::PermissionType::NOTIFICATIONS,
|
| CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager,
|
| url, 2000 /* timeout */, CONTENT_SETTING_ALLOW);
|
| + histograms.ExpectUniqueSample("Permissions.AutoBlocker.EmbargoReason",
|
| + PermissionEmbargoReason::NOT_EMBARGOED, 1);
|
| }
|
|
|