Index: chrome/browser/safe_browsing/bloom_filter.h |
diff --git a/chrome/browser/safe_browsing/bloom_filter.h b/chrome/browser/safe_browsing/bloom_filter.h |
deleted file mode 100644 |
index e0f6116f3251d6620baf2658e31fc1b7f44d7aab..0000000000000000000000000000000000000000 |
--- a/chrome/browser/safe_browsing/bloom_filter.h |
+++ /dev/null |
@@ -1,116 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
-// |
-// A simple bloom filter. It uses a large number (20) of hashes to reduce the |
-// possibility of false positives. The bloom filter's hashing uses random keys |
-// in order to minimize the chance that a false positive for one user is a false |
-// positive for all. |
-// |
-// The bloom filter manages it serialization to disk with the following file |
-// format: |
-// 4 byte version number |
-// 4 byte number of hash keys (n) |
-// n * 8 bytes of hash keys |
-// Remaining bytes are the filter data. |
- |
-#ifndef CHROME_BROWSER_SAFE_BROWSING_BLOOM_FILTER_H_ |
-#define CHROME_BROWSER_SAFE_BROWSING_BLOOM_FILTER_H_ |
- |
-#include <vector> |
- |
-#include "base/gtest_prod_util.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "chrome/browser/safe_browsing/safe_browsing_util.h" |
- |
-class FilePath; |
- |
-class BloomFilter : public base::RefCountedThreadSafe<BloomFilter> { |
- public: |
- typedef uint64 HashKey; |
- typedef std::vector<HashKey> HashKeys; |
- |
- // Constructs an empty filter with the given size. |
- explicit BloomFilter(int bit_size); |
- |
- // Constructs a filter from serialized data. This object owns the memory and |
- // will delete it on destruction. |
- BloomFilter(char* data, int size, const HashKeys& keys); |
- |
- void Insert(SBPrefix hash); |
- bool Exists(SBPrefix hash) const; |
- |
- const char* data() const { return data_.get(); } |
- int size() const { return byte_size_; } |
- |
- // Loading and storing the filter from / to disk. |
- static BloomFilter* LoadFile(const FilePath& filter_name); |
- bool WriteFile(const FilePath& filter_name) const; |
- |
- // How many bits to use per item. See the design doc for more information. |
- static const int kBloomFilterSizeRatio = 25; |
- |
- // Force a minimum size on the bloom filter to prevent a high false positive |
- // hash request rate (in bytes). |
- static const int kBloomFilterMinSize = 250000; |
- |
- // Force a maximum size on the bloom filter to avoid using too much memory |
- // (in bytes). |
- static const int kBloomFilterMaxSize = 3 * 1024 * 1024; |
- |
- // Use the above constants to calculate an appropriate size to pass |
- // to the BloomFilter constructor based on the intended |key_count|. |
- // TODO(shess): This is very clunky. It would be cleaner to have |
- // the constructor manage this, but at this time the unit and perf |
- // tests wish to make their own calculations. |
- static int FilterSizeForKeyCount(int key_count); |
- |
- // Check whether the contents of the bloom filter have changed since |
- // construction. Present while debugging PrefixSet. |
- bool CheckChecksum() const; |
- |
- private: |
- friend class base::RefCountedThreadSafe<BloomFilter>; |
- FRIEND_TEST_ALL_PREFIXES(SafeBrowsingBloomFilter, BloomFilterUse); |
- FRIEND_TEST_ALL_PREFIXES(SafeBrowsingBloomFilter, BloomFilterFile); |
- |
- static const int kNumHashKeys = 20; |
- static const int kFileVersion = 1; |
- |
- // Enumerate failures for histogramming purposes. DO NOT CHANGE THE |
- // ORDERING OF THESE VALUES. |
- enum FailureType { |
- FAILURE_FILTER_READ_OPEN, |
- FAILURE_FILTER_READ_VERSION, |
- FAILURE_FILTER_READ_NUM_KEYS, |
- FAILURE_FILTER_READ_KEY, |
- FAILURE_FILTER_READ_DATA_MINSIZE, |
- FAILURE_FILTER_READ_DATA_MAXSIZE, |
- FAILURE_FILTER_READ_DATA_SHORT, |
- FAILURE_FILTER_READ_DATA, |
- |
- // Memory space for histograms is determined by the max. ALWAYS |
- // ADD NEW VALUES BEFORE THIS ONE. |
- FAILURE_FILTER_MAX |
- }; |
- |
- static void RecordFailure(FailureType failure_type); |
- |
- ~BloomFilter(); |
- |
- int byte_size_; // size in bytes |
- int bit_size_; // size in bits |
- scoped_array<char> data_; |
- |
- // Random keys used for hashing. |
- HashKeys hash_keys_; |
- |
- // For debugging, used to verify that |hash_keys_| and |data_| have |
- // not changed other than via constructor or Insert(). |
- uint32 checksum_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BloomFilter); |
-}; |
- |
-#endif // CHROME_BROWSER_SAFE_BROWSING_BLOOM_FILTER_H_ |