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

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

Issue 19610: Safe browsing cleanup:... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 10 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) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #ifndef CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_DATABASE_H_ 5 #ifndef CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_DATABASE_H_
6 #define CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_DATABASE_H_ 6 #define CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_DATABASE_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <list> 9 #include <list>
10 #include <string> 10 #include <string>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/file_path.h"
13 #include "base/hash_tables.h" 14 #include "base/hash_tables.h"
14 #include "base/ref_counted.h" 15 #include "base/ref_counted.h"
15 #include "base/scoped_ptr.h" 16 #include "base/scoped_ptr.h"
16 #include "base/task.h" 17 #include "base/task.h"
17 #include "base/time.h" 18 #include "base/time.h"
18 #include "chrome/browser/safe_browsing/bloom_filter.h" 19 #include "chrome/browser/safe_browsing/bloom_filter.h"
19 #include "chrome/browser/safe_browsing/safe_browsing_util.h" 20 #include "chrome/browser/safe_browsing/safe_browsing_util.h"
20 #include "testing/gtest/include/gtest/gtest_prod.h" 21 #include "testing/gtest/include/gtest/gtest_prod.h"
21 22
22 class GURL; 23 class GURL;
23 24
24 // Encapsulates the database that stores information about phishing and malware 25 // Encapsulates the database that stores information about phishing and malware
25 // sites. There is one on-disk database for all profiles, as it doesn't 26 // sites. There is one on-disk database for all profiles, as it doesn't
26 // contain user-specific data. This object is not thread-safe, i.e. all its 27 // contain user-specific data. This object is not thread-safe, i.e. all its
27 // methods should be used on the same thread that it was created on, with the 28 // methods should be used on the same thread that it was created on, with the
28 // exception of NeedToCheckUrl. 29 // exception of NeedToCheckUrl.
29 class SafeBrowsingDatabase { 30 class SafeBrowsingDatabase {
30 public: 31 public:
31 // Factory method for obtaining a SafeBrowsingDatabase implementation. 32 // Factory method for obtaining a SafeBrowsingDatabase implementation.
32 static SafeBrowsingDatabase* Create(); 33 static SafeBrowsingDatabase* Create();
33 34
34 virtual ~SafeBrowsingDatabase() {} 35 virtual ~SafeBrowsingDatabase() {}
35 36
36 // Initializes the database with the given filename. The callback is 37 // Initializes the database with the given filename. The callback is
37 // executed after finishing a chunk. 38 // executed after finishing a chunk.
38 virtual bool Init(const std::wstring& filename, 39 virtual bool Init(const FilePath& filename,
39 Callback0::Type* chunk_inserted_callback) = 0; 40 Callback0::Type* chunk_inserted_callback) = 0;
40 41
41 // Deletes the current database and creates a new one. 42 // Deletes the current database and creates a new one.
42 virtual bool ResetDatabase() = 0; 43 virtual bool ResetDatabase() = 0;
43 44
44 // This function can be called on any thread to check if the given url may be 45 // This function can be called on any thread to check if the given url may be
45 // in the database. If this function returns false, it is definitely not in 46 // in the database. If this function returns false, it is definitely not in
46 // the database and ContainsUrl doesn't need to be called. If it returns 47 // the database and ContainsUrl doesn't need to be called. If it returns
47 // true, then the url might be in the database and ContainsUrl needs to be 48 // true, then the url might be in the database and ContainsUrl needs to be
48 // called. This function can only be called after Init succeeded. 49 // called. This function can only be called after Init succeeded.
(...skipping 30 matching lines...) Expand all
79 virtual void CacheHashResults( 80 virtual void CacheHashResults(
80 const std::vector<SBPrefix>& prefixes, 81 const std::vector<SBPrefix>& prefixes,
81 const std::vector<SBFullHashResult>& full_hits) = 0; 82 const std::vector<SBFullHashResult>& full_hits) = 0;
82 83
83 // Called when the user's machine has resumed from a lower power state. 84 // Called when the user's machine has resumed from a lower power state.
84 virtual void HandleResume() = 0; 85 virtual void HandleResume() = 0;
85 86
86 virtual bool UpdateStarted() { return true; } 87 virtual bool UpdateStarted() { return true; }
87 virtual void UpdateFinished(bool update_succeeded) {} 88 virtual void UpdateFinished(bool update_succeeded) {}
88 89
89 virtual std::wstring filename() const { return filename_; } 90 virtual FilePath filename() const { return filename_; }
90 91
91 protected: 92 protected:
92 friend class SafeBrowsingDatabaseTest; 93 friend class SafeBrowsingDatabaseTest;
93 FRIEND_TEST(SafeBrowsingDatabase, HashCaching); 94 FRIEND_TEST(SafeBrowsingDatabase, HashCaching);
94 95
95 static std::wstring BloomFilterFilename(const std::wstring& db_filename); 96 static FilePath BloomFilterFilename(const FilePath& db_filename);
96 97
97 // Load the bloom filter off disk, or generates one if it doesn't exist. 98 // Load the bloom filter off disk, or generates one if it doesn't exist.
98 virtual void LoadBloomFilter(); 99 virtual void LoadBloomFilter();
99 100
100 // Deletes the on-disk bloom filter, i.e. because it's stale. 101 // Deletes the on-disk bloom filter, i.e. because it's stale.
101 virtual void DeleteBloomFilter(); 102 virtual void DeleteBloomFilter();
102 103
103 // Writes the current bloom filter to disk. 104 // Writes the current bloom filter to disk.
104 virtual void WriteBloomFilter(); 105 virtual void WriteBloomFilter();
105 106
(...skipping 15 matching lines...) Expand all
121 typedef base::hash_map<SBPrefix, HashList> HashCache; 122 typedef base::hash_map<SBPrefix, HashList> HashCache;
122 123
123 scoped_ptr<HashCache> hash_cache_; 124 scoped_ptr<HashCache> hash_cache_;
124 HashCache* hash_cache() { return hash_cache_.get(); } 125 HashCache* hash_cache() { return hash_cache_.get(); }
125 126
126 // Cache of prefixes that returned empty results (no full hash match). 127 // Cache of prefixes that returned empty results (no full hash match).
127 typedef std::set<SBPrefix> PrefixCache; 128 typedef std::set<SBPrefix> PrefixCache;
128 PrefixCache prefix_miss_cache_; 129 PrefixCache prefix_miss_cache_;
129 PrefixCache* prefix_miss_cache() { return &prefix_miss_cache_; } 130 PrefixCache* prefix_miss_cache() { return &prefix_miss_cache_; }
130 131
131 std::wstring filename_; 132 FilePath filename_;
132 std::wstring bloom_filter_filename_; 133 FilePath bloom_filter_filename_;
133 scoped_refptr<BloomFilter> bloom_filter_; 134 scoped_refptr<BloomFilter> bloom_filter_;
134 }; 135 };
135 136
136 #endif // CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_DATABASE_H_ 137 #endif // CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_DATABASE_H_
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/database_perftest.cc ('k') | chrome/browser/safe_browsing/safe_browsing_database.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698