Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(466)

Side by Side Diff: components/subresource_filter/content/browser/content_subresource_filter_driver_factory_unittest.cc

Issue 2798983002: Introduce subresource_filter::Configuration. (Closed)
Patch Set: Address comments from csharrison@. Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/subresource_filter/content/browser/content_subresource_filt er_driver_factory.h" 5 #include "components/subresource_filter/content/browser/content_subresource_filt er_driver_factory.h"
6 6
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ptr_util.h" 8 #include "base/memory/ptr_util.h"
9 #include "base/metrics/field_trial.h" 9 #include "base/metrics/field_trial.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 451
452 std::vector<std::unique_ptr<content::NavigationThrottle>> throttles; 452 std::vector<std::unique_ptr<content::NavigationThrottle>> throttles;
453 factory()->throttle_manager()->MaybeAppendNavigationThrottles( 453 factory()->throttle_manager()->MaybeAppendNavigationThrottles(
454 navigation_handle, &throttles); 454 navigation_handle, &throttles);
455 for (auto& it : throttles) 455 for (auto& it : throttles)
456 navigation_handle->RegisterThrottleForTesting(std::move(it)); 456 navigation_handle->RegisterThrottleForTesting(std::move(it));
457 } 457 }
458 458
459 private: 459 private:
460 static bool expected_measure_performance() { 460 static bool expected_measure_performance() {
461 const double rate = GetPerformanceMeasurementRate(); 461 const double rate = GetActiveConfiguration().performance_measurement_rate;
462 // Note: The case when 0 < rate < 1 is not deterministic, don't test it. 462 // Note: The case when 0 < rate < 1 is not deterministic, don't test it.
463 EXPECT_TRUE(rate == 0 || rate == 1); 463 EXPECT_TRUE(rate == 0 || rate == 1);
464 return rate == 1; 464 return rate == 1;
465 } 465 }
466 466
467 testing::TestRulesetCreator test_ruleset_creator_; 467 testing::TestRulesetCreator test_ruleset_creator_;
468 testing::TestRulesetPair test_ruleset_pair_; 468 testing::TestRulesetPair test_ruleset_pair_;
469 469
470 // Owned by the factory. 470 // Owned by the factory.
471 MockSubresourceFilterClient* client_; 471 MockSubresourceFilterClient* client_;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 512
513 TEST_F(ContentSubresourceFilterDriverFactoryTest, 513 TEST_F(ContentSubresourceFilterDriverFactoryTest,
514 ActivateForFrameHostDisabledFeature) { 514 ActivateForFrameHostDisabledFeature) {
515 // Activation scope is set to NONE => no activation should happen even if URL 515 // Activation scope is set to NONE => no activation should happen even if URL
516 // which is visited was a SB hit. 516 // which is visited was a SB hit.
517 base::FieldTrialList field_trial_list(nullptr); 517 base::FieldTrialList field_trial_list(nullptr);
518 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 518 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
519 base::FeatureList::OVERRIDE_DISABLE_FEATURE, kActivationLevelEnabled, 519 base::FeatureList::OVERRIDE_DISABLE_FEATURE, kActivationLevelEnabled,
520 kActivationScopeAllSites, 520 kActivationScopeAllSites,
521 kActivationListSocialEngineeringAdsInterstitial); 521 kActivationListSocialEngineeringAdsInterstitial);
522 factory()->set_configuration_for_testing(GetActiveConfiguration());
522 const GURL url(kExampleUrlWithParams); 523 const GURL url(kExampleUrlWithParams);
523 NavigateAndExpectActivation({true}, {url}, NO_REDIRECTS_HIT, 524 NavigateAndExpectActivation({true}, {url}, NO_REDIRECTS_HIT,
524 ActivationDecision::ACTIVATION_DISABLED); 525 ActivationDecision::ACTIVATION_DISABLED);
525 factory()->AddHostOfURLToWhitelistSet(url); 526 factory()->AddHostOfURLToWhitelistSet(url);
526 NavigateAndExpectActivation({true}, {url}, NO_REDIRECTS_HIT, 527 NavigateAndExpectActivation({true}, {url}, NO_REDIRECTS_HIT,
527 ActivationDecision::ACTIVATION_DISABLED); 528 ActivationDecision::ACTIVATION_DISABLED);
528 } 529 }
529 530
530 TEST_F(ContentSubresourceFilterDriverFactoryTest, NoActivationWhenNoMatch) { 531 TEST_F(ContentSubresourceFilterDriverFactoryTest, NoActivationWhenNoMatch) {
531 base::FieldTrialList field_trial_list(nullptr); 532 base::FieldTrialList field_trial_list(nullptr);
532 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 533 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
533 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 534 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
534 kActivationScopeActivationList, 535 kActivationScopeActivationList,
535 kActivationListSocialEngineeringAdsInterstitial); 536 kActivationListSocialEngineeringAdsInterstitial);
537 factory()->set_configuration_for_testing(GetActiveConfiguration());
536 NavigateAndExpectActivation({false}, {GURL(kExampleUrl)}, EMPTY, 538 NavigateAndExpectActivation({false}, {GURL(kExampleUrl)}, EMPTY,
537 ActivationDecision::ACTIVATION_LIST_NOT_MATCHED); 539 ActivationDecision::ACTIVATION_LIST_NOT_MATCHED);
538 } 540 }
539 541
540 TEST_F(ContentSubresourceFilterDriverFactoryTest, 542 TEST_F(ContentSubresourceFilterDriverFactoryTest,
541 SpecialCaseNavigationAllSitesEnabled) { 543 SpecialCaseNavigationAllSitesEnabled) {
542 // Check that when the experiment is enabled for all site, the activation 544 // Check that when the experiment is enabled for all site, the activation
543 // signal is always sent. 545 // signal is always sent.
544 base::FieldTrialList field_trial_list(nullptr); 546 base::FieldTrialList field_trial_list(nullptr);
545 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 547 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
546 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 548 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
547 kActivationScopeAllSites); 549 kActivationScopeAllSites);
550 factory()->set_configuration_for_testing(GetActiveConfiguration());
548 EmulateInPageNavigation({false}, EMPTY, ActivationDecision::ACTIVATED); 551 EmulateInPageNavigation({false}, EMPTY, ActivationDecision::ACTIVATED);
549 } 552 }
550 553
551 TEST_F(ContentSubresourceFilterDriverFactoryTest, 554 TEST_F(ContentSubresourceFilterDriverFactoryTest,
552 SpecialCaseNavigationActivationListEnabled) { 555 SpecialCaseNavigationActivationListEnabled) {
553 base::FieldTrialList field_trial_list(nullptr); 556 base::FieldTrialList field_trial_list(nullptr);
554 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 557 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
555 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 558 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
556 kActivationScopeActivationList, 559 kActivationScopeActivationList,
557 kActivationListSocialEngineeringAdsInterstitial); 560 kActivationListSocialEngineeringAdsInterstitial);
561 factory()->set_configuration_for_testing(GetActiveConfiguration());
558 EmulateInPageNavigation({true}, NO_REDIRECTS_HIT, 562 EmulateInPageNavigation({true}, NO_REDIRECTS_HIT,
559 ActivationDecision::ACTIVATED); 563 ActivationDecision::ACTIVATED);
560 } 564 }
561 565
562 TEST_F(ContentSubresourceFilterDriverFactoryTest, 566 TEST_F(ContentSubresourceFilterDriverFactoryTest,
563 SpecialCaseNavigationActivationListEnabledWithPerformanceMeasurement) { 567 SpecialCaseNavigationActivationListEnabledWithPerformanceMeasurement) {
564 base::FieldTrialList field_trial_list(nullptr); 568 base::FieldTrialList field_trial_list(nullptr);
565 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 569 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
566 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 570 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
567 kActivationScopeActivationList, 571 kActivationScopeActivationList,
568 kActivationListSocialEngineeringAdsInterstitial, 572 kActivationListSocialEngineeringAdsInterstitial,
569 "1" /* performance_measurement_rate */); 573 "1" /* performance_measurement_rate */);
574 factory()->set_configuration_for_testing(GetActiveConfiguration());
570 EmulateInPageNavigation({true}, NO_REDIRECTS_HIT, 575 EmulateInPageNavigation({true}, NO_REDIRECTS_HIT,
571 ActivationDecision::ACTIVATED); 576 ActivationDecision::ACTIVATED);
572 } 577 }
573 578
574 TEST_F(ContentSubresourceFilterDriverFactoryTest, FailedNavigation) { 579 TEST_F(ContentSubresourceFilterDriverFactoryTest, FailedNavigation) {
575 base::FieldTrialList field_trial_list(nullptr); 580 base::FieldTrialList field_trial_list(nullptr);
576 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 581 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
577 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 582 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
578 kActivationScopeAllSites); 583 kActivationScopeAllSites);
584 factory()->set_configuration_for_testing(GetActiveConfiguration());
579 const GURL url(kExampleUrl); 585 const GURL url(kExampleUrl);
580 NavigateAndExpectActivation({false}, {url}, EMPTY, 586 NavigateAndExpectActivation({false}, {url}, EMPTY,
581 ActivationDecision::ACTIVATED); 587 ActivationDecision::ACTIVATED);
582 EmulateFailedNavigationAndExpectNoActivation(url); 588 EmulateFailedNavigationAndExpectNoActivation(url);
583 } 589 }
584 590
585 // TODO(melandory): refactor the test so it no longer require the current 591 // TODO(melandory): refactor the test so it no longer require the current
586 // activation list to be matching. 592 // activation list to be matching.
587 TEST_F(ContentSubresourceFilterDriverFactoryTest, RedirectPatternTest) { 593 TEST_F(ContentSubresourceFilterDriverFactoryTest, RedirectPatternTest) {
588 base::FieldTrialList field_trial_list(nullptr); 594 base::FieldTrialList field_trial_list(nullptr);
589 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 595 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
590 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 596 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
591 kActivationScopeActivationList, 597 kActivationScopeActivationList,
592 kActivationListSocialEngineeringAdsInterstitial); 598 kActivationListSocialEngineeringAdsInterstitial);
599 factory()->set_configuration_for_testing(GetActiveConfiguration());
593 struct RedirectRedirectChainMatchPatternTestData { 600 struct RedirectRedirectChainMatchPatternTestData {
594 std::vector<bool> blacklisted_urls; 601 std::vector<bool> blacklisted_urls;
595 std::vector<GURL> navigation_chain; 602 std::vector<GURL> navigation_chain;
596 RedirectChainMatchPattern hit_expected_pattern; 603 RedirectChainMatchPattern hit_expected_pattern;
597 ActivationDecision expected_activation_decision; 604 ActivationDecision expected_activation_decision;
598 } kRedirectRedirectChainMatchPatternTestData[] = { 605 } kRedirectRedirectChainMatchPatternTestData[] = {
599 {{false}, 606 {{false},
600 {GURL(kUrlA)}, 607 {GURL(kUrlA)},
601 EMPTY, 608 EMPTY,
602 ActivationDecision::ACTIVATION_LIST_NOT_MATCHED}, 609 ActivationDecision::ACTIVATION_LIST_NOT_MATCHED},
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 ActivationDecision::ACTIVATION_LIST_NOT_MATCHED); 683 ActivationDecision::ACTIVATION_LIST_NOT_MATCHED);
677 #endif 684 #endif
678 } 685 }
679 } 686 }
680 687
681 TEST_F(ContentSubresourceFilterDriverFactoryTest, NotificationVisibility) { 688 TEST_F(ContentSubresourceFilterDriverFactoryTest, NotificationVisibility) {
682 base::FieldTrialList field_trial_list(nullptr); 689 base::FieldTrialList field_trial_list(nullptr);
683 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 690 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
684 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 691 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
685 kActivationScopeAllSites); 692 kActivationScopeAllSites);
693 factory()->set_configuration_for_testing(GetActiveConfiguration());
686 694
687 NavigateAndExpectActivation({false}, {GURL(kExampleUrl)}, EMPTY, 695 NavigateAndExpectActivation({false}, {GURL(kExampleUrl)}, EMPTY,
688 ActivationDecision::ACTIVATED); 696 ActivationDecision::ACTIVATED);
689 EXPECT_CALL(*client(), ToggleNotificationVisibility(true)).Times(1); 697 EXPECT_CALL(*client(), ToggleNotificationVisibility(true)).Times(1);
690 NavigateSubframeAndExpectCheckResult(GURL(kDisallowedUrl), 698 NavigateSubframeAndExpectCheckResult(GURL(kDisallowedUrl),
691 true /* expect_cancelled */); 699 true /* expect_cancelled */);
692 } 700 }
693 701
694 TEST_F(ContentSubresourceFilterDriverFactoryTest, 702 TEST_F(ContentSubresourceFilterDriverFactoryTest,
695 SuppressNotificationVisibility) { 703 SuppressNotificationVisibility) {
696 base::FieldTrialList field_trial_list(nullptr); 704 base::FieldTrialList field_trial_list(nullptr);
697 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 705 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
698 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 706 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
699 kActivationScopeAllSites, "" /* activation_lists */, 707 kActivationScopeAllSites, "" /* activation_lists */,
700 "" /* performance_measurement_rate */, 708 "" /* performance_measurement_rate */,
701 "true" /* suppress_notifications */); 709 "true" /* suppress_notifications */);
710 factory()->set_configuration_for_testing(GetActiveConfiguration());
702 711
703 NavigateAndExpectActivation({false}, {GURL(kExampleUrl)}, EMPTY, 712 NavigateAndExpectActivation({false}, {GURL(kExampleUrl)}, EMPTY,
704 ActivationDecision::ACTIVATED); 713 ActivationDecision::ACTIVATED);
705 EXPECT_CALL(*client(), ToggleNotificationVisibility(::testing::_)).Times(0); 714 EXPECT_CALL(*client(), ToggleNotificationVisibility(::testing::_)).Times(0);
706 NavigateSubframeAndExpectCheckResult(GURL(kDisallowedUrl), 715 NavigateSubframeAndExpectCheckResult(GURL(kDisallowedUrl),
707 true /* expect_cancelled */); 716 true /* expect_cancelled */);
708 } 717 }
709 718
710 TEST_F(ContentSubresourceFilterDriverFactoryTest, 719 TEST_F(ContentSubresourceFilterDriverFactoryTest,
711 InactiveMainFrame_SubframeNotFiltered) { 720 InactiveMainFrame_SubframeNotFiltered) {
(...skipping 22 matching lines...) Expand all
734 SCOPED_TRACE(::testing::Message("referrer = \"") 743 SCOPED_TRACE(::testing::Message("referrer = \"")
735 << test_case.referrer.url << "\"" 744 << test_case.referrer.url << "\""
736 << " transition = \"" << test_case.transition << "\""); 745 << " transition = \"" << test_case.transition << "\"");
737 746
738 base::FieldTrialList field_trial_list(nullptr); 747 base::FieldTrialList field_trial_list(nullptr);
739 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 748 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
740 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 749 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
741 kActivationScopeAllSites, "" /* activation_lists */, 750 kActivationScopeAllSites, "" /* activation_lists */,
742 "" /* performance_measurement_rate */, "" /* suppress_notifications */, 751 "" /* performance_measurement_rate */, "" /* suppress_notifications */,
743 "true" /* whitelist_site_on_reload */); 752 "true" /* whitelist_site_on_reload */);
753 factory()->set_configuration_for_testing(GetActiveConfiguration());
744 754
745 NavigateAndExpectActivation( 755 NavigateAndExpectActivation(
746 {false}, {GURL(kExampleUrl)}, 756 {false}, {GURL(kExampleUrl)},
747 safe_browsing::SB_THREAT_TYPE_URL_PHISHING, 757 safe_browsing::SB_THREAT_TYPE_URL_PHISHING,
748 safe_browsing::ThreatPatternType::SOCIAL_ENGINEERING_ADS, 758 safe_browsing::ThreatPatternType::SOCIAL_ENGINEERING_ADS,
749 test_case.referrer, test_case.transition, EMPTY, 759 test_case.referrer, test_case.transition, EMPTY,
750 test_case.expected_activation_decision); 760 test_case.expected_activation_decision);
751 // Verify that if the first URL failed to activate, subsequent same-origin 761 // Verify that if the first URL failed to activate, subsequent same-origin
752 // navigations also fail to activate. 762 // navigations also fail to activate.
753 NavigateAndExpectActivation({false}, {GURL(kExampleUrlWithParams)}, EMPTY, 763 NavigateAndExpectActivation({false}, {GURL(kExampleUrlWithParams)}, EMPTY,
754 test_case.expected_activation_decision); 764 test_case.expected_activation_decision);
755 } 765 }
756 } 766 }
757 767
758 TEST_P(ContentSubresourceFilterDriverFactoryActivationLevelTest, 768 TEST_P(ContentSubresourceFilterDriverFactoryActivationLevelTest,
759 ActivateForFrameState) { 769 ActivateForFrameState) {
760 const ActivationLevelTestData& test_data = GetParam(); 770 const ActivationLevelTestData& test_data = GetParam();
761 base::FieldTrialList field_trial_list(nullptr); 771 base::FieldTrialList field_trial_list(nullptr);
762 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 772 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
763 base::FeatureList::OVERRIDE_ENABLE_FEATURE, test_data.activation_level, 773 base::FeatureList::OVERRIDE_ENABLE_FEATURE, test_data.activation_level,
764 kActivationScopeActivationList, 774 kActivationScopeActivationList,
765 kActivationListSocialEngineeringAdsInterstitial); 775 kActivationListSocialEngineeringAdsInterstitial);
776 factory()->set_configuration_for_testing(GetActiveConfiguration());
766 777
767 const GURL url(kExampleUrlWithParams); 778 const GURL url(kExampleUrlWithParams);
768 NavigateAndExpectActivation({true}, {url}, NO_REDIRECTS_HIT, 779 NavigateAndExpectActivation({true}, {url}, NO_REDIRECTS_HIT,
769 test_data.expected_activation_decision); 780 test_data.expected_activation_decision);
770 factory()->AddHostOfURLToWhitelistSet(url); 781 factory()->AddHostOfURLToWhitelistSet(url);
771 NavigateAndExpectActivation( 782 NavigateAndExpectActivation(
772 {true}, {GURL(kExampleUrlWithParams)}, NO_REDIRECTS_HIT, 783 {true}, {GURL(kExampleUrlWithParams)}, NO_REDIRECTS_HIT,
773 GetMaximumActivationLevel() == ActivationLevel::DISABLED 784 GetActiveConfiguration().activation_level == ActivationLevel::DISABLED
774 ? ActivationDecision::ACTIVATION_DISABLED 785 ? ActivationDecision::ACTIVATION_DISABLED
775 : ActivationDecision::URL_WHITELISTED); 786 : ActivationDecision::URL_WHITELISTED);
776 } 787 }
777 788
778 TEST_P(ContentSubresourceFilterDriverFactoryThreatTypeTest, 789 TEST_P(ContentSubresourceFilterDriverFactoryThreatTypeTest,
779 ActivateForTheListType) { 790 ActivateForTheListType) {
780 // Sets up the experiment in a way that the activation decision depends on the 791 // Sets up the experiment in a way that the activation decision depends on the
781 // list for which the Safe Browsing hit has happened. 792 // list for which the Safe Browsing hit has happened.
782 const ActivationListTestData& test_data = GetParam(); 793 const ActivationListTestData& test_data = GetParam();
783 base::FieldTrialList field_trial_list(nullptr); 794 base::FieldTrialList field_trial_list(nullptr);
784 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 795 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
785 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 796 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
786 kActivationScopeActivationList, test_data.activation_list); 797 kActivationScopeActivationList, test_data.activation_list);
798 factory()->set_configuration_for_testing(GetActiveConfiguration());
787 799
788 const GURL test_url("https://example.com/nonsoceng?q=engsocnon"); 800 const GURL test_url("https://example.com/nonsoceng?q=engsocnon");
789 std::vector<GURL> navigation_chain; 801 std::vector<GURL> navigation_chain;
790 802
791 ActivationList effective_list = GetListForThreatTypeAndMetadata( 803 ActivationList effective_list = GetListForThreatTypeAndMetadata(
792 test_data.threat_type, test_data.threat_type_metadata); 804 test_data.threat_type, test_data.threat_type_metadata);
793 NavigateAndExpectActivation( 805 NavigateAndExpectActivation(
794 {false, false, false, true}, 806 {false, false, false, true},
795 {GURL(kUrlA), GURL(kUrlB), GURL(kUrlC), test_url}, test_data.threat_type, 807 {GURL(kUrlA), GURL(kUrlB), GURL(kUrlC), test_url}, test_data.threat_type,
796 test_data.threat_type_metadata, content::Referrer(), 808 test_data.threat_type_metadata, content::Referrer(),
797 ui::PAGE_TRANSITION_LINK, 809 ui::PAGE_TRANSITION_LINK,
798 effective_list != ActivationList::NONE ? F0M0L1 : EMPTY, 810 effective_list != ActivationList::NONE ? F0M0L1 : EMPTY,
799 test_data.expected_activation_decision); 811 test_data.expected_activation_decision);
800 }; 812 };
801 813
802 TEST_P(ContentSubresourceFilterDriverFactoryActivationScopeTest, 814 TEST_P(ContentSubresourceFilterDriverFactoryActivationScopeTest,
803 ActivateForScopeType) { 815 ActivateForScopeType) {
804 const ActivationScopeTestData& test_data = GetParam(); 816 const ActivationScopeTestData& test_data = GetParam();
805 base::FieldTrialList field_trial_list(nullptr); 817 base::FieldTrialList field_trial_list(nullptr);
806 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 818 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
807 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 819 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
808 test_data.activation_scope, 820 test_data.activation_scope,
809 kActivationListSocialEngineeringAdsInterstitial); 821 kActivationListSocialEngineeringAdsInterstitial);
822 factory()->set_configuration_for_testing(GetActiveConfiguration());
810 823
811 const GURL test_url(kExampleUrlWithParams); 824 const GURL test_url(kExampleUrlWithParams);
812 825
813 RedirectChainMatchPattern expected_pattern = 826 RedirectChainMatchPattern expected_pattern =
814 test_data.url_matches_activation_list ? NO_REDIRECTS_HIT : EMPTY; 827 test_data.url_matches_activation_list ? NO_REDIRECTS_HIT : EMPTY;
815 NavigateAndExpectActivation({test_data.url_matches_activation_list}, 828 NavigateAndExpectActivation({test_data.url_matches_activation_list},
816 {test_url}, expected_pattern, 829 {test_url}, expected_pattern,
817 test_data.expected_activation_decision); 830 test_data.expected_activation_decision);
818 if (test_data.url_matches_activation_list) { 831 if (test_data.url_matches_activation_list) {
819 factory()->AddHostOfURLToWhitelistSet(test_url); 832 factory()->AddHostOfURLToWhitelistSet(test_url);
820 NavigateAndExpectActivation( 833 NavigateAndExpectActivation(
821 {test_data.url_matches_activation_list}, {GURL(kExampleUrlWithParams)}, 834 {test_data.url_matches_activation_list}, {GURL(kExampleUrlWithParams)},
822 expected_pattern, 835 expected_pattern,
823 GetCurrentActivationScope() == ActivationScope::NO_SITES 836 GetActiveConfiguration().activation_scope == ActivationScope::NO_SITES
824 ? ActivationDecision::ACTIVATION_DISABLED 837 ? ActivationDecision::ACTIVATION_DISABLED
825 : ActivationDecision::URL_WHITELISTED); 838 : ActivationDecision::URL_WHITELISTED);
826 } 839 }
827 }; 840 };
828 841
829 // Only main frames with http/https schemes should activate, unless the 842 // Only main frames with http/https schemes should activate, unless the
830 // activation scope is for all sites. 843 // activation scope is for all sites.
831 TEST_P(ContentSubresourceFilterDriverFactoryActivationScopeTest, 844 TEST_P(ContentSubresourceFilterDriverFactoryActivationScopeTest,
832 ActivateForSupportedUrlScheme) { 845 ActivateForSupportedUrlScheme) {
833 const ActivationScopeTestData& test_data = GetParam(); 846 const ActivationScopeTestData& test_data = GetParam();
834 base::FieldTrialList field_trial_list(nullptr); 847 base::FieldTrialList field_trial_list(nullptr);
835 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle( 848 testing::ScopedSubresourceFilterFeatureToggle scoped_feature_toggle(
836 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled, 849 base::FeatureList::OVERRIDE_ENABLE_FEATURE, kActivationLevelEnabled,
837 test_data.activation_scope, 850 test_data.activation_scope,
838 kActivationListSocialEngineeringAdsInterstitial); 851 kActivationListSocialEngineeringAdsInterstitial);
852 factory()->set_configuration_for_testing(GetActiveConfiguration());
839 853
840 // data URLs are also not supported, but not listed here, as it's not possible 854 // data URLs are also not supported, but not listed here, as it's not possible
841 // for a page to redirect to them after https://crbug.com/594215 is fixed. 855 // for a page to redirect to them after https://crbug.com/594215 is fixed.
842 const char* unsupported_urls[] = {"ftp://example.com/", "chrome://settings", 856 const char* unsupported_urls[] = {"ftp://example.com/", "chrome://settings",
843 "chrome-extension://some-extension", 857 "chrome-extension://some-extension",
844 "file:///var/www/index.html"}; 858 "file:///var/www/index.html"};
845 const char* supported_urls[] = {"http://example.test", 859 const char* supported_urls[] = {"http://example.test",
846 "https://example.test"}; 860 "https://example.test"};
847 for (auto* url : unsupported_urls) { 861 for (auto* url : unsupported_urls) {
848 SCOPED_TRACE(url); 862 SCOPED_TRACE(url);
849 RedirectChainMatchPattern expected_pattern = EMPTY; 863 RedirectChainMatchPattern expected_pattern = EMPTY;
850 NavigateAndExpectActivation( 864 NavigateAndExpectActivation(
851 {test_data.url_matches_activation_list}, {GURL(url)}, expected_pattern, 865 {test_data.url_matches_activation_list}, {GURL(url)}, expected_pattern,
852 GetCurrentActivationScope() == ActivationScope::NO_SITES 866 GetActiveConfiguration().activation_scope == ActivationScope::NO_SITES
853 ? ActivationDecision::ACTIVATION_DISABLED 867 ? ActivationDecision::ACTIVATION_DISABLED
854 : ActivationDecision::UNSUPPORTED_SCHEME); 868 : ActivationDecision::UNSUPPORTED_SCHEME);
855 } 869 }
856 for (auto* url : supported_urls) { 870 for (auto* url : supported_urls) {
857 SCOPED_TRACE(url); 871 SCOPED_TRACE(url);
858 RedirectChainMatchPattern expected_pattern = 872 RedirectChainMatchPattern expected_pattern =
859 test_data.url_matches_activation_list ? NO_REDIRECTS_HIT : EMPTY; 873 test_data.url_matches_activation_list ? NO_REDIRECTS_HIT : EMPTY;
860 NavigateAndExpectActivation({test_data.url_matches_activation_list}, 874 NavigateAndExpectActivation({test_data.url_matches_activation_list},
861 {GURL(url)}, expected_pattern, 875 {GURL(url)}, expected_pattern,
862 test_data.expected_activation_decision); 876 test_data.expected_activation_decision);
863 } 877 }
864 }; 878 };
865 879
866 INSTANTIATE_TEST_CASE_P(NoSocEngHit, 880 INSTANTIATE_TEST_CASE_P(NoSocEngHit,
867 ContentSubresourceFilterDriverFactoryThreatTypeTest, 881 ContentSubresourceFilterDriverFactoryThreatTypeTest,
868 ::testing::ValuesIn(kActivationListTestData)); 882 ::testing::ValuesIn(kActivationListTestData));
869 883
870 INSTANTIATE_TEST_CASE_P( 884 INSTANTIATE_TEST_CASE_P(
871 ActivationScopeTest, 885 ActivationScopeTest,
872 ContentSubresourceFilterDriverFactoryActivationScopeTest, 886 ContentSubresourceFilterDriverFactoryActivationScopeTest,
873 ::testing::ValuesIn(kActivationScopeTestData)); 887 ::testing::ValuesIn(kActivationScopeTestData));
874 888
875 INSTANTIATE_TEST_CASE_P( 889 INSTANTIATE_TEST_CASE_P(
876 ActivationLevelTest, 890 ActivationLevelTest,
877 ContentSubresourceFilterDriverFactoryActivationLevelTest, 891 ContentSubresourceFilterDriverFactoryActivationLevelTest,
878 ::testing::ValuesIn(kActivationLevelTestData)); 892 ::testing::ValuesIn(kActivationLevelTestData));
879 893
880 } // namespace subresource_filter 894 } // namespace subresource_filter
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698