Index: components/subresource_filter/content/browser/content_subresource_filter_driver_factory_unittest.cc |
diff --git a/components/subresource_filter/content/browser/content_subresource_filter_driver_factory_unittest.cc b/components/subresource_filter/content/browser/content_subresource_filter_driver_factory_unittest.cc |
index fa76b0dccfd366a76b9eec3b7f30c55ce7b5b9e3..a6068bc2e40e239ca31b38f119589faab22cbab2 100644 |
--- a/components/subresource_filter/content/browser/content_subresource_filter_driver_factory_unittest.cc |
+++ b/components/subresource_filter/content/browser/content_subresource_filter_driver_factory_unittest.cc |
@@ -28,15 +28,17 @@ namespace { |
const char kExampleUrlWithParams[] = "https://example.com/soceng?q=engsoc"; |
const char kExampleUrl[] = "https://example.com"; |
const char kExampleLoginUrl[] = "https://example.com/login"; |
-const char kMatchesPatternHistogramName[] = |
- "SubresourceFilter.PageLoad.RedirectChainMatchPattern"; |
-const char kNavigationChainSize[] = |
- "SubresourceFilter.PageLoad.RedirectChainLength"; |
const char kUrlA[] = "https://example_a.com"; |
const char kUrlB[] = "https://example_b.com"; |
const char kUrlC[] = "https://example_c.com"; |
const char kUrlD[] = "https://example_d.com"; |
+const char kMatchesPatternHistogramName[] = |
+ "SubresourceFilter.PageLoad.RedirectChainMatchPattern"; |
+const char kNavigationChainSize[] = |
+ "SubresourceFilter.PageLoad.RedirectChainLength"; |
+const char kSubresourceFilterOnlySuffix[] = ".SubresourceFilterOnly"; |
+ |
// Human readable representation of expected redirect chain match patterns. |
// The explanations for the buckets given for the following redirect chain: |
// A->B->C->D, where A is initial URL and D is a final URL. |
@@ -212,6 +214,7 @@ class ContentSubresourceFilterDriverFactoryTest |
safe_browsing::SBThreatType threat_type, |
safe_browsing::ThreatPatternType threat_type_metadata, |
RedirectChainMatchPattern expected_pattern, |
+ const std::string histogram_suffix, |
bool expected_activation) { |
base::HistogramTester tester; |
EXPECT_CALL(*client(), ToggleNotificationVisibility(false)).Times(1); |
@@ -247,16 +250,18 @@ class ContentSubresourceFilterDriverFactoryTest |
::testing::Mock::VerifyAndClearExpectations(driver()); |
if (expected_pattern != EMPTY) { |
- EXPECT_THAT(tester.GetAllSamples(kMatchesPatternHistogramName), |
- ::testing::ElementsAre(base::Bucket(expected_pattern, 1))); |
EXPECT_THAT( |
- tester.GetAllSamples(kNavigationChainSize), |
+ tester.GetAllSamples(kMatchesPatternHistogramName + histogram_suffix), |
+ ::testing::ElementsAre(base::Bucket(expected_pattern, 1))); |
+ EXPECT_THAT( |
+ tester.GetAllSamples(kNavigationChainSize + histogram_suffix), |
::testing::ElementsAre(base::Bucket(navigation_chain.size(), 1))); |
} else { |
- EXPECT_THAT(tester.GetAllSamples(kMatchesPatternHistogramName), |
- ::testing::IsEmpty()); |
- EXPECT_THAT(tester.GetAllSamples(kNavigationChainSize), |
+ EXPECT_THAT( |
+ tester.GetAllSamples(kMatchesPatternHistogramName + histogram_suffix), |
+ ::testing::IsEmpty()); |
+ EXPECT_THAT(tester.GetAllSamples(kNavigationChainSize + histogram_suffix), |
::testing::IsEmpty()); |
} |
} |
@@ -279,11 +284,11 @@ class ContentSubresourceFilterDriverFactoryTest |
safe_browsing::SBThreatType threat_type, |
safe_browsing::ThreatPatternType threat_type_metadata, |
RedirectChainMatchPattern expected_pattern, |
+ const std::string& histogram_suffix, |
bool expected_activation) { |
BlacklistURLWithRedirectsNavigateAndCommit( |
blacklisted_urls, navigation_chain, threat_type, threat_type_metadata, |
- expected_pattern, expected_activation); |
- |
+ expected_pattern, histogram_suffix, expected_activation); |
NavigateAndCommitSubframe(GURL(kExampleLoginUrl), expected_activation); |
} |
@@ -295,7 +300,7 @@ class ContentSubresourceFilterDriverFactoryTest |
blacklisted_urls, navigation_chain, |
safe_browsing::SB_THREAT_TYPE_URL_PHISHING, |
safe_browsing::ThreatPatternType::SOCIAL_ENGINEERING_ADS, |
- expected_pattern, expected_activation); |
+ expected_pattern, std::string(), expected_activation); |
} |
void EmulateDidDisallowFirstSubresourceMessage() { |
@@ -460,7 +465,6 @@ TEST_F(ContentSubresourceFilterDriverFactoryTest, RedirectPatternTest) { |
{{false, true}, {GURL(kUrlA), GURL(kUrlB)}, F0M0L1, true}, |
{{true, false}, {GURL(kUrlA), GURL(kUrlB)}, F1M0L0, false}, |
{{true, true}, {GURL(kUrlA), GURL(kUrlB)}, F1M0L1, true}, |
- |
{{false, false, false}, |
{GURL(kUrlA), GURL(kUrlB), GURL(kUrlC)}, |
EMPTY, |
@@ -506,9 +510,15 @@ TEST_F(ContentSubresourceFilterDriverFactoryTest, RedirectPatternTest) { |
test_data.blacklisted_urls, test_data.navigation_chain, |
safe_browsing::SB_THREAT_TYPE_URL_PHISHING, |
safe_browsing::ThreatPatternType::SOCIAL_ENGINEERING_ADS, |
- test_data.hit_expected_pattern, test_data.expected_activation); |
+ test_data.hit_expected_pattern, std::string(), |
+ test_data.expected_activation); |
NavigateAndExpectActivation({false}, {GURL("https://dummy.com")}, EMPTY, |
false); |
+ NavigateAndExpectActivation( |
+ test_data.blacklisted_urls, test_data.navigation_chain, |
+ safe_browsing::SB_THREAT_TYPE_SUBRESOURCE_FILTER, |
+ safe_browsing::ThreatPatternType::NONE, test_data.hit_expected_pattern, |
+ kSubresourceFilterOnlySuffix, false); |
} |
} |
@@ -575,7 +585,7 @@ TEST_P(ContentSubresourceFilterDriverFactoryThreatTypeTest, |
test_data.threat_type, |
test_data.threat_type_metadata, |
test_data.expected_activation ? F0M0L1 : EMPTY, |
- test_data.expected_activation); |
+ std::string(), test_data.expected_activation); |
}; |
TEST_P(ContentSubresourceFilterDriverFactoryActivationScopeTest, |