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

Side by Side Diff: chrome/browser/safe_browsing/safe_browsing_blocking_page_test.cc

Issue 330753002: Browser and unit tests for the SB interstitial V3 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed unneeded this-> Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
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 5 // This test creates a fake safebrowsing service, where we can inject
6 // malware and phishing urls. It then uses a real browser to go to 6 // malware and phishing urls. It then uses a real browser to go to
7 // these urls, and sends "goback" or "proceed" commands and verifies 7 // these urls, and sends "goback" or "proceed" commands and verifies
8 // they work. 8 // they work.
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 298
299 FakeMalwareDetails* get_details() { 299 FakeMalwareDetails* get_details() {
300 return details_; 300 return details_;
301 } 301 }
302 302
303 private: 303 private:
304 FakeMalwareDetails* details_; 304 FakeMalwareDetails* details_;
305 }; 305 };
306 306
307 // A SafeBrowingBlockingPage class that lets us wait until it's hidden. 307 // A SafeBrowingBlockingPage class that lets us wait until it's hidden.
308 class TestSafeBrowsingBlockingPage : public SafeBrowsingBlockingPageV2 { 308 class TestSafeBrowsingBlockingPageV2 : public SafeBrowsingBlockingPageV2 {
309 public: 309 public:
310 TestSafeBrowsingBlockingPage(SafeBrowsingUIManager* manager, 310 TestSafeBrowsingBlockingPageV2(SafeBrowsingUIManager* manager,
311 WebContents* web_contents, 311 WebContents* web_contents,
312 const UnsafeResourceList& unsafe_resources) 312 const UnsafeResourceList& unsafe_resources)
313 : SafeBrowsingBlockingPageV2(manager, web_contents, unsafe_resources), 313 : SafeBrowsingBlockingPageV2(manager, web_contents, unsafe_resources),
314 wait_for_delete_(false) { 314 wait_for_delete_(false) {
315 // Don't wait the whole 3 seconds for the browser test. 315 // Don't wait the whole 3 seconds for the browser test.
316 malware_details_proceed_delay_ms_ = 100; 316 malware_details_proceed_delay_ms_ = 100;
317 } 317 }
318 318
319 virtual ~TestSafeBrowsingBlockingPage() { 319 virtual ~TestSafeBrowsingBlockingPageV2() {
320 LOG(INFO) << __FUNCTION__; 320 LOG(INFO) << __FUNCTION__;
321 if (!wait_for_delete_) 321 if (!wait_for_delete_)
322 return; 322 return;
323 323
324 // Notify that we are gone 324 // Notify that we are gone
325 base::MessageLoopForUI::current()->Quit(); 325 base::MessageLoopForUI::current()->Quit();
326 wait_for_delete_ = false; 326 wait_for_delete_ = false;
327 } 327 }
328 328
329 void WaitForDelete() { 329 void WaitForDelete() {
(...skipping 13 matching lines...) Expand all
343 } 343 }
344 virtual void OnDontProceed() OVERRIDE { 344 virtual void OnDontProceed() OVERRIDE {
345 LOG(INFO) << __FUNCTION__; 345 LOG(INFO) << __FUNCTION__;
346 SafeBrowsingBlockingPageV2::OnDontProceed(); 346 SafeBrowsingBlockingPageV2::OnDontProceed();
347 } 347 }
348 348
349 private: 349 private:
350 bool wait_for_delete_; 350 bool wait_for_delete_;
351 }; 351 };
352 352
353 // A SafeBrowingBlockingPage class that lets us wait until it's hidden.
354 class TestSafeBrowsingBlockingPageV3 : public SafeBrowsingBlockingPageV3 {
355 public:
356 TestSafeBrowsingBlockingPageV3(SafeBrowsingUIManager* manager,
357 WebContents* web_contents,
358 const UnsafeResourceList& unsafe_resources)
359 : SafeBrowsingBlockingPageV3(manager, web_contents, unsafe_resources),
360 wait_for_delete_(false) {
361 // Don't wait the whole 3 seconds for the browser test.
362 malware_details_proceed_delay_ms_ = 100;
363 }
364
365 virtual ~TestSafeBrowsingBlockingPageV3() {
366 LOG(INFO) << __FUNCTION__;
367 if (!wait_for_delete_)
368 return;
369
370 // Notify that we are gone
371 base::MessageLoopForUI::current()->Quit();
372 wait_for_delete_ = false;
373 }
374
375 void WaitForDelete() {
376 LOG(INFO) << __FUNCTION__;
377 wait_for_delete_ = true;
378 content::RunMessageLoop();
379 }
380
381 // InterstitialPageDelegate methods:
382 virtual void CommandReceived(const std::string& command) OVERRIDE {
383 LOG(INFO) << __FUNCTION__ << " " << command;
384 SafeBrowsingBlockingPageV3::CommandReceived(command);
385 }
386 virtual void OnProceed() OVERRIDE {
387 LOG(INFO) << __FUNCTION__;
388 SafeBrowsingBlockingPageV3::OnProceed();
389 }
390 virtual void OnDontProceed() OVERRIDE {
391 LOG(INFO) << __FUNCTION__;
392 SafeBrowsingBlockingPageV3::OnDontProceed();
393 }
394
395 private:
396 bool wait_for_delete_;
397 };
398
399 template <class TestSBInterstitialPage>
353 class TestSafeBrowsingBlockingPageFactory 400 class TestSafeBrowsingBlockingPageFactory
354 : public SafeBrowsingBlockingPageFactory { 401 : public SafeBrowsingBlockingPageFactory {
355 public: 402 public:
356 TestSafeBrowsingBlockingPageFactory() { } 403 TestSafeBrowsingBlockingPageFactory() { }
357 virtual ~TestSafeBrowsingBlockingPageFactory() { } 404 virtual ~TestSafeBrowsingBlockingPageFactory() { }
358 405
359 virtual SafeBrowsingBlockingPage* CreateSafeBrowsingPage( 406 virtual SafeBrowsingBlockingPage* CreateSafeBrowsingPage(
360 SafeBrowsingUIManager* delegate, 407 SafeBrowsingUIManager* delegate,
361 WebContents* web_contents, 408 WebContents* web_contents,
362 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources) 409 const SafeBrowsingBlockingPage::UnsafeResourceList& unsafe_resources)
363 OVERRIDE { 410 OVERRIDE {
364 return new TestSafeBrowsingBlockingPage(delegate, web_contents, 411 return new TestSBInterstitialPage(delegate, web_contents, unsafe_resources);
365 unsafe_resources);
366 } 412 }
367 }; 413 };
368 414
369 } // namespace 415 } // namespace
370 416
371 // Tests the safe browsing blocking page in a browser. 417 // Tests the safe browsing blocking page in a browser.
372 class SafeBrowsingBlockingPageTest : public InProcessBrowserTest { 418 template <class TestSBInterstitialPage>
419 class SafeBrowsingBlockingPageBrowserTest : public InProcessBrowserTest {
373 public: 420 public:
374 enum Visibility { 421 enum Visibility {
375 VISIBILITY_ERROR = -1, 422 VISIBILITY_ERROR = -1,
376 HIDDEN = 0, 423 HIDDEN = 0,
377 VISIBLE = 1, 424 VISIBLE = 1,
378 }; 425 };
379 426
380 SafeBrowsingBlockingPageTest() { 427 SafeBrowsingBlockingPageBrowserTest() {
381 } 428 }
382 429
383 virtual void SetUp() OVERRIDE { 430 virtual void SetUp() OVERRIDE {
384 SafeBrowsingService::RegisterFactory(&factory_); 431 SafeBrowsingService::RegisterFactory(&factory_);
385 SafeBrowsingBlockingPage::RegisterFactory(&blocking_page_factory_); 432 SafeBrowsingBlockingPage::RegisterFactory(&blocking_page_factory_);
386 MalwareDetails::RegisterFactory(&details_factory_); 433 MalwareDetails::RegisterFactory(&details_factory_);
387 InProcessBrowserTest::SetUp(); 434 InProcessBrowserTest::SetUp();
388 } 435 }
389 436
390 virtual void TearDown() OVERRIDE { 437 virtual void TearDown() OVERRIDE {
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 ASSERT_TRUE(interstitial_page); 512 ASSERT_TRUE(interstitial_page);
466 interstitial_page->Proceed(); 513 interstitial_page->Proceed();
467 } 514 }
468 515
469 void AssertNoInterstitial(bool wait_for_delete) { 516 void AssertNoInterstitial(bool wait_for_delete) {
470 WebContents* contents = 517 WebContents* contents =
471 browser()->tab_strip_model()->GetActiveWebContents(); 518 browser()->tab_strip_model()->GetActiveWebContents();
472 519
473 if (contents->ShowingInterstitialPage() && wait_for_delete) { 520 if (contents->ShowingInterstitialPage() && wait_for_delete) {
474 // We'll get notified when the interstitial is deleted. 521 // We'll get notified when the interstitial is deleted.
475 TestSafeBrowsingBlockingPage* page = 522 TestSafeBrowsingBlockingPageV2* page =
476 static_cast<TestSafeBrowsingBlockingPage*>( 523 static_cast<TestSafeBrowsingBlockingPageV2*>(
477 contents->GetInterstitialPage()->GetDelegateForTesting()); 524 contents->GetInterstitialPage()->GetDelegateForTesting());
478 page->WaitForDelete(); 525 page->WaitForDelete();
479 } 526 }
480 527
481 // Can't use InterstitialPage::GetInterstitialPage() because that 528 // Can't use InterstitialPage::GetInterstitialPage() because that
482 // gets updated after the TestSafeBrowsingBlockingPage destructor 529 // gets updated after the TestSafeBrowsingBlockingPage destructor
483 ASSERT_FALSE(contents->ShowingInterstitialPage()); 530 ASSERT_FALSE(contents->ShowingInterstitialPage());
484 } 531 }
485 532
486 bool YesInterstitial() { 533 bool YesInterstitial() {
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 InterstitialObserver observer( 663 InterstitialObserver observer(
617 browser()->tab_strip_model()->GetActiveWebContents(), 664 browser()->tab_strip_model()->GetActiveWebContents(),
618 base::Closure(), 665 base::Closure(),
619 loop_runner->QuitClosure()); 666 loop_runner->QuitClosure());
620 if (!Click(node_id)) 667 if (!Click(node_id))
621 return false; 668 return false;
622 loop_runner->Run(); 669 loop_runner->Run();
623 return true; 670 return true;
624 } 671 }
625 672
673 // TEST CASES.
mattm 2014/06/13 20:20:31 Could you use parameterized tests to avoid having
felt 2014/06/14 01:08:04 Sweet, I didn't know about IN_PROC_BROWSER_TEST_P.
674
675 void MalwareRedirectInIFrameCanceledTest() {
676 // 1. Test the case that redirect is a subresource.
677 MalwareRedirectCancelAndProceed("openWinIFrame");
678 // If the redirect was from subresource but canceled, "proceed" will
679 // continue with the rest of resources.
680 AssertNoInterstitial(true);
681 }
682
683 void MalwareRedirectCanceledTest() {
684 // 2. Test the case that redirect is the only resource.
685 MalwareRedirectCancelAndProceed("openWin");
686 // Clicking proceed won't do anything if the main request is cancelled
687 // already. See crbug.com/76460.
688 EXPECT_TRUE(YesInterstitial());
689 }
690
691 void MalwareDontProceedTest() {
692 #if defined(OS_WIN) && defined(USE_ASH)
693 // Disable this test in Metro+Ash for now (http://crbug.com/262796).
694 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests))
695 return;
696 #endif
697
698 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE);
699
700 EXPECT_EQ(VISIBLE, GetVisibility("malware-icon"));
701 EXPECT_EQ(HIDDEN, GetVisibility("subresource-icon"));
702 EXPECT_EQ(HIDDEN, GetVisibility("phishing-icon"));
703 EXPECT_EQ(VISIBLE, GetVisibility("check-report"));
704 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
705 EXPECT_EQ(HIDDEN, GetVisibility("report-error-link"));
706 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
707 EXPECT_TRUE(Click("see-more-link"));
708 EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link"));
709 EXPECT_EQ(HIDDEN, GetVisibility("report-error-link"));
710 EXPECT_EQ(VISIBLE, GetVisibility("proceed"));
711
712 EXPECT_TRUE(ClickAndWaitForDetach("back"));
713 AssertNoInterstitial(false); // Assert the interstitial is gone
714 EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank"
715 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
716 }
717
718 void MalwareProceedTest() {
719 GURL url = SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE);
720
721 EXPECT_TRUE(ClickAndWaitForDetach("proceed"));
722 AssertNoInterstitial(true); // Assert the interstitial is gone.
723 EXPECT_EQ(url,
724 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
725 }
726
727 void MalwareLearnMoreTest() {
728 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE);
729
730 EXPECT_TRUE(ClickAndWaitForDetach("learn-more-link"));
731 AssertNoInterstitial(false); // Assert the interstitial is gone
732
733 // We are in the help page.
734 EXPECT_EQ(
735 "/transparencyreport/safebrowsing/",
736 browser()->tab_strip_model()->GetActiveWebContents()->GetURL().path());
737 }
738
739 void MalwareIframeDontProceedTest() {
740 #if defined(OS_WIN) && defined(USE_ASH)
741 // Disable this test in Metro+Ash for now (http://crbug.com/262796).
742 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests))
743 return;
744 #endif
745
746 SetupMalwareIframeWarningAndNavigate();
747
748 EXPECT_EQ(HIDDEN, GetVisibility("malware-icon"));
749 EXPECT_EQ(VISIBLE, GetVisibility("subresource-icon"));
750 EXPECT_EQ(HIDDEN, GetVisibility("phishing-icon"));
751 EXPECT_EQ(VISIBLE, GetVisibility("check-report"));
752 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
753 EXPECT_EQ(HIDDEN, GetVisibility("report-error-link"));
754 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
755 EXPECT_TRUE(Click("see-more-link"));
756 EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link"));
757 EXPECT_EQ(HIDDEN, GetVisibility("report-error-link"));
758 EXPECT_EQ(VISIBLE, GetVisibility("proceed"));
759
760 EXPECT_TRUE(ClickAndWaitForDetach("back"));
761 AssertNoInterstitial(false); // Assert the interstitial is gone
762
763 EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank"
764 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
765 }
766
767 void MalwareIframeProceedTest() {
768 GURL url = SetupMalwareIframeWarningAndNavigate();
769
770 EXPECT_TRUE(ClickAndWaitForDetach("proceed"));
771 AssertNoInterstitial(true); // Assert the interstitial is gone
772
773 EXPECT_EQ(url,
774 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
775 }
776
777 void MalwareIframeReportDetailsTest() {
778 scoped_refptr<content::MessageLoopRunner> malware_report_sent_runner(
779 new content::MessageLoopRunner);
780 SetReportSentCallback(malware_report_sent_runner->QuitClosure());
781
782 GURL url = SetupMalwareIframeWarningAndNavigate();
783
784 LOG(INFO) << "1";
785
786 // If the DOM details from renderer did not already return, wait for them.
787 details_factory_.get_details()->WaitForDOM();
788 LOG(INFO) << "2";
789
790 EXPECT_TRUE(Click("check-report"));
791 LOG(INFO) << "3";
792
793 EXPECT_TRUE(ClickAndWaitForDetach("proceed"));
794 LOG(INFO) << "4";
795 AssertNoInterstitial(true); // Assert the interstitial is gone
796 LOG(INFO) << "5";
797
798 ASSERT_TRUE(browser()->profile()->GetPrefs()->GetBoolean(
799 prefs::kSafeBrowsingReportingEnabled));
800 LOG(INFO) << "6";
801
802 EXPECT_EQ(url,
803 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
804 LOG(INFO) << "7";
805
806 malware_report_sent_runner->Run();
807 std::string serialized = GetReportSent();
808 safe_browsing::ClientMalwareReportRequest report;
809 ASSERT_TRUE(report.ParseFromString(serialized));
810 // Verify the report is complete.
811 EXPECT_TRUE(report.complete());
812 LOG(INFO) << "8";
813 }
814
815 // Verifies that the "proceed anyway" link isn't available when it is disabled
816 // by the corresponding policy. Also verifies that sending the "proceed"
817 // command anyway doesn't advance to the malware site.
818 void ProceedDisabledTest() {
819 #if defined(OS_WIN) && defined(USE_ASH)
820 // Disable this test in Metro+Ash for now (http://crbug.com/262796).
821 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests))
822 return;
823 #endif
824
825 // Simulate a policy disabling the "proceed anyway" link.
826 browser()->profile()->GetPrefs()->SetBoolean(
827 prefs::kSafeBrowsingProceedAnywayDisabled, true);
828
829 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE);
830
831 EXPECT_EQ(VISIBLE, GetVisibility("check-report"));
832 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
833 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
834 EXPECT_EQ(HIDDEN, GetVisibility("proceed-span"));
835 EXPECT_TRUE(Click("see-more-link"));
836 EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link"));
837 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
838 EXPECT_EQ(HIDDEN, GetVisibility("proceed-span"));
839
840 // The "proceed" command should go back instead, if proceeding is disabled.
841 EXPECT_TRUE(ClickAndWaitForDetach("proceed"));
842 AssertNoInterstitial(true);
843 EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank"
844 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
845 }
846
847 // Verifies that the reporting checkbox is hidden on non-HTTP pages.
848 // TODO(mattm): Should also verify that no report is sent, but there isn't a
849 // good way to do that in the current design.
850 void ReportingDisabledTest() {
851 #if defined(OS_WIN) && defined(USE_ASH)
852 // Disable this test in Metro+Ash for now (http://crbug.com/262796).
853 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests))
854 return;
855 #endif
856
857 browser()->profile()->GetPrefs()->SetBoolean(
858 prefs::kSafeBrowsingReportingEnabled, true);
859
860 net::SpawnedTestServer https_server(
861 net::SpawnedTestServer::TYPE_HTTPS, net::SpawnedTestServer::kLocalhost,
862 base::FilePath(FILE_PATH_LITERAL("chrome/test/data")));
863 ASSERT_TRUE(https_server.Start());
864 GURL url = https_server.GetURL(kEmptyPage);
865 SetURLThreatType(url, SB_THREAT_TYPE_URL_MALWARE);
866 ui_test_utils::NavigateToURL(browser(), url);
867 ASSERT_TRUE(WaitForReady());
868
869 EXPECT_EQ(HIDDEN, GetVisibility("check-report"));
870 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
871 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
872 EXPECT_TRUE(Click("see-more-link"));
873 EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link"));
874 EXPECT_EQ(VISIBLE, GetVisibility("proceed"));
875
876 EXPECT_TRUE(ClickAndWaitForDetach("back"));
877 AssertNoInterstitial(false); // Assert the interstitial is gone
878 EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank"
879 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
880 }
881
882 void PhishingDontProceedTest() {
883 #if defined(OS_WIN) && defined(USE_ASH)
884 // Disable this test in Metro+Ash for now (http://crbug.com/262796).
885 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests))
886 return;
887 #endif
888
889 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING);
890
891 EXPECT_EQ(HIDDEN, GetVisibility("malware-icon"));
892 EXPECT_EQ(HIDDEN, GetVisibility("subresource-icon"));
893 EXPECT_EQ(VISIBLE, GetVisibility("phishing-icon"));
894 EXPECT_EQ(HIDDEN, GetVisibility("check-report"));
895 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
896 EXPECT_EQ(HIDDEN, GetVisibility("report-error-link"));
897 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
898 EXPECT_TRUE(Click("see-more-link"));
899 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
900 EXPECT_EQ(VISIBLE, GetVisibility("report-error-link"));
901 EXPECT_EQ(VISIBLE, GetVisibility("proceed"));
902
903 EXPECT_TRUE(ClickAndWaitForDetach("back"));
904 AssertNoInterstitial(false); // Assert the interstitial is gone
905 EXPECT_EQ(GURL(url::kAboutBlankURL), // We are back to "about:blank".
906 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
907 }
908
909 void PhishingProceedTest() {
910 GURL url = SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING);
911 LOG(INFO) << "1";
912
913 EXPECT_TRUE(ClickAndWaitForDetach("proceed"));
914 LOG(INFO) << "2";
915 AssertNoInterstitial(true); // Assert the interstitial is gone
916 LOG(INFO) << "3";
917 EXPECT_EQ(url,
918 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
919 LOG(INFO) << "4";
920 }
921
922 void PhishingReportErrorTest() {
923 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING);
924
925 EXPECT_TRUE(ClickAndWaitForDetach("report-error-link"));
926 AssertNoInterstitial(false); // Assert the interstitial is gone
927
928 // We are in the error reporting page.
929 EXPECT_EQ(
930 "/safebrowsing/report_error/",
931 browser()->tab_strip_model()->GetActiveWebContents()->GetURL().path());
932 }
933
934 void PhishingLearnMoreTest() {
935 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING);
936 LOG(INFO) << "1";
937
938 EXPECT_TRUE(ClickAndWaitForDetach("learn-more-link"));
939 LOG(INFO) << "2";
940 AssertNoInterstitial(false); // Assert the interstitial is gone
941
942 LOG(INFO) << "3";
943 // We are in the help page.
944 EXPECT_EQ(
945 "/transparencyreport/safebrowsing/",
946 browser()->tab_strip_model()->GetActiveWebContents()->GetURL().path());
947 LOG(INFO) << "4";
948 }
949
626 protected: 950 protected:
627 TestMalwareDetailsFactory details_factory_; 951 TestMalwareDetailsFactory details_factory_;
628 952
629 private: 953 private:
630 TestSafeBrowsingServiceFactory factory_; 954 TestSafeBrowsingServiceFactory factory_;
631 TestSafeBrowsingBlockingPageFactory blocking_page_factory_; 955 TestSafeBrowsingBlockingPageFactory<TestSBInterstitialPage>
632 956 blocking_page_factory_;
633 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingBlockingPageTest); 957
958 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingBlockingPageBrowserTest);
634 }; 959 };
635 960
961 typedef SafeBrowsingBlockingPageBrowserTest<TestSafeBrowsingBlockingPageV2>
962 SafeBrowsingInterstitialTestV2;
963 typedef SafeBrowsingBlockingPageBrowserTest<TestSafeBrowsingBlockingPageV3>
964 SafeBrowsingInterstitialTestV3;
965
636 // TODO(linux_aura) http://crbug.com/163931 966 // TODO(linux_aura) http://crbug.com/163931
637 // TODO(win_aura) http://crbug.com/154081 967 // TODO(win_aura) http://crbug.com/154081
638 #if defined(USE_AURA) && !defined(OS_CHROMEOS) 968 #if defined(USE_AURA) && !defined(OS_CHROMEOS)
639 #define MAYBE_MalwareRedirectInIFrameCanceled DISABLED_MalwareRedirectInIFrameCa nceled 969 #define MAYBE_MalwareRedirectInIFrameCanceled DISABLED_MalwareRedirectInIFrameCa nceled
640 #else 970 #else
641 #define MAYBE_MalwareRedirectInIFrameCanceled MalwareRedirectInIFrameCanceled 971 #define MAYBE_MalwareRedirectInIFrameCanceled MalwareRedirectInIFrameCanceled
642 #endif 972 #endif
643 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, 973 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2,
mattm 2014/06/13 20:20:31 You'll need to update the test names in tools/valg
felt 2014/06/14 01:08:04 Done.
644 MAYBE_MalwareRedirectInIFrameCanceled) { 974 MAYBE_MalwareRedirectInIFrameCanceled) {
645 // 1. Test the case that redirect is a subresource. 975 MalwareRedirectInIFrameCanceledTest();
646 MalwareRedirectCancelAndProceed("openWinIFrame"); 976 }
647 // If the redirect was from subresource but canceled, "proceed" will continue 977 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3,
648 // with the rest of resources. 978 MAYBE_MalwareRedirectInIFrameCanceled) {
649 AssertNoInterstitial(true); 979 MalwareRedirectInIFrameCanceledTest();
650 } 980 }
651 981
652 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, 982
653 MalwareRedirectCanceled) { 983 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2,
654 // 2. Test the case that redirect is the only resource. 984 MalwareRedirectCanceled) {
655 MalwareRedirectCancelAndProceed("openWin"); 985 MalwareRedirectCanceledTest();
656 // Clicking proceed won't do anything if the main request is cancelled 986 }
657 // already. See crbug.com/76460. 987 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3,
658 EXPECT_TRUE(YesInterstitial()); 988 MalwareRedirectCanceled) {
989 MalwareRedirectCanceledTest();
659 } 990 }
660 991
661 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MalwareDontProceed) { 992 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2, MalwareDontProceed) {
662 #if defined(OS_WIN) && defined(USE_ASH) 993 MalwareDontProceedTest();
663 // Disable this test in Metro+Ash for now (http://crbug.com/262796). 994 }
664 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) 995 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3, MalwareDontProceed) {
665 return; 996 MalwareDontProceedTest();
666 #endif
667
668 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE);
669
670 EXPECT_EQ(VISIBLE, GetVisibility("malware-icon"));
671 EXPECT_EQ(HIDDEN, GetVisibility("subresource-icon"));
672 EXPECT_EQ(HIDDEN, GetVisibility("phishing-icon"));
673 EXPECT_EQ(VISIBLE, GetVisibility("check-report"));
674 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
675 EXPECT_EQ(HIDDEN, GetVisibility("report-error-link"));
676 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
677 EXPECT_TRUE(Click("see-more-link"));
678 EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link"));
679 EXPECT_EQ(HIDDEN, GetVisibility("report-error-link"));
680 EXPECT_EQ(VISIBLE, GetVisibility("proceed"));
681
682 EXPECT_TRUE(ClickAndWaitForDetach("back"));
683 AssertNoInterstitial(false); // Assert the interstitial is gone
684 EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank"
685 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
686 } 997 }
687 998
688 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MalwareProceed) { 999 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2, MalwareProceed) {
689 GURL url = SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE); 1000 MalwareProceedTest();
690 1001 }
691 EXPECT_TRUE(ClickAndWaitForDetach("proceed")); 1002 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3, MalwareProceed) {
692 AssertNoInterstitial(true); // Assert the interstitial is gone. 1003 MalwareProceedTest();
693 EXPECT_EQ(url,
694 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
695 } 1004 }
696 1005
697 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, 1006 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2, MalwareLearnMore) {
698 MalwareLearnMore) { 1007 MalwareLearnMoreTest();
699 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE); 1008 }
700 1009 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3, MalwareLearnMore) {
701 EXPECT_TRUE(ClickAndWaitForDetach("learn-more-link")); 1010 MalwareLearnMoreTest();
702 AssertNoInterstitial(false); // Assert the interstitial is gone
703
704 // We are in the help page.
705 EXPECT_EQ(
706 "/transparencyreport/safebrowsing/",
707 browser()->tab_strip_model()->GetActiveWebContents()->GetURL().path());
708 } 1011 }
709 1012
710 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, 1013 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2,
711 MalwareIframeDontProceed) { 1014 MalwareIframeDontProceed) {
712 #if defined(OS_WIN) && defined(USE_ASH) 1015 MalwareIframeDontProceedTest();
713 // Disable this test in Metro+Ash for now (http://crbug.com/262796). 1016 }
714 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) 1017 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3,
715 return; 1018 MalwareIframeDontProceed) {
716 #endif 1019 MalwareIframeDontProceedTest();
717
718 SetupMalwareIframeWarningAndNavigate();
719
720 EXPECT_EQ(HIDDEN, GetVisibility("malware-icon"));
721 EXPECT_EQ(VISIBLE, GetVisibility("subresource-icon"));
722 EXPECT_EQ(HIDDEN, GetVisibility("phishing-icon"));
723 EXPECT_EQ(VISIBLE, GetVisibility("check-report"));
724 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
725 EXPECT_EQ(HIDDEN, GetVisibility("report-error-link"));
726 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
727 EXPECT_TRUE(Click("see-more-link"));
728 EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link"));
729 EXPECT_EQ(HIDDEN, GetVisibility("report-error-link"));
730 EXPECT_EQ(VISIBLE, GetVisibility("proceed"));
731
732 EXPECT_TRUE(ClickAndWaitForDetach("back"));
733 AssertNoInterstitial(false); // Assert the interstitial is gone
734
735 EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank"
736 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
737 } 1020 }
738 1021
739 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MalwareIframeProceed) { 1022 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2, MalwareIframeProceed) {
740 GURL url = SetupMalwareIframeWarningAndNavigate(); 1023 MalwareIframeProceedTest();
741 1024 }
742 EXPECT_TRUE(ClickAndWaitForDetach("proceed")); 1025 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3, MalwareIframeProceed) {
743 AssertNoInterstitial(true); // Assert the interstitial is gone 1026 MalwareIframeProceedTest();
744
745 EXPECT_EQ(url,
746 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
747 } 1027 }
748 1028
749 // http://crbug.com/273302 1029 // http://crbug.com/273302
750 #if defined(OS_WIN) 1030 #if defined(OS_WIN)
751 // Temporarily re-enabled to get some logs. 1031 // Temporarily re-enabled to get some logs.
752 #define MAYBE_MalwareIframeReportDetails MalwareIframeReportDetails 1032 #define MAYBE_MalwareIframeReportDetails MalwareIframeReportDetails
753 #else 1033 #else
754 #define MAYBE_MalwareIframeReportDetails MalwareIframeReportDetails 1034 #define MAYBE_MalwareIframeReportDetails MalwareIframeReportDetails
755 #endif 1035 #endif
756 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, 1036 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2,
757 MAYBE_MalwareIframeReportDetails) { 1037 MAYBE_MalwareIframeReportDetails) {
758 scoped_refptr<content::MessageLoopRunner> malware_report_sent_runner( 1038 MalwareIframeReportDetailsTest();
759 new content::MessageLoopRunner); 1039 }
760 SetReportSentCallback(malware_report_sent_runner->QuitClosure()); 1040 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3,
761 1041 MAYBE_MalwareIframeReportDetails) {
762 GURL url = SetupMalwareIframeWarningAndNavigate(); 1042 MalwareIframeReportDetailsTest();
763
764 LOG(INFO) << "1";
765
766 // If the DOM details from renderer did not already return, wait for them.
767 details_factory_.get_details()->WaitForDOM();
768 LOG(INFO) << "2";
769
770 EXPECT_TRUE(Click("check-report"));
771 LOG(INFO) << "3";
772
773 EXPECT_TRUE(ClickAndWaitForDetach("proceed"));
774 LOG(INFO) << "4";
775 AssertNoInterstitial(true); // Assert the interstitial is gone
776 LOG(INFO) << "5";
777
778 ASSERT_TRUE(browser()->profile()->GetPrefs()->GetBoolean(
779 prefs::kSafeBrowsingReportingEnabled));
780 LOG(INFO) << "6";
781
782 EXPECT_EQ(url,
783 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
784 LOG(INFO) << "7";
785
786 malware_report_sent_runner->Run();
787 std::string serialized = GetReportSent();
788 safe_browsing::ClientMalwareReportRequest report;
789 ASSERT_TRUE(report.ParseFromString(serialized));
790 // Verify the report is complete.
791 EXPECT_TRUE(report.complete());
792 LOG(INFO) << "8";
793 } 1043 }
794 1044
795 // Verifies that the "proceed anyway" link isn't available when it is disabled 1045 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2, ProceedDisabled) {
796 // by the corresponding policy. Also verifies that sending the "proceed" 1046 ProceedDisabledTest();
797 // command anyway doesn't advance to the malware site. 1047 }
798 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, ProceedDisabled) { 1048 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3, ProceedDisabled) {
799 #if defined(OS_WIN) && defined(USE_ASH) 1049 ProceedDisabledTest();
800 // Disable this test in Metro+Ash for now (http://crbug.com/262796).
801 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests))
802 return;
803 #endif
804
805 // Simulate a policy disabling the "proceed anyway" link.
806 browser()->profile()->GetPrefs()->SetBoolean(
807 prefs::kSafeBrowsingProceedAnywayDisabled, true);
808
809 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_MALWARE);
810
811 EXPECT_EQ(VISIBLE, GetVisibility("check-report"));
812 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
813 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
814 EXPECT_EQ(HIDDEN, GetVisibility("proceed-span"));
815 EXPECT_TRUE(Click("see-more-link"));
816 EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link"));
817 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
818 EXPECT_EQ(HIDDEN, GetVisibility("proceed-span"));
819
820 // The "proceed" command should go back instead, if proceeding is disabled.
821 EXPECT_TRUE(ClickAndWaitForDetach("proceed"));
822 AssertNoInterstitial(true);
823 EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank"
824 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
825 } 1050 }
826 1051
827 // Verifies that the reporting checkbox is hidden on non-HTTP pages. 1052 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2, ReportingDisabled) {
828 // TODO(mattm): Should also verify that no report is sent, but there isn't a 1053 ReportingDisabledTest();
829 // good way to do that in the current design. 1054 }
830 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, ReportingDisabled) { 1055 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3, ReportingDisabled) {
831 #if defined(OS_WIN) && defined(USE_ASH) 1056 ReportingDisabledTest();
832 // Disable this test in Metro+Ash for now (http://crbug.com/262796).
833 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests))
834 return;
835 #endif
836
837 browser()->profile()->GetPrefs()->SetBoolean(
838 prefs::kSafeBrowsingReportingEnabled, true);
839
840 net::SpawnedTestServer https_server(
841 net::SpawnedTestServer::TYPE_HTTPS, net::SpawnedTestServer::kLocalhost,
842 base::FilePath(FILE_PATH_LITERAL("chrome/test/data")));
843 ASSERT_TRUE(https_server.Start());
844 GURL url = https_server.GetURL(kEmptyPage);
845 SetURLThreatType(url, SB_THREAT_TYPE_URL_MALWARE);
846 ui_test_utils::NavigateToURL(browser(), url);
847 ASSERT_TRUE(WaitForReady());
848
849 EXPECT_EQ(HIDDEN, GetVisibility("check-report"));
850 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
851 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
852 EXPECT_TRUE(Click("see-more-link"));
853 EXPECT_EQ(VISIBLE, GetVisibility("show-diagnostic-link"));
854 EXPECT_EQ(VISIBLE, GetVisibility("proceed"));
855
856 EXPECT_TRUE(ClickAndWaitForDetach("back"));
857 AssertNoInterstitial(false); // Assert the interstitial is gone
858 EXPECT_EQ(GURL(url::kAboutBlankURL), // Back to "about:blank"
859 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
860 } 1057 }
861 1058
862 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, PhishingDontProceed) { 1059 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2, PhishingDontProceed) {
863 #if defined(OS_WIN) && defined(USE_ASH) 1060 PhishingDontProceedTest();
864 // Disable this test in Metro+Ash for now (http://crbug.com/262796). 1061 }
865 if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kAshBrowserTests)) 1062 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3, PhishingDontProceed) {
866 return; 1063 PhishingDontProceedTest();
867 #endif
868
869 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING);
870
871 EXPECT_EQ(HIDDEN, GetVisibility("malware-icon"));
872 EXPECT_EQ(HIDDEN, GetVisibility("subresource-icon"));
873 EXPECT_EQ(VISIBLE, GetVisibility("phishing-icon"));
874 EXPECT_EQ(HIDDEN, GetVisibility("check-report"));
875 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
876 EXPECT_EQ(HIDDEN, GetVisibility("report-error-link"));
877 EXPECT_EQ(HIDDEN, GetVisibility("proceed"));
878 EXPECT_TRUE(Click("see-more-link"));
879 EXPECT_EQ(HIDDEN, GetVisibility("show-diagnostic-link"));
880 EXPECT_EQ(VISIBLE, GetVisibility("report-error-link"));
881 EXPECT_EQ(VISIBLE, GetVisibility("proceed"));
882
883 EXPECT_TRUE(ClickAndWaitForDetach("back"));
884 AssertNoInterstitial(false); // Assert the interstitial is gone
885 EXPECT_EQ(GURL(url::kAboutBlankURL), // We are back to "about:blank".
886 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
887 } 1064 }
888 1065
889 // http://crbug.com/247763 1066 // http://crbug.com/247763
890 #if defined(OS_WIN) 1067 #if defined(OS_WIN)
891 // Temporarily re-enabled to get some logs. 1068 // Temporarily re-enabled to get some logs.
892 #define MAYBE_PhishingProceed PhishingProceed 1069 #define MAYBE_PhishingProceed PhishingProceed
893 #else 1070 #else
894 #define MAYBE_PhishingProceed PhishingProceed 1071 #define MAYBE_PhishingProceed PhishingProceed
895 #endif 1072 #endif
896 1073 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2, MAYBE_PhishingProceed) {
897 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MAYBE_PhishingProceed) { 1074 PhishingProceedTest();
898 GURL url = SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING); 1075 }
899 LOG(INFO) << "1"; 1076 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3, MAYBE_PhishingProceed) {
900 1077 PhishingProceedTest();
901 EXPECT_TRUE(ClickAndWaitForDetach("proceed"));
902 LOG(INFO) << "2";
903 AssertNoInterstitial(true); // Assert the interstitial is gone
904 LOG(INFO) << "3";
905 EXPECT_EQ(url,
906 browser()->tab_strip_model()->GetActiveWebContents()->GetURL());
907 LOG(INFO) << "4";
908 } 1078 }
909 1079
910 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, PhishingReportError) { 1080 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2, PhishingReportError) {
911 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING); 1081 PhishingReportErrorTest();
912 1082 }
913 EXPECT_TRUE(ClickAndWaitForDetach("report-error-link")); 1083 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3, PhishingReportError) {
914 AssertNoInterstitial(false); // Assert the interstitial is gone 1084 PhishingReportErrorTest();
915
916 // We are in the error reporting page.
917 EXPECT_EQ(
918 "/safebrowsing/report_error/",
919 browser()->tab_strip_model()->GetActiveWebContents()->GetURL().path());
920 } 1085 }
921 1086
922 // See crbug.com/248447 1087 // See crbug.com/248447
923 #if defined(OS_WIN) 1088 #if defined(OS_WIN)
924 // Temporarily re-enabled to get some logs. 1089 // Temporarily re-enabled to get some logs.
925 #define MAYBE_PhishingLearnMore PhishingLearnMore 1090 #define MAYBE_PhishingLearnMore PhishingLearnMore
926 #else 1091 #else
927 #define MAYBE_PhishingLearnMore PhishingLearnMore 1092 #define MAYBE_PhishingLearnMore PhishingLearnMore
928 #endif 1093 #endif
929 1094 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV2,
930 IN_PROC_BROWSER_TEST_F(SafeBrowsingBlockingPageTest, MAYBE_PhishingLearnMore) { 1095 MAYBE_PhishingLearnMore) {
931 SetupWarningAndNavigate(SB_THREAT_TYPE_URL_PHISHING); 1096 PhishingLearnMoreTest();
932 LOG(INFO) << "1";
933
934 EXPECT_TRUE(ClickAndWaitForDetach("learn-more-link"));
935 LOG(INFO) << "2";
936 AssertNoInterstitial(false); // Assert the interstitial is gone
937
938 LOG(INFO) << "3";
939 // We are in the help page.
940 EXPECT_EQ(
941 "/transparencyreport/safebrowsing/",
942 browser()->tab_strip_model()->GetActiveWebContents()->GetURL().path());
943 LOG(INFO) << "4";
944 } 1097 }
1098 IN_PROC_BROWSER_TEST_F(SafeBrowsingInterstitialTestV3,
1099 MAYBE_PhishingLearnMore) {
1100 PhishingLearnMoreTest();
1101 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698