OLD | NEW |
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 // The Safe Browsing service is responsible for downloading anti-phishing and | 5 // The Safe Browsing service is responsible for downloading anti-phishing and |
6 // anti-malware tables and checking urls against them. | 6 // anti-malware tables and checking urls against them. |
7 | 7 |
8 #ifndef CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_SERVICE_H_ | 8 #ifndef CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_SERVICE_H_ |
9 #define CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_SERVICE_H_ | 9 #define CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_SERVICE_H_ |
10 | 10 |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 int render_view_id); | 111 int render_view_id); |
112 | 112 |
113 // Bundle of SafeBrowsing state for one URL check. | 113 // Bundle of SafeBrowsing state for one URL check. |
114 // TODO(paulg): Make this struct private to SafeBrowsingService and maintain | 114 // TODO(paulg): Make this struct private to SafeBrowsingService and maintain |
115 // request mappings using CancelableRequests instead (which can | 115 // request mappings using CancelableRequests instead (which can |
116 // store this state for us). | 116 // store this state for us). |
117 struct SafeBrowsingCheck { | 117 struct SafeBrowsingCheck { |
118 GURL url; | 118 GURL url; |
119 Client* client; | 119 Client* client; |
120 bool need_get_hash; | 120 bool need_get_hash; |
121 Time start; // Time that check was sent to SB service. | 121 base::Time start; // Time that check was sent to SB service. |
122 TimeDelta db_time; // How long DB look-up took. | 122 base::TimeDelta db_time; // How long DB look-up took. |
123 UrlCheckResult result; | 123 UrlCheckResult result; |
124 std::vector<SBPrefix> prefix_hits; | 124 std::vector<SBPrefix> prefix_hits; |
125 std::vector<SBFullHashResult> full_hits; | 125 std::vector<SBFullHashResult> full_hits; |
126 }; | 126 }; |
127 | 127 |
128 // API used by the SafeBrowsingProtocolManager to interface with the | 128 // API used by the SafeBrowsingProtocolManager to interface with the |
129 // SafeBrowsing storage system. | 129 // SafeBrowsing storage system. |
130 void HandleGetHashResults( | 130 void HandleGetHashResults( |
131 SafeBrowsingCheck* check, | 131 SafeBrowsingCheck* check, |
132 const std::vector<SBFullHashResult>& full_hashes, | 132 const std::vector<SBFullHashResult>& full_hashes, |
(...skipping 21 matching lines...) Expand all Loading... |
154 // Preference handling. | 154 // Preference handling. |
155 static void RegisterUserPrefs(PrefService* prefs); | 155 static void RegisterUserPrefs(PrefService* prefs); |
156 | 156 |
157 // The SafeBrowsing system has instructed us to reset our database. | 157 // The SafeBrowsing system has instructed us to reset our database. |
158 void ResetDatabase(); | 158 void ResetDatabase(); |
159 | 159 |
160 // Log the user perceived delay caused by SafeBrowsing. This delay is the time | 160 // Log the user perceived delay caused by SafeBrowsing. This delay is the time |
161 // delta starting from when we would have started reading data from the | 161 // delta starting from when we would have started reading data from the |
162 // network, and ending when the SafeBrowsing check completes indicating that | 162 // network, and ending when the SafeBrowsing check completes indicating that |
163 // the current page is 'safe'. | 163 // the current page is 'safe'. |
164 static void LogPauseDelay(TimeDelta time); | 164 static void LogPauseDelay(base::TimeDelta time); |
165 | 165 |
166 // We defer SafeBrowsing work for a short duration when the computer comes | 166 // We defer SafeBrowsing work for a short duration when the computer comes |
167 // out of a suspend state to avoid thrashing the disk. | 167 // out of a suspend state to avoid thrashing the disk. |
168 void OnSuspend(); | 168 void OnSuspend(); |
169 void OnResume(); | 169 void OnResume(); |
170 | 170 |
171 private: | 171 private: |
172 // Should only be called on db thread as SafeBrowsingDatabase is not | 172 // Should only be called on db thread as SafeBrowsingDatabase is not |
173 // threadsafe. | 173 // threadsafe. |
174 SafeBrowsingDatabase* GetDatabase(); | 174 SafeBrowsingDatabase* GetDatabase(); |
175 | 175 |
176 // Called on the database thread to check a url. | 176 // Called on the database thread to check a url. |
177 void CheckDatabase(SafeBrowsingCheck* info, Time last_update); | 177 void CheckDatabase(SafeBrowsingCheck* info, base::Time last_update); |
178 | 178 |
179 // Called on the IO thread with the check result. | 179 // Called on the IO thread with the check result. |
180 void OnCheckDone(SafeBrowsingCheck* info); | 180 void OnCheckDone(SafeBrowsingCheck* info); |
181 | 181 |
182 // Called on the database thread to retrieve chunks. | 182 // Called on the database thread to retrieve chunks. |
183 void GetAllChunksFromDatabase(); | 183 void GetAllChunksFromDatabase(); |
184 | 184 |
185 // Called on the IOthread with the results of all chunks. | 185 // Called on the IOthread with the results of all chunks. |
186 void OnGetAllChunksFromDatabase(const std::vector<SBListChunkRanges>& lists, | 186 void OnGetAllChunksFromDatabase(const std::vector<SBListChunkRanges>& lists, |
187 bool database_error); | 187 bool database_error); |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 // The SafeBrowsing thread that runs database operations. | 263 // The SafeBrowsing thread that runs database operations. |
264 scoped_ptr<base::Thread> db_thread_; | 264 scoped_ptr<base::Thread> db_thread_; |
265 | 265 |
266 // Indicates if we are in the process of resetting the database. | 266 // Indicates if we are in the process of resetting the database. |
267 bool resetting_; | 267 bool resetting_; |
268 | 268 |
269 DISALLOW_EVIL_CONSTRUCTORS(SafeBrowsingService); | 269 DISALLOW_EVIL_CONSTRUCTORS(SafeBrowsingService); |
270 }; | 270 }; |
271 | 271 |
272 #endif // CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_SERVICE_H_ | 272 #endif // CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_SERVICE_H_ |
OLD | NEW |