| 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 e0312a73b2a8e4a5d3f873cf59b12e1be6f0019f..0a5e66e8f030bef9651a77169e91b039151471ee 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
 | 
| @@ -29,15 +29,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 kSubresourceFilterSuffix[] = ".SubresourceFilter";
 | 
| +
 | 
|  // 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.
 | 
| @@ -216,6 +218,7 @@ class ContentSubresourceFilterDriverFactoryTest
 | 
|        const content::Referrer& referrer,
 | 
|        ui::PageTransition transition,
 | 
|        RedirectChainMatchPattern expected_pattern,
 | 
| +      const std::string histogram_suffix,
 | 
|        bool expected_activation) {
 | 
|      base::HistogramTester tester;
 | 
|      EXPECT_CALL(*client(), ToggleNotificationVisibility(false)).Times(1);
 | 
| @@ -244,16 +247,18 @@ class ContentSubresourceFilterDriverFactoryTest
 | 
|      ExpectActivationSignalForFrame(main_rfh(), expected_activation);
 | 
|  
 | 
|      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());
 | 
|      }
 | 
|    }
 | 
| @@ -277,11 +282,12 @@ class ContentSubresourceFilterDriverFactoryTest
 | 
|        const content::Referrer& referrer,
 | 
|        ui::PageTransition transition,
 | 
|        RedirectChainMatchPattern expected_pattern,
 | 
| +      const std::string& histogram_suffix,
 | 
|        bool expected_activation) {
 | 
|      BlacklistURLWithRedirectsNavigateAndCommit(
 | 
|          blacklisted_urls, navigation_chain, threat_type, threat_type_metadata,
 | 
| -        referrer, transition, expected_pattern, expected_activation);
 | 
| -
 | 
| +        referrer, transition, expected_pattern, histogram_suffix,
 | 
| +        expected_activation);
 | 
|      NavigateAndCommitSubframe(GURL(kExampleLoginUrl), expected_activation);
 | 
|    }
 | 
|  
 | 
| @@ -294,7 +300,7 @@ class ContentSubresourceFilterDriverFactoryTest
 | 
|          safe_browsing::SB_THREAT_TYPE_URL_PHISHING,
 | 
|          safe_browsing::ThreatPatternType::SOCIAL_ENGINEERING_ADS,
 | 
|          content::Referrer(), ui::PAGE_TRANSITION_LINK, expected_pattern,
 | 
| -        expected_activation);
 | 
| +        std::string(), expected_activation);
 | 
|    }
 | 
|  
 | 
|    void EmulateDidDisallowFirstSubresourceMessage() {
 | 
| @@ -480,7 +486,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,
 | 
| @@ -527,9 +532,15 @@ TEST_F(ContentSubresourceFilterDriverFactoryTest, RedirectPatternTest) {
 | 
|          safe_browsing::SB_THREAT_TYPE_URL_PHISHING,
 | 
|          safe_browsing::ThreatPatternType::SOCIAL_ENGINEERING_ADS,
 | 
|          content::Referrer(), ui::PAGE_TRANSITION_LINK,
 | 
| -        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,
 | 
| +        kSubresourceFilterSuffix, false);
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -640,7 +651,7 @@ TEST_P(ContentSubresourceFilterDriverFactoryThreatTypeTest,
 | 
|        {GURL(kUrlA), GURL(kUrlB), GURL(kUrlC), test_url}, test_data.threat_type,
 | 
|        test_data.threat_type_metadata, content::Referrer(),
 | 
|        ui::PAGE_TRANSITION_LINK, test_data.expected_activation ? F0M0L1 : EMPTY,
 | 
| -      test_data.expected_activation);
 | 
| +      std::string(), test_data.expected_activation);
 | 
|  };
 | 
|  
 | 
|  TEST_P(ContentSubresourceFilterDriverFactoryActivationScopeTest,
 | 
| 
 |