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

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

Issue 263833005: Knock out injected safe-browsing prefixes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: add ContainsBrowseUrl test. Created 6 years, 7 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 #include "chrome/browser/safe_browsing/safe_browsing_database.h" 5 #include "chrome/browser/safe_browsing/safe_browsing_database.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <iterator> 8 #include <iterator>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 837 matching lines...) Expand 10 before | Expand all | Expand 10 after
848 STATS_COUNTER("SB.PrefixAdd", 1); 848 STATS_COUNTER("SB.PrefixAdd", 1);
849 store->WriteAddPrefix(encoded_chunk_id, host); 849 store->WriteAddPrefix(encoded_chunk_id, host);
850 } else if (entry->IsPrefix()) { 850 } else if (entry->IsPrefix()) {
851 // Prefixes only. 851 // Prefixes only.
852 for (int i = 0; i < count; i++) { 852 for (int i = 0; i < count; i++) {
853 const SBPrefix prefix = entry->PrefixAt(i); 853 const SBPrefix prefix = entry->PrefixAt(i);
854 STATS_COUNTER("SB.PrefixAdd", 1); 854 STATS_COUNTER("SB.PrefixAdd", 1);
855 store->WriteAddPrefix(encoded_chunk_id, prefix); 855 store->WriteAddPrefix(encoded_chunk_id, prefix);
856 } 856 }
857 } else { 857 } else {
858 // Prefixes and hashes. 858 // Full hashes only.
859 const base::Time receive_time = base::Time::Now(); 859 const base::Time receive_time = base::Time::Now();
860 for (int i = 0; i < count; ++i) { 860 for (int i = 0; i < count; ++i) {
861 const SBFullHash full_hash = entry->FullHashAt(i); 861 const SBFullHash full_hash = entry->FullHashAt(i);
862 const SBPrefix prefix = full_hash.prefix;
863
864 STATS_COUNTER("SB.PrefixAdd", 1);
865 store->WriteAddPrefix(encoded_chunk_id, prefix);
866 862
867 STATS_COUNTER("SB.PrefixAddFull", 1); 863 STATS_COUNTER("SB.PrefixAddFull", 1);
868 store->WriteAddHash(encoded_chunk_id, receive_time, full_hash); 864 store->WriteAddHash(encoded_chunk_id, receive_time, full_hash);
869 } 865 }
870 } 866 }
871 } 867 }
872 868
873 // Helper to iterate over all the entries in the hosts in |chunks| and 869 // Helper to iterate over all the entries in the hosts in |chunks| and
874 // add them to the store. 870 // add them to the store.
875 void SafeBrowsingDatabaseNew::InsertAddChunks( 871 void SafeBrowsingDatabaseNew::InsertAddChunks(
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
923 // Prefixes only. 919 // Prefixes only.
924 for (int i = 0; i < count; i++) { 920 for (int i = 0; i < count; i++) {
925 const SBPrefix prefix = entry->PrefixAt(i); 921 const SBPrefix prefix = entry->PrefixAt(i);
926 const int add_chunk_id = 922 const int add_chunk_id =
927 EncodeChunkId(entry->ChunkIdAtPrefix(i), list_id); 923 EncodeChunkId(entry->ChunkIdAtPrefix(i), list_id);
928 924
929 STATS_COUNTER("SB.PrefixSub", 1); 925 STATS_COUNTER("SB.PrefixSub", 1);
930 store->WriteSubPrefix(encoded_chunk_id, add_chunk_id, prefix); 926 store->WriteSubPrefix(encoded_chunk_id, add_chunk_id, prefix);
931 } 927 }
932 } else { 928 } else {
933 // Prefixes and hashes. 929 // Full hashes only.
934 for (int i = 0; i < count; ++i) { 930 for (int i = 0; i < count; ++i) {
935 const SBFullHash full_hash = entry->FullHashAt(i); 931 const SBFullHash full_hash = entry->FullHashAt(i);
936 const int add_chunk_id = 932 const int add_chunk_id =
937 EncodeChunkId(entry->ChunkIdAtPrefix(i), list_id); 933 EncodeChunkId(entry->ChunkIdAtPrefix(i), list_id);
938 934
939 STATS_COUNTER("SB.PrefixSub", 1);
940 store->WriteSubPrefix(encoded_chunk_id, add_chunk_id, full_hash.prefix);
941
942 STATS_COUNTER("SB.PrefixSubFull", 1); 935 STATS_COUNTER("SB.PrefixSubFull", 1);
943 store->WriteSubHash(encoded_chunk_id, add_chunk_id, full_hash); 936 store->WriteSubHash(encoded_chunk_id, add_chunk_id, full_hash);
944 } 937 }
945 } 938 }
946 } 939 }
947 940
948 // Helper to iterate over all the entries in the hosts in |chunks| and 941 // Helper to iterate over all the entries in the hosts in |chunks| and
949 // add them to the store. 942 // add them to the store.
950 void SafeBrowsingDatabaseNew::InsertSubChunks( 943 void SafeBrowsingDatabaseNew::InsertSubChunks(
951 safe_browsing_util::ListType list_id, 944 safe_browsing_util::ListType list_id,
(...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after
1639 base::AutoLock locked(lookup_lock_); 1632 base::AutoLock locked(lookup_lock_);
1640 ip_blacklist_.swap(new_blacklist); 1633 ip_blacklist_.swap(new_blacklist);
1641 } 1634 }
1642 1635
1643 bool SafeBrowsingDatabaseNew::IsMalwareIPMatchKillSwitchOn() { 1636 bool SafeBrowsingDatabaseNew::IsMalwareIPMatchKillSwitchOn() {
1644 SBFullHash malware_kill_switch = SBFullHashForString(kMalwareIPKillSwitchUrl); 1637 SBFullHash malware_kill_switch = SBFullHashForString(kMalwareIPKillSwitchUrl);
1645 std::vector<SBFullHash> full_hashes; 1638 std::vector<SBFullHash> full_hashes;
1646 full_hashes.push_back(malware_kill_switch); 1639 full_hashes.push_back(malware_kill_switch);
1647 return ContainsWhitelistedHashes(csd_whitelist_, full_hashes); 1640 return ContainsWhitelistedHashes(csd_whitelist_, full_hashes);
1648 } 1641 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698