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

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 1420053005: Move code in components/safe_browsing_db and chrome/browser/s_b/ under the safe_browsing namespace. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@02_components_move
Patch Set: Remove '// namespace safe_browsing' for a small fwd decl block. Created 5 years, 1 month 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
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 #include <deque> 5 #include <deque>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 using content::NavigationController; 119 using content::NavigationController;
120 using content::OpenURLParams; 120 using content::OpenURLParams;
121 using content::Referrer; 121 using content::Referrer;
122 using content::RenderFrameHost; 122 using content::RenderFrameHost;
123 using content::RenderViewHost; 123 using content::RenderViewHost;
124 using content::RenderWidgetHost; 124 using content::RenderWidgetHost;
125 using content::TestNavigationObserver; 125 using content::TestNavigationObserver;
126 using content::WebContents; 126 using content::WebContents;
127 using content::WebContentsObserver; 127 using content::WebContentsObserver;
128 using net::NetworkChangeNotifier; 128 using net::NetworkChangeNotifier;
129 using safe_browsing::LocalSafeBrowsingDatabaseManager;
130 using safe_browsing::SafeBrowsingService;
131 using safe_browsing::SBThreatType;
129 using task_manager::browsertest_util::WaitForTaskManagerRows; 132 using task_manager::browsertest_util::WaitForTaskManagerRows;
130 133
131 // Prerender tests work as follows: 134 // Prerender tests work as follows:
132 // 135 //
133 // A page with a prefetch link to the test page is loaded. Once prerendered, 136 // A page with a prefetch link to the test page is loaded. Once prerendered,
134 // its Javascript function DidPrerenderPass() is called, which returns true if 137 // its Javascript function DidPrerenderPass() is called, which returns true if
135 // the page behaves as expected when prerendered. 138 // the page behaves as expected when prerendered.
136 // 139 //
137 // The prerendered page is then displayed on a tab. The Javascript function 140 // The prerendered page is then displayed on a tab. The Javascript function
138 // DidDisplayPass() is called, and returns true if the page behaved as it 141 // DidDisplayPass() is called, and returns true if the page behaved as it
(...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after
711 // because FakeSafeBrowsingDatabaseManager does not implement 714 // because FakeSafeBrowsingDatabaseManager does not implement
712 // LocalSafeBrowsingDatabaseManager. 715 // LocalSafeBrowsingDatabaseManager.
713 #if defined(FULL_SAFE_BROWSING) 716 #if defined(FULL_SAFE_BROWSING)
714 // A SafeBrowsingDatabaseManager implementation that returns a fixed result for 717 // A SafeBrowsingDatabaseManager implementation that returns a fixed result for
715 // a given URL. 718 // a given URL.
716 class FakeSafeBrowsingDatabaseManager 719 class FakeSafeBrowsingDatabaseManager
717 : public LocalSafeBrowsingDatabaseManager { 720 : public LocalSafeBrowsingDatabaseManager {
718 public: 721 public:
719 explicit FakeSafeBrowsingDatabaseManager(SafeBrowsingService* service) 722 explicit FakeSafeBrowsingDatabaseManager(SafeBrowsingService* service)
720 : LocalSafeBrowsingDatabaseManager(service), 723 : LocalSafeBrowsingDatabaseManager(service),
721 threat_type_(SB_THREAT_TYPE_SAFE) {} 724 threat_type_(safe_browsing::SB_THREAT_TYPE_SAFE) {}
722 725
723 // Called on the IO thread to check if the given url is safe or not. If we 726 // Called on the IO thread to check if the given url is safe or not. If we
724 // can synchronously determine that the url is safe, CheckUrl returns true. 727 // can synchronously determine that the url is safe, CheckUrl returns true.
725 // Otherwise it returns false, and "client" is called asynchronously with the 728 // Otherwise it returns false, and "client" is called asynchronously with the
726 // result when it is ready. 729 // result when it is ready.
727 // Returns true, indicating a SAFE result, unless the URL is the fixed URL 730 // Returns true, indicating a SAFE result, unless the URL is the fixed URL
728 // specified by the user, and the user-specified result is not SAFE 731 // specified by the user, and the user-specified result is not SAFE
729 // (in which that result will be communicated back via a call into the 732 // (in which that result will be communicated back via a call into the
730 // client, and false will be returned). 733 // client, and false will be returned).
731 // Overrides SafeBrowsingDatabaseManager::CheckBrowseUrl. 734 // Overrides SafeBrowsingDatabaseManager::CheckBrowseUrl.
732 bool CheckBrowseUrl(const GURL& gurl, Client* client) override { 735 bool CheckBrowseUrl(const GURL& gurl, Client* client) override {
733 if (gurl != url_ || threat_type_ == SB_THREAT_TYPE_SAFE) 736 if (gurl != url_ || threat_type_ == safe_browsing::SB_THREAT_TYPE_SAFE)
734 return true; 737 return true;
735 738
736 BrowserThread::PostTask( 739 BrowserThread::PostTask(
737 BrowserThread::IO, FROM_HERE, 740 BrowserThread::IO, FROM_HERE,
738 base::Bind(&FakeSafeBrowsingDatabaseManager::OnCheckBrowseURLDone, 741 base::Bind(&FakeSafeBrowsingDatabaseManager::OnCheckBrowseURLDone,
739 this, gurl, client)); 742 this, gurl, client));
740 return false; 743 return false;
741 } 744 }
742 745
743 void SetThreatTypeForUrl(const GURL& url, SBThreatType threat_type) { 746 void SetThreatTypeForUrl(const GURL& url, SBThreatType threat_type) {
744 url_ = url; 747 url_ = url;
745 threat_type_ = threat_type; 748 threat_type_ = threat_type;
746 } 749 }
747 750
748 private: 751 private:
749 ~FakeSafeBrowsingDatabaseManager() override {} 752 ~FakeSafeBrowsingDatabaseManager() override {}
750 753
751 void OnCheckBrowseURLDone(const GURL& gurl, Client* client) { 754 void OnCheckBrowseURLDone(const GURL& gurl, Client* client) {
752 std::vector<SBThreatType> expected_threats; 755 std::vector<SBThreatType> expected_threats;
753 expected_threats.push_back(SB_THREAT_TYPE_URL_MALWARE); 756 expected_threats.push_back(safe_browsing::SB_THREAT_TYPE_URL_MALWARE);
754 expected_threats.push_back(SB_THREAT_TYPE_URL_PHISHING); 757 expected_threats.push_back(safe_browsing::SB_THREAT_TYPE_URL_PHISHING);
755 // TODO(nparker): Replace SafeBrowsingCheck w/ a call to 758 // TODO(nparker): Replace SafeBrowsingCheck w/ a call to
756 // client->OnCheckBrowseUrlResult() 759 // client->OnCheckBrowseUrlResult()
757 LocalSafeBrowsingDatabaseManager::SafeBrowsingCheck sb_check( 760 LocalSafeBrowsingDatabaseManager::SafeBrowsingCheck sb_check(
758 std::vector<GURL>(1, gurl), 761 std::vector<GURL>(1, gurl),
759 std::vector<SBFullHash>(), 762 std::vector<safe_browsing::SBFullHash>(),
760 client, 763 client,
761 safe_browsing::MALWARE, 764 safe_browsing::MALWARE,
762 expected_threats); 765 expected_threats);
763 sb_check.url_results[0] = threat_type_; 766 sb_check.url_results[0] = threat_type_;
764 sb_check.OnSafeBrowsingResult(); 767 sb_check.OnSafeBrowsingResult();
765 } 768 }
766 769
767 GURL url_; 770 GURL url_;
768 SBThreatType threat_type_; 771 SBThreatType threat_type_;
769 DISALLOW_COPY_AND_ASSIGN(FakeSafeBrowsingDatabaseManager); 772 DISALLOW_COPY_AND_ASSIGN(FakeSafeBrowsingDatabaseManager);
770 }; 773 };
771 774
772 class FakeSafeBrowsingService : public SafeBrowsingService { 775 class FakeSafeBrowsingService : public SafeBrowsingService {
773 public: 776 public:
774 FakeSafeBrowsingService() { } 777 FakeSafeBrowsingService() { }
775 778
776 // Returned pointer has the same lifespan as the database_manager_ refcounted 779 // Returned pointer has the same lifespan as the database_manager_ refcounted
777 // object. 780 // object.
778 FakeSafeBrowsingDatabaseManager* fake_database_manager() { 781 FakeSafeBrowsingDatabaseManager* fake_database_manager() {
779 return fake_database_manager_; 782 return fake_database_manager_;
780 } 783 }
781 784
782 protected: 785 protected:
783 ~FakeSafeBrowsingService() override {} 786 ~FakeSafeBrowsingService() override {}
784 787
785 SafeBrowsingDatabaseManager* CreateDatabaseManager() override { 788 safe_browsing::SafeBrowsingDatabaseManager* CreateDatabaseManager() override {
786 fake_database_manager_ = new FakeSafeBrowsingDatabaseManager(this); 789 fake_database_manager_ = new FakeSafeBrowsingDatabaseManager(this);
787 return fake_database_manager_; 790 return fake_database_manager_;
788 } 791 }
789 792
790 private: 793 private:
791 FakeSafeBrowsingDatabaseManager* fake_database_manager_; 794 FakeSafeBrowsingDatabaseManager* fake_database_manager_;
792 795
793 DISALLOW_COPY_AND_ASSIGN(FakeSafeBrowsingService); 796 DISALLOW_COPY_AND_ASSIGN(FakeSafeBrowsingService);
794 }; 797 };
795 798
796 // Factory that creates FakeSafeBrowsingService instances. 799 // Factory that creates FakeSafeBrowsingService instances.
797 class TestSafeBrowsingServiceFactory : public SafeBrowsingServiceFactory { 800 class TestSafeBrowsingServiceFactory
801 : public safe_browsing::SafeBrowsingServiceFactory {
798 public: 802 public:
799 TestSafeBrowsingServiceFactory() : 803 TestSafeBrowsingServiceFactory() :
800 most_recent_service_(NULL) { } 804 most_recent_service_(NULL) { }
801 ~TestSafeBrowsingServiceFactory() override {} 805 ~TestSafeBrowsingServiceFactory() override {}
802 806
803 SafeBrowsingService* CreateSafeBrowsingService() override { 807 SafeBrowsingService* CreateSafeBrowsingService() override {
804 most_recent_service_ = new FakeSafeBrowsingService(); 808 most_recent_service_ = new FakeSafeBrowsingService();
805 return most_recent_service_; 809 return most_recent_service_;
806 } 810 }
807 811
(...skipping 2233 matching lines...) Expand 10 before | Expand all | Expand 10 after
3041 FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED, 3045 FINAL_STATUS_SSL_CLIENT_CERTIFICATE_REQUESTED,
3042 0); 3046 0);
3043 } 3047 }
3044 3048
3045 #if defined(FULL_SAFE_BROWSING) 3049 #if defined(FULL_SAFE_BROWSING)
3046 // Ensures that we do not prerender pages with a safe browsing 3050 // Ensures that we do not prerender pages with a safe browsing
3047 // interstitial. 3051 // interstitial.
3048 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSafeBrowsingTopLevel) { 3052 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSafeBrowsingTopLevel) {
3049 GURL url = test_server()->GetURL("files/prerender/prerender_page.html"); 3053 GURL url = test_server()->GetURL("files/prerender/prerender_page.html");
3050 GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl( 3054 GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl(
3051 url, SB_THREAT_TYPE_URL_MALWARE); 3055 url, safe_browsing::SB_THREAT_TYPE_URL_MALWARE);
3052 PrerenderTestURL("files/prerender/prerender_page.html", 3056 PrerenderTestURL("files/prerender/prerender_page.html",
3053 FINAL_STATUS_SAFE_BROWSING, 0); 3057 FINAL_STATUS_SAFE_BROWSING, 0);
3054 } 3058 }
3055 3059
3056 // Ensures that server redirects to a malware page will cancel prerenders. 3060 // Ensures that server redirects to a malware page will cancel prerenders.
3057 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, 3061 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
3058 PrerenderSafeBrowsingServerRedirect) { 3062 PrerenderSafeBrowsingServerRedirect) {
3059 GURL url = test_server()->GetURL("files/prerender/prerender_page.html"); 3063 GURL url = test_server()->GetURL("files/prerender/prerender_page.html");
3060 GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl( 3064 GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl(
3061 url, SB_THREAT_TYPE_URL_MALWARE); 3065 url, safe_browsing::SB_THREAT_TYPE_URL_MALWARE);
3062 PrerenderTestURL(CreateServerRedirect("files/prerender/prerender_page.html"), 3066 PrerenderTestURL(CreateServerRedirect("files/prerender/prerender_page.html"),
3063 FINAL_STATUS_SAFE_BROWSING, 3067 FINAL_STATUS_SAFE_BROWSING,
3064 0); 3068 0);
3065 } 3069 }
3066 3070
3067 // Ensures that client redirects to a malware page will cancel prerenders. 3071 // Ensures that client redirects to a malware page will cancel prerenders.
3068 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, 3072 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest,
3069 PrerenderSafeBrowsingClientRedirect) { 3073 PrerenderSafeBrowsingClientRedirect) {
3070 GURL url = test_server()->GetURL("files/prerender/prerender_page.html"); 3074 GURL url = test_server()->GetURL("files/prerender/prerender_page.html");
3071 GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl( 3075 GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl(
3072 url, SB_THREAT_TYPE_URL_MALWARE); 3076 url, safe_browsing::SB_THREAT_TYPE_URL_MALWARE);
3073 PrerenderTestURL(CreateClientRedirect("files/prerender/prerender_page.html"), 3077 PrerenderTestURL(CreateClientRedirect("files/prerender/prerender_page.html"),
3074 FINAL_STATUS_SAFE_BROWSING, 3078 FINAL_STATUS_SAFE_BROWSING,
3075 1); 3079 1);
3076 } 3080 }
3077 3081
3078 // Ensures that we do not prerender pages which have a malware subresource. 3082 // Ensures that we do not prerender pages which have a malware subresource.
3079 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSafeBrowsingSubresource) { 3083 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSafeBrowsingSubresource) {
3080 GURL image_url = test_server()->GetURL("files/prerender/image.jpeg"); 3084 GURL image_url = test_server()->GetURL("files/prerender/image.jpeg");
3081 GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl( 3085 GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl(
3082 image_url, SB_THREAT_TYPE_URL_MALWARE); 3086 image_url, safe_browsing::SB_THREAT_TYPE_URL_MALWARE);
3083 std::vector<net::SpawnedTestServer::StringPair> replacement_text; 3087 std::vector<net::SpawnedTestServer::StringPair> replacement_text;
3084 replacement_text.push_back( 3088 replacement_text.push_back(
3085 std::make_pair("REPLACE_WITH_IMAGE_URL", image_url.spec())); 3089 std::make_pair("REPLACE_WITH_IMAGE_URL", image_url.spec()));
3086 std::string replacement_path; 3090 std::string replacement_path;
3087 ASSERT_TRUE(net::SpawnedTestServer::GetFilePathWithReplacements( 3091 ASSERT_TRUE(net::SpawnedTestServer::GetFilePathWithReplacements(
3088 "files/prerender/prerender_with_image.html", 3092 "files/prerender/prerender_with_image.html",
3089 replacement_text, 3093 replacement_text,
3090 &replacement_path)); 3094 &replacement_path));
3091 PrerenderTestURL(replacement_path, 3095 PrerenderTestURL(replacement_path,
3092 FINAL_STATUS_SAFE_BROWSING, 3096 FINAL_STATUS_SAFE_BROWSING,
3093 0); 3097 0);
3094 } 3098 }
3095 3099
3096 // Ensures that we do not prerender pages which have a malware iframe. 3100 // Ensures that we do not prerender pages which have a malware iframe.
3097 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSafeBrowsingIframe) { 3101 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderSafeBrowsingIframe) {
3098 GURL iframe_url = test_server()->GetURL( 3102 GURL iframe_url = test_server()->GetURL(
3099 "files/prerender/prerender_embedded_content.html"); 3103 "files/prerender/prerender_embedded_content.html");
3100 GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl( 3104 GetFakeSafeBrowsingDatabaseManager()->SetThreatTypeForUrl(
3101 iframe_url, SB_THREAT_TYPE_URL_MALWARE); 3105 iframe_url, safe_browsing::SB_THREAT_TYPE_URL_MALWARE);
3102 std::vector<net::SpawnedTestServer::StringPair> replacement_text; 3106 std::vector<net::SpawnedTestServer::StringPair> replacement_text;
3103 replacement_text.push_back( 3107 replacement_text.push_back(
3104 std::make_pair("REPLACE_WITH_URL", iframe_url.spec())); 3108 std::make_pair("REPLACE_WITH_URL", iframe_url.spec()));
3105 std::string replacement_path; 3109 std::string replacement_path;
3106 ASSERT_TRUE(net::SpawnedTestServer::GetFilePathWithReplacements( 3110 ASSERT_TRUE(net::SpawnedTestServer::GetFilePathWithReplacements(
3107 "files/prerender/prerender_with_iframe.html", 3111 "files/prerender/prerender_with_iframe.html",
3108 replacement_text, 3112 replacement_text,
3109 &replacement_path)); 3113 &replacement_path));
3110 PrerenderTestURL(replacement_path, 3114 PrerenderTestURL(replacement_path,
3111 FINAL_STATUS_SAFE_BROWSING, 3115 FINAL_STATUS_SAFE_BROWSING,
(...skipping 1051 matching lines...) Expand 10 before | Expand all | Expand 10 after
4163 4167
4164 NavigateToDestURL(); 4168 NavigateToDestURL();
4165 EXPECT_EQ(1U, task_manager.tasks().size()); 4169 EXPECT_EQ(1U, task_manager.tasks().size());
4166 } 4170 }
4167 4171
4168 } // namespace 4172 } // namespace
4169 4173
4170 #endif // defined(ENABLE_TASK_MANAGER) 4174 #endif // defined(ENABLE_TASK_MANAGER)
4171 4175
4172 } // namespace prerender 4176 } // namespace prerender
OLDNEW
« no previous file with comments | « chrome/browser/metrics/chrome_metrics_services_manager_client.cc ('k') | chrome/browser/profiles/profile_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698