| 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 GURL& main_frame_url, |
| 320 : SafeBrowsingBlockingPage(manager, web_contents, unsafe_resources), | 320 const UnsafeResourceList& unsafe_resources) |
| 321 : SafeBrowsingBlockingPage(manager, |
| 322 web_contents, |
| 323 main_frame_url, |
| 324 unsafe_resources), |
| 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, |
| 364 const GURL& main_frame_url, |
| 360 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) | 365 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) |
| 361 override { | 366 override { |
| 362 return new TestSafeBrowsingBlockingPage(delegate, web_contents, | 367 return new TestSafeBrowsingBlockingPage(delegate, web_contents, |
| 363 unsafe_resources); | 368 main_frame_url, unsafe_resources); |
| 364 } | 369 } |
| 365 }; | 370 }; |
| 366 | 371 |
| 367 } // namespace | 372 } // namespace |
| 368 | 373 |
| 369 // Tests the safe browsing blocking page in a browser. | 374 // Tests the safe browsing blocking page in a browser. |
| 370 class SafeBrowsingBlockingPageBrowserTest | 375 class SafeBrowsingBlockingPageBrowserTest |
| 371 : public InProcessBrowserTest, | 376 : public InProcessBrowserTest, |
| 372 public testing::WithParamInterface<SBThreatType> { | 377 public testing::WithParamInterface<SBThreatType> { |
| 373 public: | 378 public: |
| (...skipping 717 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1091 INSTANTIATE_TEST_CASE_P(SafeBrowsingBlockingPageBrowserTestWithThreatType, | 1096 INSTANTIATE_TEST_CASE_P(SafeBrowsingBlockingPageBrowserTestWithThreatType, |
| 1092 SafeBrowsingBlockingPageBrowserTest, | 1097 SafeBrowsingBlockingPageBrowserTest, |
| 1093 testing::Values(SB_THREAT_TYPE_URL_MALWARE, | 1098 testing::Values(SB_THREAT_TYPE_URL_MALWARE, |
| 1094 SB_THREAT_TYPE_URL_PHISHING, | 1099 SB_THREAT_TYPE_URL_PHISHING, |
| 1095 SB_THREAT_TYPE_URL_UNWANTED)); | 1100 SB_THREAT_TYPE_URL_UNWANTED)); |
| 1096 | 1101 |
| 1097 // Test that SafeBrowsingBlockingPage properly decodes IDN URLs that are | 1102 // Test that SafeBrowsingBlockingPage properly decodes IDN URLs that are |
| 1098 // displayed. | 1103 // displayed. |
| 1099 class SafeBrowsingBlockingPageIDNTest | 1104 class SafeBrowsingBlockingPageIDNTest |
| 1100 : public SecurityInterstitialIDNTest, | 1105 : public SecurityInterstitialIDNTest, |
| 1101 public testing::WithParamInterface<SBThreatType> { | 1106 public testing::WithParamInterface<testing::tuple<bool, SBThreatType>> { |
| 1102 protected: | 1107 protected: |
| 1103 // SecurityInterstitialIDNTest implementation | 1108 // SecurityInterstitialIDNTest implementation |
| 1104 SecurityInterstitialPage* CreateInterstitial( | 1109 SecurityInterstitialPage* CreateInterstitial( |
| 1105 content::WebContents* contents, | 1110 content::WebContents* contents, |
| 1106 const GURL& request_url) const override { | 1111 const GURL& request_url) const override { |
| 1112 const bool is_subresource = testing::get<0>(GetParam()); |
| 1113 |
| 1107 SafeBrowsingService* sb_service = | 1114 SafeBrowsingService* sb_service = |
| 1108 g_browser_process->safe_browsing_service(); | 1115 g_browser_process->safe_browsing_service(); |
| 1109 SafeBrowsingBlockingPage::UnsafeResource resource; | 1116 SafeBrowsingBlockingPage::UnsafeResource resource; |
| 1110 | 1117 |
| 1111 resource.url = request_url; | 1118 resource.url = request_url; |
| 1112 resource.is_subresource = false; | 1119 resource.is_subresource = is_subresource; |
| 1113 resource.threat_type = GetParam(); | 1120 resource.threat_type = testing::get<1>(GetParam()); |
| 1114 resource.render_process_host_id = contents->GetRenderProcessHost()->GetID(); | 1121 resource.render_process_host_id = contents->GetRenderProcessHost()->GetID(); |
| 1115 resource.render_view_id = contents->GetRenderViewHost()->GetRoutingID(); | 1122 resource.render_view_id = contents->GetRenderViewHost()->GetRoutingID(); |
| 1116 resource.threat_source = safe_browsing::ThreatSource::LOCAL_PVER3; | 1123 resource.threat_source = safe_browsing::ThreatSource::LOCAL_PVER3; |
| 1117 | 1124 |
| 1118 return SafeBrowsingBlockingPage::CreateBlockingPage( | 1125 return SafeBrowsingBlockingPage::CreateBlockingPage( |
| 1119 sb_service->ui_manager().get(), contents, resource); | 1126 sb_service->ui_manager().get(), contents, |
| 1127 is_subresource ? GURL("http://mainframe.example.com/") : request_url, |
| 1128 resource); |
| 1120 } | 1129 } |
| 1121 }; | 1130 }; |
| 1122 | 1131 |
| 1123 IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageIDNTest, | 1132 IN_PROC_BROWSER_TEST_P(SafeBrowsingBlockingPageIDNTest, |
| 1124 SafeBrowsingBlockingPageDecodesIDN) { | 1133 SafeBrowsingBlockingPageDecodesIDN) { |
| 1125 EXPECT_TRUE(VerifyIDNDecoded()); | 1134 EXPECT_TRUE(VerifyIDNDecoded()); |
| 1126 } | 1135 } |
| 1127 | 1136 |
| 1128 INSTANTIATE_TEST_CASE_P(SafeBrowsingBlockingPageIDNTestWithThreatType, | 1137 INSTANTIATE_TEST_CASE_P( |
| 1129 SafeBrowsingBlockingPageIDNTest, | 1138 SafeBrowsingBlockingPageIDNTestWithThreatType, |
| 1130 testing::Values(SB_THREAT_TYPE_URL_MALWARE, | 1139 SafeBrowsingBlockingPageIDNTest, |
| 1131 SB_THREAT_TYPE_URL_PHISHING, | 1140 testing::Combine(testing::Values(false, true), |
| 1132 SB_THREAT_TYPE_URL_UNWANTED)); | 1141 testing::Values(SB_THREAT_TYPE_URL_MALWARE, |
| 1142 SB_THREAT_TYPE_URL_PHISHING, |
| 1143 SB_THREAT_TYPE_URL_UNWANTED))); |
| 1133 | 1144 |
| 1134 } // namespace safe_browsing | 1145 } // namespace safe_browsing |
| OLD | NEW |