| OLD | NEW |
| 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 <map> | 5 #include <map> |
| 6 #include <memory> | 6 #include <memory> |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 #include "chrome/browser/ui/browser_commands.h" | 39 #include "chrome/browser/ui/browser_commands.h" |
| 40 #include "chrome/browser/ui/browser_navigator.h" | 40 #include "chrome/browser/ui/browser_navigator.h" |
| 41 #include "chrome/browser/ui/browser_navigator_params.h" | 41 #include "chrome/browser/ui/browser_navigator_params.h" |
| 42 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 42 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 43 #include "chrome/common/chrome_paths.h" | 43 #include "chrome/common/chrome_paths.h" |
| 44 #include "chrome/common/url_constants.h" | 44 #include "chrome/common/url_constants.h" |
| 45 #include "chrome/test/base/in_process_browser_test.h" | 45 #include "chrome/test/base/in_process_browser_test.h" |
| 46 #include "chrome/test/base/ui_test_utils.h" | 46 #include "chrome/test/base/ui_test_utils.h" |
| 47 #include "components/content_settings/core/browser/host_content_settings_map.h" | 47 #include "components/content_settings/core/browser/host_content_settings_map.h" |
| 48 #include "components/content_settings/core/common/content_settings.h" | 48 #include "components/content_settings/core/common/content_settings.h" |
| 49 #include "components/safe_browsing/features.h" |
| 49 #include "components/safe_browsing_db/test_database_manager.h" | 50 #include "components/safe_browsing_db/test_database_manager.h" |
| 50 #include "components/safe_browsing_db/util.h" | 51 #include "components/safe_browsing_db/util.h" |
| 51 #include "components/safe_browsing_db/v4_database.h" | 52 #include "components/safe_browsing_db/v4_database.h" |
| 52 #include "components/security_interstitials/content/unsafe_resource.h" | 53 #include "components/security_interstitials/content/unsafe_resource.h" |
| 53 #include "components/subresource_filter/content/browser/async_document_subresour
ce_filter.h" | 54 #include "components/subresource_filter/content/browser/async_document_subresour
ce_filter.h" |
| 54 #include "components/subresource_filter/content/browser/async_document_subresour
ce_filter_test_utils.h" | 55 #include "components/subresource_filter/content/browser/async_document_subresour
ce_filter_test_utils.h" |
| 55 #include "components/subresource_filter/content/browser/content_ruleset_service.
h" | 56 #include "components/subresource_filter/content/browser/content_ruleset_service.
h" |
| 56 #include "components/subresource_filter/content/browser/content_subresource_filt
er_driver_factory.h" | 57 #include "components/subresource_filter/content/browser/content_subresource_filt
er_driver_factory.h" |
| 57 #include "components/subresource_filter/core/browser/subresource_filter_constant
s.h" | 58 #include "components/subresource_filter/core/browser/subresource_filter_constant
s.h" |
| 58 #include "components/subresource_filter/core/browser/subresource_filter_features
.h" | 59 #include "components/subresource_filter/core/browser/subresource_filter_features
.h" |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 // specified in the field trial configuration. | 204 // specified in the field trial configuration. |
| 204 IN_PROC_BROWSER_TEST_F(SubresourceFilterDisabledByDefaultBrowserTest, | 205 IN_PROC_BROWSER_TEST_F(SubresourceFilterDisabledByDefaultBrowserTest, |
| 205 RulesetServiceNotCreated) { | 206 RulesetServiceNotCreated) { |
| 206 EXPECT_FALSE(g_browser_process->subresource_filter_ruleset_service()); | 207 EXPECT_FALSE(g_browser_process->subresource_filter_ruleset_service()); |
| 207 } | 208 } |
| 208 | 209 |
| 209 // SubresourceFilterBrowserTest ----------------------------------------------- | 210 // SubresourceFilterBrowserTest ----------------------------------------------- |
| 210 | 211 |
| 211 class SubresourceFilterBrowserTest : public InProcessBrowserTest { | 212 class SubresourceFilterBrowserTest : public InProcessBrowserTest { |
| 212 public: | 213 public: |
| 213 SubresourceFilterBrowserTest() {} | 214 SubresourceFilterBrowserTest() { |
| 215 scoped_feature_list_.InitWithFeatures( |
| 216 {kSafeBrowsingSubresourceFilter, |
| 217 kSafeBrowsingSubresourceFilterExperimentalUI, |
| 218 safe_browsing::kV4OnlyEnabled}, |
| 219 {}); |
| 220 } |
| 221 |
| 214 ~SubresourceFilterBrowserTest() override {} | 222 ~SubresourceFilterBrowserTest() override {} |
| 215 | 223 |
| 216 protected: | 224 protected: |
| 217 void SetUpCommandLine(base::CommandLine* command_line) override { | |
| 218 command_line->AppendSwitchASCII(switches::kEnableFeatures, | |
| 219 base::JoinString(RequiredFeatures(), ",")); | |
| 220 } | |
| 221 | |
| 222 std::vector<base::StringPiece> RequiredFeatures() const { | |
| 223 return {kSafeBrowsingSubresourceFilter.name, "SafeBrowsingV4OnlyEnabled", | |
| 224 kSafeBrowsingSubresourceFilterExperimentalUI.name}; | |
| 225 } | |
| 226 | |
| 227 void SetUp() override { | 225 void SetUp() override { |
| 228 sb_factory_ = | 226 sb_factory_ = |
| 229 base::MakeUnique<safe_browsing::TestSafeBrowsingServiceFactory>( | 227 base::MakeUnique<safe_browsing::TestSafeBrowsingServiceFactory>( |
| 230 safe_browsing::V4FeatureList::V4UsageStatus::V4_ONLY); | 228 safe_browsing::V4FeatureList::V4UsageStatus::V4_ONLY); |
| 231 sb_factory_->SetTestUIManager(new FakeSafeBrowsingUIManager()); | 229 sb_factory_->SetTestUIManager(new FakeSafeBrowsingUIManager()); |
| 232 safe_browsing::SafeBrowsingService::RegisterFactory(sb_factory_.get()); | 230 safe_browsing::SafeBrowsingService::RegisterFactory(sb_factory_.get()); |
| 233 | 231 |
| 234 safe_browsing::V4Database::RegisterStoreFactoryForTest( | 232 safe_browsing::V4Database::RegisterStoreFactoryForTest( |
| 235 base::WrapUnique(new safe_browsing::TestV4StoreFactory())); | 233 base::WrapUnique(new safe_browsing::TestV4StoreFactory())); |
| 236 | 234 |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 | 419 |
| 422 std::unique_ptr<safe_browsing::TestSafeBrowsingServiceFactory> sb_factory_; | 420 std::unique_ptr<safe_browsing::TestSafeBrowsingServiceFactory> sb_factory_; |
| 423 // Owned by the V4Database. | 421 // Owned by the V4Database. |
| 424 safe_browsing::TestV4DatabaseFactory* v4_db_factory_; | 422 safe_browsing::TestV4DatabaseFactory* v4_db_factory_; |
| 425 // Owned by the V4GetHashProtocolManager. | 423 // Owned by the V4GetHashProtocolManager. |
| 426 safe_browsing::TestV4GetHashProtocolManagerFactory* v4_get_hash_factory_; | 424 safe_browsing::TestV4GetHashProtocolManagerFactory* v4_get_hash_factory_; |
| 427 | 425 |
| 428 // Owned by the profile. | 426 // Owned by the profile. |
| 429 SubresourceFilterContentSettingsManager* settings_manager_; | 427 SubresourceFilterContentSettingsManager* settings_manager_; |
| 430 | 428 |
| 429 base::test::ScopedFeatureList scoped_feature_list_; |
| 430 |
| 431 DISALLOW_COPY_AND_ASSIGN(SubresourceFilterBrowserTest); | 431 DISALLOW_COPY_AND_ASSIGN(SubresourceFilterBrowserTest); |
| 432 }; | 432 }; |
| 433 | 433 |
| 434 enum WebSocketCreationPolicy { | 434 enum WebSocketCreationPolicy { |
| 435 IN_MAIN_FRAME, | 435 IN_MAIN_FRAME, |
| 436 IN_WORKER, | 436 IN_WORKER, |
| 437 }; | 437 }; |
| 438 class SubresourceFilterWebSocketBrowserTest | 438 class SubresourceFilterWebSocketBrowserTest |
| 439 : public SubresourceFilterBrowserTest, | 439 : public SubresourceFilterBrowserTest, |
| 440 public ::testing::WithParamInterface<WebSocketCreationPolicy> { | 440 public ::testing::WithParamInterface<WebSocketCreationPolicy> { |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 475 | 475 |
| 476 enum class OffMainThreadFetchPolicy { | 476 enum class OffMainThreadFetchPolicy { |
| 477 kEnabled, | 477 kEnabled, |
| 478 kDisabled, | 478 kDisabled, |
| 479 }; | 479 }; |
| 480 | 480 |
| 481 class SubresourceFilterWorkerFetchBrowserTest | 481 class SubresourceFilterWorkerFetchBrowserTest |
| 482 : public SubresourceFilterBrowserTest, | 482 : public SubresourceFilterBrowserTest, |
| 483 public ::testing::WithParamInterface<OffMainThreadFetchPolicy> { | 483 public ::testing::WithParamInterface<OffMainThreadFetchPolicy> { |
| 484 public: | 484 public: |
| 485 SubresourceFilterWorkerFetchBrowserTest() {} | 485 SubresourceFilterWorkerFetchBrowserTest() { |
| 486 if (GetParam() == OffMainThreadFetchPolicy::kEnabled) { |
| 487 scoped_feature_list_.InitAndEnableFeature(features::kOffMainThreadFetch); |
| 488 } else { |
| 489 scoped_feature_list_.InitAndDisableFeature(features::kOffMainThreadFetch); |
| 490 } |
| 491 } |
| 492 |
| 486 ~SubresourceFilterWorkerFetchBrowserTest() override {} | 493 ~SubresourceFilterWorkerFetchBrowserTest() override {} |
| 487 | 494 |
| 488 protected: | 495 protected: |
| 489 void SetUpCommandLine(base::CommandLine* command_line) override { | |
| 490 std::vector<base::StringPiece> features = | |
| 491 SubresourceFilterBrowserTest::RequiredFeatures(); | |
| 492 if (GetParam() == OffMainThreadFetchPolicy::kEnabled) { | |
| 493 features.push_back(features::kOffMainThreadFetch.name); | |
| 494 } else { | |
| 495 command_line->AppendSwitchASCII(switches::kDisableFeatures, | |
| 496 features::kOffMainThreadFetch.name); | |
| 497 } | |
| 498 command_line->AppendSwitchASCII(switches::kEnableFeatures, | |
| 499 base::JoinString(features, ",")); | |
| 500 } | |
| 501 | |
| 502 void ClearTitle() { | 496 void ClearTitle() { |
| 503 ASSERT_TRUE(content::ExecuteScript(web_contents()->GetMainFrame(), | 497 ASSERT_TRUE(content::ExecuteScript(web_contents()->GetMainFrame(), |
| 504 "document.title = \"\";")); | 498 "document.title = \"\";")); |
| 505 } | 499 } |
| 506 | 500 |
| 507 private: | 501 private: |
| 502 base::test::ScopedFeatureList scoped_feature_list_; |
| 508 DISALLOW_COPY_AND_ASSIGN(SubresourceFilterWorkerFetchBrowserTest); | 503 DISALLOW_COPY_AND_ASSIGN(SubresourceFilterWorkerFetchBrowserTest); |
| 509 }; | 504 }; |
| 510 | 505 |
| 511 // Tests ----------------------------------------------------------------------- | 506 // Tests ----------------------------------------------------------------------- |
| 512 | 507 |
| 513 IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTest, MainFrameActivation) { | 508 IN_PROC_BROWSER_TEST_F(SubresourceFilterBrowserTest, MainFrameActivation) { |
| 514 content::ConsoleObserverDelegate console_observer(web_contents(), | 509 content::ConsoleObserverDelegate console_observer(web_contents(), |
| 515 kActivationConsoleMessage); | 510 kActivationConsoleMessage); |
| 516 web_contents()->SetDelegate(&console_observer); | 511 web_contents()->SetDelegate(&console_observer); |
| 517 GURL url(GetTestUrl("subresource_filter/frame_with_included_script.html")); | 512 GURL url(GetTestUrl("subresource_filter/frame_with_included_script.html")); |
| (...skipping 1303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1821 std::string(kSubresourceFilterOnlySuffix), | 1816 std::string(kSubresourceFilterOnlySuffix), |
| 1822 false, 1); | 1817 false, 1); |
| 1823 | 1818 |
| 1824 tester.ExpectUniqueSample(std::string(kMatchesPatternHistogramName) + | 1819 tester.ExpectUniqueSample(std::string(kMatchesPatternHistogramName) + |
| 1825 std::string(kPhishingInterstitialSuffix), | 1820 std::string(kPhishingInterstitialSuffix), |
| 1826 false, 1); | 1821 false, 1); |
| 1827 } | 1822 } |
| 1828 #endif | 1823 #endif |
| 1829 | 1824 |
| 1830 } // namespace subresource_filter | 1825 } // namespace subresource_filter |
| OLD | NEW |