| 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 #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 26 matching lines...) Expand all Loading... |
| 37 #include "chrome/browser/prerender/prerender_field_trial.h" | 37 #include "chrome/browser/prerender/prerender_field_trial.h" |
| 38 #include "chrome/browser/prerender/prerender_handle.h" | 38 #include "chrome/browser/prerender/prerender_handle.h" |
| 39 #include "chrome/browser/prerender/prerender_link_manager.h" | 39 #include "chrome/browser/prerender/prerender_link_manager.h" |
| 40 #include "chrome/browser/prerender/prerender_link_manager_factory.h" | 40 #include "chrome/browser/prerender/prerender_link_manager_factory.h" |
| 41 #include "chrome/browser/prerender/prerender_manager.h" | 41 #include "chrome/browser/prerender/prerender_manager.h" |
| 42 #include "chrome/browser/prerender/prerender_manager_factory.h" | 42 #include "chrome/browser/prerender/prerender_manager_factory.h" |
| 43 #include "chrome/browser/profiles/profile.h" | 43 #include "chrome/browser/profiles/profile.h" |
| 44 #include "chrome/browser/profiles/profile_io_data.h" | 44 #include "chrome/browser/profiles/profile_io_data.h" |
| 45 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.
h" | 45 #include "chrome/browser/renderer_host/chrome_resource_dispatcher_host_delegate.
h" |
| 46 #include "chrome/browser/safe_browsing/database_manager.h" | 46 #include "chrome/browser/safe_browsing/database_manager.h" |
| 47 #include "chrome/browser/safe_browsing/local_database_manager.h" |
| 47 #include "chrome/browser/safe_browsing/safe_browsing_service.h" | 48 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| 48 #include "chrome/browser/safe_browsing/safe_browsing_util.h" | 49 #include "chrome/browser/safe_browsing/safe_browsing_util.h" |
| 50 #include "chrome/browser/safe_browsing/test_database_manager.h" |
| 49 #include "chrome/browser/task_manager/task_manager.h" | 51 #include "chrome/browser/task_manager/task_manager.h" |
| 50 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" | 52 #include "chrome/browser/task_manager/task_manager_browsertest_util.h" |
| 51 #include "chrome/browser/ui/browser.h" | 53 #include "chrome/browser/ui/browser.h" |
| 52 #include "chrome/browser/ui/browser_commands.h" | 54 #include "chrome/browser/ui/browser_commands.h" |
| 53 #include "chrome/browser/ui/browser_finder.h" | 55 #include "chrome/browser/ui/browser_finder.h" |
| 54 #include "chrome/browser/ui/browser_navigator.h" | 56 #include "chrome/browser/ui/browser_navigator.h" |
| 55 #include "chrome/browser/ui/browser_window.h" | 57 #include "chrome/browser/ui/browser_window.h" |
| 56 #include "chrome/browser/ui/location_bar/location_bar.h" | 58 #include "chrome/browser/ui/location_bar/location_bar.h" |
| 57 #include "chrome/browser/ui/omnibox/omnibox_edit_model.h" | 59 #include "chrome/browser/ui/omnibox/omnibox_edit_model.h" |
| 58 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" | 60 #include "chrome/browser/ui/omnibox/omnibox_popup_model.h" |
| (...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 692 handle(handle) { | 694 handle(handle) { |
| 693 } | 695 } |
| 694 | 696 |
| 695 FinalStatus final_status; | 697 FinalStatus final_status; |
| 696 base::WeakPtr<TestPrerender> handle; | 698 base::WeakPtr<TestPrerender> handle; |
| 697 }; | 699 }; |
| 698 | 700 |
| 699 std::deque<ExpectedContents> expected_contents_queue_; | 701 std::deque<ExpectedContents> expected_contents_queue_; |
| 700 }; | 702 }; |
| 701 | 703 |
| 704 // TODO(nparker): Switch this to use TestSafeBrowsingDatabaseManager and run |
| 705 // with SAFE_BROWSING_DB_LOCAL || SAFE_BROWSING_DB_REMOTE once fixing |
| 706 // SafeBrowsingService::StartOnIOThread()'s requirement for a |
| 707 // SafeBrowsingProtocolManagerDelegate*. |
| 702 #if defined(FULL_SAFE_BROWSING) | 708 #if defined(FULL_SAFE_BROWSING) |
| 703 // A SafeBrowsingDatabaseManager implementation that returns a fixed result for | 709 // A SafeBrowsingDatabaseManager implementation that returns a fixed result for |
| 704 // a given URL. | 710 // a given URL. The SafeBrowsingProtocolManagerDelegate is there to emulate |
| 705 class FakeSafeBrowsingDatabaseManager : public SafeBrowsingDatabaseManager { | 711 class FakeSafeBrowsingDatabaseManager |
| 712 : public LocalSafeBrowsingDatabaseManager { |
| 706 public: | 713 public: |
| 707 explicit FakeSafeBrowsingDatabaseManager(SafeBrowsingService* service) | 714 explicit FakeSafeBrowsingDatabaseManager(SafeBrowsingService* service) |
| 708 : SafeBrowsingDatabaseManager(service), | 715 : LocalSafeBrowsingDatabaseManager(service), |
| 709 threat_type_(SB_THREAT_TYPE_SAFE) { } | 716 threat_type_(SB_THREAT_TYPE_SAFE) {} |
| 710 | 717 |
| 711 // Called on the IO thread to check if the given url is safe or not. If we | 718 // Called on the IO thread to check if the given url is safe or not. If we |
| 712 // can synchronously determine that the url is safe, CheckUrl returns true. | 719 // can synchronously determine that the url is safe, CheckUrl returns true. |
| 713 // Otherwise it returns false, and "client" is called asynchronously with the | 720 // Otherwise it returns false, and "client" is called asynchronously with the |
| 714 // result when it is ready. | 721 // result when it is ready. |
| 715 // Returns true, indicating a SAFE result, unless the URL is the fixed URL | 722 // Returns true, indicating a SAFE result, unless the URL is the fixed URL |
| 716 // specified by the user, and the user-specified result is not SAFE | 723 // specified by the user, and the user-specified result is not SAFE |
| 717 // (in which that result will be communicated back via a call into the | 724 // (in which that result will be communicated back via a call into the |
| 718 // client, and false will be returned). | 725 // client, and false will be returned). |
| 719 // Overrides SafeBrowsingService::CheckBrowseUrl. | 726 // Overrides SafeBrowsingDatabaseManager::CheckBrowseUrl. |
| 720 bool CheckBrowseUrl(const GURL& gurl, Client* client) override { | 727 bool CheckBrowseUrl(const GURL& gurl, Client* client) override { |
| 721 if (gurl != url_ || threat_type_ == SB_THREAT_TYPE_SAFE) | 728 if (gurl != url_ || threat_type_ == SB_THREAT_TYPE_SAFE) |
| 722 return true; | 729 return true; |
| 723 | 730 |
| 724 BrowserThread::PostTask( | 731 BrowserThread::PostTask( |
| 725 BrowserThread::IO, FROM_HERE, | 732 BrowserThread::IO, FROM_HERE, |
| 726 base::Bind(&FakeSafeBrowsingDatabaseManager::OnCheckBrowseURLDone, | 733 base::Bind(&FakeSafeBrowsingDatabaseManager::OnCheckBrowseURLDone, |
| 727 this, gurl, client)); | 734 this, gurl, client)); |
| 728 return false; | 735 return false; |
| 729 } | 736 } |
| 730 | 737 |
| 731 void SetThreatTypeForUrl(const GURL& url, SBThreatType threat_type) { | 738 void SetThreatTypeForUrl(const GURL& url, SBThreatType threat_type) { |
| 732 url_ = url; | 739 url_ = url; |
| 733 threat_type_ = threat_type; | 740 threat_type_ = threat_type; |
| 734 } | 741 } |
| 735 | 742 |
| 736 private: | 743 private: |
| 737 ~FakeSafeBrowsingDatabaseManager() override {} | 744 ~FakeSafeBrowsingDatabaseManager() override {} |
| 738 | 745 |
| 739 void OnCheckBrowseURLDone(const GURL& gurl, Client* client) { | 746 void OnCheckBrowseURLDone(const GURL& gurl, Client* client) { |
| 740 std::vector<SBThreatType> expected_threats; | 747 std::vector<SBThreatType> expected_threats; |
| 741 expected_threats.push_back(SB_THREAT_TYPE_URL_MALWARE); | 748 expected_threats.push_back(SB_THREAT_TYPE_URL_MALWARE); |
| 742 expected_threats.push_back(SB_THREAT_TYPE_URL_PHISHING); | 749 expected_threats.push_back(SB_THREAT_TYPE_URL_PHISHING); |
| 743 SafeBrowsingDatabaseManager::SafeBrowsingCheck sb_check( | 750 // TODO(nparker): Replace SafeBrowsingCheck w/ a call to |
| 751 // client->OnCheckBrowseUrlResult() |
| 752 LocalSafeBrowsingDatabaseManager::SafeBrowsingCheck sb_check( |
| 744 std::vector<GURL>(1, gurl), | 753 std::vector<GURL>(1, gurl), |
| 745 std::vector<SBFullHash>(), | 754 std::vector<SBFullHash>(), |
| 746 client, | 755 client, |
| 747 safe_browsing_util::MALWARE, | 756 safe_browsing_util::MALWARE, |
| 748 expected_threats); | 757 expected_threats); |
| 749 sb_check.url_results[0] = threat_type_; | 758 sb_check.url_results[0] = threat_type_; |
| 750 client->OnSafeBrowsingResult(sb_check); | 759 sb_check.OnSafeBrowsingResult(); |
| 751 } | 760 } |
| 752 | 761 |
| 753 GURL url_; | 762 GURL url_; |
| 754 SBThreatType threat_type_; | 763 SBThreatType threat_type_; |
| 755 DISALLOW_COPY_AND_ASSIGN(FakeSafeBrowsingDatabaseManager); | 764 DISALLOW_COPY_AND_ASSIGN(FakeSafeBrowsingDatabaseManager); |
| 756 }; | 765 }; |
| 757 | 766 |
| 758 class FakeSafeBrowsingService : public SafeBrowsingService { | 767 class FakeSafeBrowsingService : public SafeBrowsingService { |
| 759 public: | 768 public: |
| 760 FakeSafeBrowsingService() { } | 769 FakeSafeBrowsingService() { } |
| (...skipping 3292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4053 browser()->tab_strip_model()->GetActiveWebContents(); | 4062 browser()->tab_strip_model()->GetActiveWebContents(); |
| 4054 bool display_test_result = false; | 4063 bool display_test_result = false; |
| 4055 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, | 4064 ASSERT_TRUE(content::ExecuteScriptAndExtractBool(web_contents, |
| 4056 "DidDisplayReallyPass()", | 4065 "DidDisplayReallyPass()", |
| 4057 &display_test_result)); | 4066 &display_test_result)); |
| 4058 ASSERT_TRUE(display_test_result); | 4067 ASSERT_TRUE(display_test_result); |
| 4059 } | 4068 } |
| 4060 #endif // !defined(DISABLE_NACL) | 4069 #endif // !defined(DISABLE_NACL) |
| 4061 | 4070 |
| 4062 } // namespace prerender | 4071 } // namespace prerender |
| OLD | NEW |