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

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

Issue 1579183003: Only call UrlToFullHashes once from LocalSafeBrowsingDatabaseManager::CheckBrowseUrl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 11 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
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 "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
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
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
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/safe_browsing_database.h ('k') | chrome/browser/safe_browsing/safe_browsing_database_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698