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

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

Issue 611603002: Add the goog-unwanted-shavar list to a new SafeBrowsing PrefixSet. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits and cl format Created 6 years, 1 month 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
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 // 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_DATABASE_MANAGER_H_ 8 #ifndef CHROME_BROWSER_SAFE_BROWSING_DATABASE_MANAGER_H_
9 #define CHROME_BROWSER_SAFE_BROWSING_DATABASE_MANAGER_H_ 9 #define CHROME_BROWSER_SAFE_BROWSING_DATABASE_MANAGER_H_
10 10
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 209
210 // protected for tests. 210 // protected for tests.
211 void NotifyDatabaseUpdateFinished(bool update_succeeded); 211 void NotifyDatabaseUpdateFinished(bool update_succeeded);
212 212
213 private: 213 private:
214 friend class base::RefCountedThreadSafe<SafeBrowsingDatabaseManager>; 214 friend class base::RefCountedThreadSafe<SafeBrowsingDatabaseManager>;
215 friend class SafeBrowsingServerTest; 215 friend class SafeBrowsingServerTest;
216 friend class SafeBrowsingServiceTest; 216 friend class SafeBrowsingServiceTest;
217 friend class SafeBrowsingServiceTestHelper; 217 friend class SafeBrowsingServiceTestHelper;
218 friend class SafeBrowsingDatabaseManagerTest; 218 friend class SafeBrowsingDatabaseManagerTest;
219 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingDatabaseManagerTest, GetUrlThreatType); 219 FRIEND_TEST_ALL_PREFIXES(SafeBrowsingDatabaseManagerTest,
220 GetUrlSeverestThreatType);
220 221
221 typedef std::set<SafeBrowsingCheck*> CurrentChecks; 222 typedef std::set<SafeBrowsingCheck*> CurrentChecks;
222 typedef std::vector<SafeBrowsingCheck*> GetHashRequestors; 223 typedef std::vector<SafeBrowsingCheck*> GetHashRequestors;
223 typedef base::hash_map<SBPrefix, GetHashRequestors> GetHashRequests; 224 typedef base::hash_map<SBPrefix, GetHashRequestors> GetHashRequests;
224 225
225 // Clients that we've queued up for checking later once the database is ready. 226 // Clients that we've queued up for checking later once the database is ready.
226 struct QueuedCheck { 227 struct QueuedCheck {
227 QueuedCheck(const safe_browsing_util::ListType check_type, 228 QueuedCheck(const safe_browsing_util::ListType check_type,
228 Client* client, 229 Client* client,
229 const GURL& url, 230 const GURL& url,
230 const std::vector<SBThreatType>& expected_threats, 231 const std::vector<SBThreatType>& expected_threats,
231 const base::TimeTicks& start); 232 const base::TimeTicks& start);
232 ~QueuedCheck(); 233 ~QueuedCheck();
233 safe_browsing_util::ListType check_type; 234 safe_browsing_util::ListType check_type;
234 Client* client; 235 Client* client;
235 GURL url; 236 GURL url;
236 std::vector<SBThreatType> expected_threats; 237 std::vector<SBThreatType> expected_threats;
237 base::TimeTicks start; // When check was queued. 238 base::TimeTicks start; // When check was queued.
238 }; 239 };
239 240
240 // Return the threat type from the first result in |full_hashes| which matches 241 // Return the threat type of the severest entry in |full_hashes| which matches
241 // |hash|, or SAFE if none match. 242 // |hash|, or SAFE if none match.
242 static SBThreatType GetHashThreatType( 243 static SBThreatType GetHashSeverestThreatType(
243 const SBFullHash& hash, 244 const SBFullHash& hash,
244 const std::vector<SBFullHashResult>& full_hashes); 245 const std::vector<SBFullHashResult>& full_hashes);
245 246
246 // Given a URL, compare all the possible host + path full hashes to the set of 247 // Given a URL, compare all the possible host + path full hashes to the set of
247 // provided full hashes. Returns the threat type of the matching result from 248 // provided full hashes. Returns the threat type of the severest matching
248 // |full_hashes|, or SAFE if none match. 249 // result from |full_hashes|, or SAFE if none match.
249 static SBThreatType GetUrlThreatType( 250 static SBThreatType GetUrlSeverestThreatType(
250 const GURL& url, 251 const GURL& url,
251 const std::vector<SBFullHashResult>& full_hashes, 252 const std::vector<SBFullHashResult>& full_hashes,
252 size_t* index); 253 size_t* index);
253 254
254 // Called to stop operations on the io_thread. This may be called multiple 255 // Called to stop operations on the io_thread. This may be called multiple
255 // times during the life of the DatabaseManager. Should be called on IO 256 // times during the life of the DatabaseManager. Should be called on IO
256 // thread. 257 // thread.
257 void DoStopOnIOThread(); 258 void DoStopOnIOThread();
258 259
259 // Returns whether |database_| exists and is accessible. 260 // Returns whether |database_| exists and is accessible.
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 383
383 // Indicate if the extension blacklist should be enabled. 384 // Indicate if the extension blacklist should be enabled.
384 bool enable_extension_blacklist_; 385 bool enable_extension_blacklist_;
385 386
386 // Indicate if the side effect free whitelist should be enabled. 387 // Indicate if the side effect free whitelist should be enabled.
387 bool enable_side_effect_free_whitelist_; 388 bool enable_side_effect_free_whitelist_;
388 389
389 // Indicate if the csd malware IP blacklist should be enabled. 390 // Indicate if the csd malware IP blacklist should be enabled.
390 bool enable_ip_blacklist_; 391 bool enable_ip_blacklist_;
391 392
393 // Indicate if the unwanted software blacklist should be enabled.
394 bool enable_unwanted_software_blacklist_;
395
392 // The SafeBrowsing thread that runs database operations. 396 // The SafeBrowsing thread that runs database operations.
393 // 397 //
394 // Note: Functions that run on this thread should run synchronously and return 398 // Note: Functions that run on this thread should run synchronously and return
395 // to the IO thread, not post additional tasks back to this thread, lest we 399 // to the IO thread, not post additional tasks back to this thread, lest we
396 // cause a race condition at shutdown time that leads to a database leak. 400 // cause a race condition at shutdown time that leads to a database leak.
397 scoped_ptr<base::Thread> safe_browsing_thread_; 401 scoped_ptr<base::Thread> safe_browsing_thread_;
398 402
399 // Indicates if we're currently in an update cycle. 403 // Indicates if we're currently in an update cycle.
400 bool update_in_progress_; 404 bool update_in_progress_;
401 405
402 // When true, newly fetched chunks may not in the database yet since the 406 // When true, newly fetched chunks may not in the database yet since the
403 // database is still updating. 407 // database is still updating.
404 bool database_update_in_progress_; 408 bool database_update_in_progress_;
405 409
406 // Indicates if we're in the midst of trying to close the database. If this 410 // Indicates if we're in the midst of trying to close the database. If this
407 // is true, nothing on the IO thread should access the database. 411 // is true, nothing on the IO thread should access the database.
408 bool closing_database_; 412 bool closing_database_;
409 413
410 std::deque<QueuedCheck> queued_checks_; 414 std::deque<QueuedCheck> queued_checks_;
411 415
412 // Timeout to use for safe browsing checks. 416 // Timeout to use for safe browsing checks.
413 base::TimeDelta check_timeout_; 417 base::TimeDelta check_timeout_;
414 418
415 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingDatabaseManager); 419 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingDatabaseManager);
416 }; 420 };
417 421
418 #endif // CHROME_BROWSER_SAFE_BROWSING_DATABASE_MANAGER_H_ 422 #endif // CHROME_BROWSER_SAFE_BROWSING_DATABASE_MANAGER_H_
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/safe_browsing/database_manager.cc » ('j') | chrome/browser/safe_browsing/safe_browsing_database.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698