| 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 | 
|---|