| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // This test creates a fake safebrowsing service, where we can inject known- | 5 // This test creates a fake safebrowsing service, where we can inject known- |
| 6 // threat urls. It then uses a real browser to go to these urls, and sends | 6 // threat urls. It then uses a real browser to go to these urls, and sends |
| 7 // "goback" or "proceed" commands and verifies they work. | 7 // "goback" or "proceed" commands and verifies they work. |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 FakeThreatDetails* get_details() { return details_; } | 308 FakeThreatDetails* get_details() { return details_; } |
| 309 | 309 |
| 310 private: | 310 private: |
| 311 FakeThreatDetails* details_; | 311 FakeThreatDetails* details_; |
| 312 }; | 312 }; |
| 313 | 313 |
| 314 // A SafeBrowingBlockingPage class that lets us wait until it's hidden. | 314 // A SafeBrowingBlockingPage class that lets us wait until it's hidden. |
| 315 class TestSafeBrowsingBlockingPage : public SafeBrowsingBlockingPage { | 315 class TestSafeBrowsingBlockingPage : public SafeBrowsingBlockingPage { |
| 316 public: | 316 public: |
| 317 TestSafeBrowsingBlockingPage(SafeBrowsingUIManager* manager, | 317 TestSafeBrowsingBlockingPage(SafeBrowsingUIManager* manager, |
| 318 WebContents* web_contents, | 318 WebContents* web_contents, |
| 319 const UnsafeResourceList& unsafe_resources) | 319 const UnsafeResourceList& unsafe_resources, |
| 320 : SafeBrowsingBlockingPage(manager, web_contents, unsafe_resources), | 320 const GURL& main_frame_url) |
| 321 : SafeBrowsingBlockingPage(manager, |
| 322 web_contents, |
| 323 unsafe_resources, |
| 324 main_frame_url), |
| 321 wait_for_delete_(false) { | 325 wait_for_delete_(false) { |
| 322 // Don't wait the whole 3 seconds for the browser test. | 326 // Don't wait the whole 3 seconds for the browser test. |
| 323 malware_details_proceed_delay_ms_ = 100; | 327 malware_details_proceed_delay_ms_ = 100; |
| 324 } | 328 } |
| 325 | 329 |
| 326 ~TestSafeBrowsingBlockingPage() override { | 330 ~TestSafeBrowsingBlockingPage() override { |
| 327 if (!wait_for_delete_) | 331 if (!wait_for_delete_) |
| 328 return; | 332 return; |
| 329 | 333 |
| 330 // Notify that we are gone | 334 // Notify that we are gone |
| (...skipping 19 matching lines...) Expand all Loading... |
| 350 | 354 |
| 351 class TestSafeBrowsingBlockingPageFactory | 355 class TestSafeBrowsingBlockingPageFactory |
| 352 : public SafeBrowsingBlockingPageFactory { | 356 : public SafeBrowsingBlockingPageFactory { |
| 353 public: | 357 public: |
| 354 TestSafeBrowsingBlockingPageFactory() { } | 358 TestSafeBrowsingBlockingPageFactory() { } |
| 355 ~TestSafeBrowsingBlockingPageFactory() override {} | 359 ~TestSafeBrowsingBlockingPageFactory() override {} |
| 356 | 360 |
| 357 SafeBrowsingBlockingPage* CreateSafeBrowsingPage( | 361 SafeBrowsingBlockingPage* CreateSafeBrowsingPage( |
| 358 SafeBrowsingUIManager* delegate, | 362 SafeBrowsingUIManager* delegate, |
| 359 WebContents* web_contents, | 363 WebContents* web_contents, |
| 360 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) | 364 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources, |
| 361 override { | 365 const GURL& main_frame_url) override { |
| 362 return new TestSafeBrowsingBlockingPage(delegate, web_contents, | 366 return new TestSafeBrowsingBlockingPage(delegate, web_contents, |
| 363 unsafe_resources); | 367 unsafe_resources, main_frame_url); |
| 364 } | 368 } |
| 365 }; | 369 }; |
| 366 | 370 |
| 367 } // namespace | 371 } // namespace |
| 368 | 372 |
| 369 // Tests the safe browsing blocking page in a browser. | 373 // Tests the safe browsing blocking page in a browser. |
| 370 class SafeBrowsingBlockingPageBrowserTest | 374 class SafeBrowsingBlockingPageBrowserTest |
| 371 : public InProcessBrowserTest, | 375 : public InProcessBrowserTest, |
| 372 public testing::WithParamInterface<SBThreatType> { | 376 public testing::WithParamInterface<SBThreatType> { |
| 373 public: | 377 public: |
| (...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1091 INSTANTIATE_TEST_CASE_P(SafeBrowsingBlockingPageBrowserTestWithThreatType, | 1095 INSTANTIATE_TEST_CASE_P(SafeBrowsingBlockingPageBrowserTestWithThreatType, |
| 1092 SafeBrowsingBlockingPageBrowserTest, | 1096 SafeBrowsingBlockingPageBrowserTest, |
| 1093 testing::Values(SB_THREAT_TYPE_URL_MALWARE, | 1097 testing::Values(SB_THREAT_TYPE_URL_MALWARE, |
| 1094 SB_THREAT_TYPE_URL_PHISHING, | 1098 SB_THREAT_TYPE_URL_PHISHING, |
| 1095 SB_THREAT_TYPE_URL_UNWANTED)); | 1099 SB_THREAT_TYPE_URL_UNWANTED)); |
| 1096 | 1100 |
| 1097 // Test that SafeBrowsingBlockingPage properly decodes IDN URLs that are | 1101 // Test that SafeBrowsingBlockingPage properly decodes IDN URLs that are |
| 1098 // displayed. | 1102 // displayed. |
| 1099 class SafeBrowsingBlockingPageIDNTest | 1103 class SafeBrowsingBlockingPageIDNTest |
| 1100 : public SecurityInterstitialIDNTest, | 1104 : public SecurityInterstitialIDNTest, |
| 1101 public testing::WithParamInterface<SBThreatType> { | 1105 public testing::WithParamInterface<testing::tuple<bool, SBThreatType>> { |
| 1102 protected: | 1106 protected: |
| 1103 // SecurityInterstitialIDNTest implementation | 1107 // SecurityInterstitialIDNTest implementation |
| 1104 SecurityInterstitialPage* CreateInterstitial( | 1108 SecurityInterstitialPage* CreateInterstitial( |
| 1105 content::WebContents* contents, | 1109 content::WebContents* contents, |
| 1106 const GURL& request_url) const override { | 1110 const GURL& request_url) const override { |
| 1111 const bool is_subresource = testing::get<0>(GetParam()); |
| 1112 |
| 1107 SafeBrowsingService* sb_service = | 1113 SafeBrowsingService* sb_service = |
| 1108 g_browser_process->safe_browsing_service(); | 1114 g_browser_process->safe_browsing_service(); |
| 1109 SafeBrowsingBlockingPage::UnsafeResource resource; | 1115 SafeBrowsingBlockingPage::UnsafeResource resource; |
| 1110 | 1116 |
| 1111 resource.url = request_url; | 1117 resource.url = request_url; |
| 1112 resource.is_subresource = false; | 1118 resource.is_subresource = is_subresource; |
| 1113 resource.threat_type = GetParam(); | 1119 resource.threat_type = testing::get<1>(GetParam()); |
| 1114 resource.render_process_host_id = contents->GetRenderProcessHost()->GetID(); | 1120 resource.render_process_host_id = contents->GetRenderProcessHost()->GetID(); |
| 1115 resource.render_view_id = contents->GetRenderViewHost()->GetRoutingID(); | 1121 resource.render_view_id = contents->GetRenderViewHost()->GetRoutingID(); |
| 1116 resource.threat_source = safe_browsing::ThreatSource::LOCAL_PVER3; | 1122 resource.threat_source = safe_browsing::ThreatSource::LOCAL_PVER3; |
| 1117 | 1123 |
| 1118 return SafeBrowsingBlockingPage::CreateBlockingPage( | 1124 return SafeBrowsingBlockingPage::CreateBlockingPage( |
| 1119 sb_service->ui_manager().get(), contents, resource); | 1125 sb_service->ui_manager().get(), contents, resource, |
| 1126 is_subresource ? GURL("http://mainframe.example.com/") : request_url); |
| 1120 } | 1127 } |
| 1121 }; | 1128 }; |
| 1122 | 1129 |
| 1123 IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageIDNTest, | 1130 IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageIDNTest, |
| 1124 SafeBrowsingBlockingPageDecodesIDN) { | 1131 SafeBrowsingBlockingPageDecodesIDN) { |
| 1125 EXPECT_TRUE(VerifyIDNDecoded()); | 1132 EXPECT_TRUE(VerifyIDNDecoded()); |
| 1126 } | 1133 } |
| 1127 | 1134 |
| 1128 INSTANTIATE_TEST_CASE_P(SafeBrowsingBlockingPageIDNTestWithThreatType, | 1135 INSTANTIATE_TEST_CASE_P( |
| 1129 SafeBrowsingBlockingPageIDNTest, | 1136 SafeBrowsingBlockingPageIDNTestWithThreatType, |
| 1130 testing::Values(SB_THREAT_TYPE_URL_MALWARE, | 1137 SafeBrowsingBlockingPageIDNTest, |
| 1131 SB_THREAT_TYPE_URL_PHISHING, | 1138 testing::Combine(testing::Values(false, true), |
| 1132 SB_THREAT_TYPE_URL_UNWANTED)); | 1139 testing::Values(SB_THREAT_TYPE_URL_MALWARE, |
| 1140 SB_THREAT_TYPE_URL_PHISHING, |
| 1141 SB_THREAT_TYPE_URL_UNWANTED))); |
| 1133 | 1142 |
| 1134 } // namespace safe_browsing | 1143 } // namespace safe_browsing |
| OLD | NEW |