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 "chrome/browser/safe_browsing/safe_browsing_database.h" | 5 #include "chrome/browser/safe_browsing/safe_browsing_database.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <iterator> | 10 #include <iterator> |
(...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
786 } | 786 } |
787 | 787 |
788 bool SafeBrowsingDatabaseNew::ContainsBrowseUrl( | 788 bool SafeBrowsingDatabaseNew::ContainsBrowseUrl( |
789 const GURL& url, | 789 const GURL& url, |
790 std::vector<SBPrefix>* prefix_hits, | 790 std::vector<SBPrefix>* prefix_hits, |
791 std::vector<SBFullHashResult>* cache_hits) { | 791 std::vector<SBFullHashResult>* cache_hits) { |
792 return PrefixSetContainsUrl(url, PrefixSetId::BROWSE, prefix_hits, | 792 return PrefixSetContainsUrl(url, PrefixSetId::BROWSE, prefix_hits, |
793 cache_hits); | 793 cache_hits); |
794 } | 794 } |
795 | 795 |
| 796 bool SafeBrowsingDatabaseNew::ContainsBrowseHashes( |
| 797 const std::vector<SBFullHash>& full_hashes, |
| 798 std::vector<SBPrefix>* prefix_hits, |
| 799 std::vector<SBFullHashResult>* cache_hits) { |
| 800 return PrefixSetContainsUrlHashes(full_hashes, PrefixSetId::BROWSE, |
| 801 prefix_hits, cache_hits); |
| 802 } |
| 803 |
796 bool SafeBrowsingDatabaseNew::ContainsUnwantedSoftwareUrl( | 804 bool SafeBrowsingDatabaseNew::ContainsUnwantedSoftwareUrl( |
797 const GURL& url, | 805 const GURL& url, |
798 std::vector<SBPrefix>* prefix_hits, | 806 std::vector<SBPrefix>* prefix_hits, |
799 std::vector<SBFullHashResult>* cache_hits) { | 807 std::vector<SBFullHashResult>* cache_hits) { |
800 return PrefixSetContainsUrl(url, PrefixSetId::UNWANTED_SOFTWARE, prefix_hits, | 808 return PrefixSetContainsUrl(url, PrefixSetId::UNWANTED_SOFTWARE, prefix_hits, |
801 cache_hits); | 809 cache_hits); |
802 } | 810 } |
803 | 811 |
| 812 bool SafeBrowsingDatabaseNew::ContainsUnwantedSoftwareHashes( |
| 813 const std::vector<SBFullHash>& full_hashes, |
| 814 std::vector<SBPrefix>* prefix_hits, |
| 815 std::vector<SBFullHashResult>* cache_hits) { |
| 816 return PrefixSetContainsUrlHashes(full_hashes, PrefixSetId::UNWANTED_SOFTWARE, |
| 817 prefix_hits, cache_hits); |
| 818 } |
| 819 |
804 bool SafeBrowsingDatabaseNew::PrefixSetContainsUrl( | 820 bool SafeBrowsingDatabaseNew::PrefixSetContainsUrl( |
805 const GURL& url, | 821 const GURL& url, |
806 PrefixSetId prefix_set_id, | 822 PrefixSetId prefix_set_id, |
807 std::vector<SBPrefix>* prefix_hits, | 823 std::vector<SBPrefix>* prefix_hits, |
808 std::vector<SBFullHashResult>* cache_hits) { | 824 std::vector<SBFullHashResult>* cache_hits) { |
809 // Clear the results first. | |
810 prefix_hits->clear(); | |
811 cache_hits->clear(); | |
812 | |
813 std::vector<SBFullHash> full_hashes; | 825 std::vector<SBFullHash> full_hashes; |
814 UrlToFullHashes(url, false, &full_hashes); | 826 UrlToFullHashes(url, false, &full_hashes); |
815 if (full_hashes.empty()) | |
816 return false; | |
817 | |
818 return PrefixSetContainsUrlHashes(full_hashes, prefix_set_id, prefix_hits, | 827 return PrefixSetContainsUrlHashes(full_hashes, prefix_set_id, prefix_hits, |
819 cache_hits); | 828 cache_hits); |
820 } | 829 } |
821 | 830 |
822 bool SafeBrowsingDatabaseNew::ContainsBrowseUrlHashesForTesting( | |
823 const std::vector<SBFullHash>& full_hashes, | |
824 std::vector<SBPrefix>* prefix_hits, | |
825 std::vector<SBFullHashResult>* cache_hits) { | |
826 return PrefixSetContainsUrlHashes(full_hashes, PrefixSetId::BROWSE, | |
827 prefix_hits, cache_hits); | |
828 } | |
829 | |
830 bool SafeBrowsingDatabaseNew::PrefixSetContainsUrlHashes( | 831 bool SafeBrowsingDatabaseNew::PrefixSetContainsUrlHashes( |
831 const std::vector<SBFullHash>& full_hashes, | 832 const std::vector<SBFullHash>& full_hashes, |
832 PrefixSetId prefix_set_id, | 833 PrefixSetId prefix_set_id, |
833 std::vector<SBPrefix>* prefix_hits, | 834 std::vector<SBPrefix>* prefix_hits, |
834 std::vector<SBFullHashResult>* cache_hits) { | 835 std::vector<SBFullHashResult>* cache_hits) { |
| 836 // Clear the results first. |
| 837 prefix_hits->clear(); |
| 838 cache_hits->clear(); |
| 839 |
| 840 if (full_hashes.empty()) |
| 841 return false; |
| 842 |
835 // Used to determine cache expiration. | 843 // Used to determine cache expiration. |
836 const base::Time now = base::Time::Now(); | 844 const base::Time now = base::Time::Now(); |
837 | 845 |
838 { | 846 { |
839 scoped_ptr<ReadTransaction> txn = state_manager_.BeginReadTransaction(); | 847 scoped_ptr<ReadTransaction> txn = state_manager_.BeginReadTransaction(); |
840 | 848 |
841 // |prefix_set| is empty until it is either read from disk, or the first | 849 // |prefix_set| is empty until it is either read from disk, or the first |
842 // update populates it. Bail out without a hit if not yet available. | 850 // update populates it. Bail out without a hit if not yet available. |
843 const PrefixSet* prefix_set = txn->GetPrefixSet(prefix_set_id); | 851 const PrefixSet* prefix_set = txn->GetPrefixSet(prefix_set_id); |
844 if (!prefix_set) | 852 if (!prefix_set) |
(...skipping 920 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1765 | 1773 |
1766 // Histogram properties as in UMA_HISTOGRAM_COUNTS macro. | 1774 // Histogram properties as in UMA_HISTOGRAM_COUNTS macro. |
1767 base::HistogramBase* histogram_pointer = base::Histogram::FactoryGet( | 1775 base::HistogramBase* histogram_pointer = base::Histogram::FactoryGet( |
1768 histogram_name, 1, 1000000, 50, | 1776 histogram_name, 1, 1000000, 50, |
1769 base::HistogramBase::kUmaTargetedHistogramFlag); | 1777 base::HistogramBase::kUmaTargetedHistogramFlag); |
1770 | 1778 |
1771 histogram_pointer->Add(file_size_kilobytes); | 1779 histogram_pointer->Add(file_size_kilobytes); |
1772 } | 1780 } |
1773 | 1781 |
1774 } // namespace safe_browsing | 1782 } // namespace safe_browsing |
OLD | NEW |