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