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

Side by Side Diff: chrome/browser/safe_browsing/prefix_set.h

Issue 266793002: [safe browsing] Serialize full hashes with prefix set. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rely on binary from r267931 (also reviewer nits) 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
« no previous file with comments | « no previous file | chrome/browser/safe_browsing/prefix_set.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 // A read-only set implementation for |SBPrefix| items. Prefixes are 5 // A read-only set implementation for |SBPrefix| items. Prefixes are
6 // sorted and stored as 16-bit deltas from the previous prefix. An 6 // sorted and stored as 16-bit deltas from the previous prefix. An
7 // index structure provides quick random access, and also handles 7 // index structure provides quick random access, and also handles
8 // cases where 16 bits cannot encode a delta. 8 // cases where 16 bits cannot encode a delta.
9 // 9 //
10 // For example, the sequence {20, 25, 41, 65432, 150000, 160000} would 10 // For example, the sequence {20, 25, 41, 65432, 150000, 160000} would
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 private: 76 private:
77 friend class PrefixSetBuilder; 77 friend class PrefixSetBuilder;
78 78
79 friend class PrefixSetTest; 79 friend class PrefixSetTest;
80 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, AllBig); 80 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, AllBig);
81 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, EdgeCases); 81 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, EdgeCases);
82 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, Empty); 82 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, Empty);
83 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, FullHashBuild); 83 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, FullHashBuild);
84 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, IntMinMax); 84 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, IntMinMax);
85 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, OneElement); 85 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, OneElement);
86 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, ReadWrite);
86 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, ReadWriteSigned); 87 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, ReadWriteSigned);
88 FRIEND_TEST_ALL_PREFIXES(PrefixSetTest, Version3);
87 89
88 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, BasicStore); 90 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, BasicStore);
89 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, DeleteChunks); 91 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, DeleteChunks);
90 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, DetectsCorruption); 92 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, DetectsCorruption);
91 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, Empty); 93 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, Empty);
92 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, PrefixMinMax); 94 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, PrefixMinMax);
93 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, SubKnockout); 95 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, SubKnockout);
94 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, Version7); 96 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, Version7);
95 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, Version8); 97 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingStoreFileTest, Version8);
96 98
(...skipping 16 matching lines...) Expand all
113 // Provided for testing purposes. 115 // Provided for testing purposes.
114 bool PrefixExists(SBPrefix prefix) const; 116 bool PrefixExists(SBPrefix prefix) const;
115 117
116 // Regenerate the vector of prefixes passed to the constructor into 118 // Regenerate the vector of prefixes passed to the constructor into
117 // |prefixes|. Prefixes will be added in sorted order. Useful for testing. 119 // |prefixes|. Prefixes will be added in sorted order. Useful for testing.
118 void GetPrefixes(std::vector<SBPrefix>* prefixes) const; 120 void GetPrefixes(std::vector<SBPrefix>* prefixes) const;
119 121
120 // Used by |PrefixSetBuilder|. 122 // Used by |PrefixSetBuilder|.
121 PrefixSet(); 123 PrefixSet();
122 124
123 // Helper for |LoadFile()|. Steals the contents of |index| and 125 // Helper for |LoadFile()|. Steals vector contents using |swap()|.
124 // |deltas| using |swap()|. 126 PrefixSet(IndexVector* index,
125 PrefixSet(IndexVector* index, std::vector<uint16>* deltas); 127 std::vector<uint16>* deltas,
128 std::vector<SBFullHash>* full_hashes);
126 129
127 // Top-level index of prefix to offset in |deltas_|. Each pair 130 // Top-level index of prefix to offset in |deltas_|. Each pair
128 // indicates a base prefix and where the deltas from that prefix 131 // indicates a base prefix and where the deltas from that prefix
129 // begin in |deltas_|. The deltas for a pair end at the next pair's 132 // begin in |deltas_|. The deltas for a pair end at the next pair's
130 // index into |deltas_|. 133 // index into |deltas_|.
131 IndexVector index_; 134 IndexVector index_;
132 135
133 // Deltas which are added to the prefix in |index_| to generate 136 // Deltas which are added to the prefix in |index_| to generate
134 // prefixes. Deltas are only valid between consecutive items from 137 // prefixes. Deltas are only valid between consecutive items from
135 // |index_|, or the end of |deltas_| for the last |index_| pair. 138 // |index_|, or the end of |deltas_| for the last |index_| pair.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 // Buffers prefixes until enough are avaliable to emit a run. 174 // Buffers prefixes until enough are avaliable to emit a run.
172 std::vector<SBPrefix> buffer_; 175 std::vector<SBPrefix> buffer_;
173 176
174 // The PrefixSet being built. 177 // The PrefixSet being built.
175 scoped_ptr<PrefixSet> prefix_set_; 178 scoped_ptr<PrefixSet> prefix_set_;
176 }; 179 };
177 180
178 } // namespace safe_browsing 181 } // namespace safe_browsing
179 182
180 #endif // CHROME_BROWSER_SAFE_BROWSING_PREFIX_SET_H_ 183 #endif // CHROME_BROWSER_SAFE_BROWSING_PREFIX_SET_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/safe_browsing/prefix_set.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698