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

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

Issue 348037: Fourth patch in getting rid of caching MessageLoop pointers. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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
11 #include <deque> 11 #include <deque>
12 #include <set> 12 #include <set>
13 #include <string> 13 #include <string>
14 #include <vector> 14 #include <vector>
15 15
16 #include "base/hash_tables.h" 16 #include "base/hash_tables.h"
17 #include "base/ref_counted.h" 17 #include "base/ref_counted.h"
18 #include "base/scoped_ptr.h" 18 #include "base/scoped_ptr.h"
19 #include "base/thread.h" 19 #include "base/thread.h"
20 #include "base/time.h" 20 #include "base/time.h"
21 #include "chrome/browser/safe_browsing/safe_browsing_util.h" 21 #include "chrome/browser/safe_browsing/safe_browsing_util.h"
22 #include "googleurl/src/gurl.h" 22 #include "googleurl/src/gurl.h"
23 #include "webkit/glue/resource_type.h" 23 #include "webkit/glue/resource_type.h"
24 24
25 class BloomFilter; 25 class BloomFilter;
26 class MessageLoop;
27 class PrefService; 26 class PrefService;
28 class SafeBrowsingBlockingPage; 27 class SafeBrowsingBlockingPage;
29 class SafeBrowsingDatabase; 28 class SafeBrowsingDatabase;
30 class SafeBrowsingProtocolManager; 29 class SafeBrowsingProtocolManager;
31 30
32 // Construction needs to happen on the main thread. 31 // Construction needs to happen on the main thread.
33 class SafeBrowsingService 32 class SafeBrowsingService
34 : public base::RefCountedThreadSafe<SafeBrowsingService> { 33 : public base::RefCountedThreadSafe<SafeBrowsingService> {
35 public: 34 public:
36 // Users of this service implement this interface to be notified 35 // Users of this service implement this interface to be notified
(...skipping 24 matching lines...) Expand all
61 UrlCheckResult threat_type; 60 UrlCheckResult threat_type;
62 Client* client; 61 Client* client;
63 int render_process_host_id; 62 int render_process_host_id;
64 int render_view_id; 63 int render_view_id;
65 }; 64 };
66 65
67 // Creates the safe browsing service. Need to initialize before using. 66 // Creates the safe browsing service. Need to initialize before using.
68 SafeBrowsingService(); 67 SafeBrowsingService();
69 ~SafeBrowsingService(); 68 ~SafeBrowsingService();
70 69
71 // Initializes the service. io_loop is the message loop that the 70 // Initializes the service.
72 // caller of this service (ResourceDispatcherHost) wants to be notified on 71 void Initialize();
73 // for check results.
74 void Initialize(MessageLoop* io_loop);
75 72
76 // Called to initialize objects that are used on the io_thread. 73 // Called to initialize objects that are used on the io_thread.
77 void OnIOInitialize(MessageLoop* notify_loop, 74 void OnIOInitialize(const std::string& client_key,
78 const std::string& client_key,
79 const std::string& wrapped_key); 75 const std::string& wrapped_key);
80 76
81 // Called to initialize objects that are used on the db_thread. 77 // Called to initialize objects that are used on the db_thread.
82 void OnDBInitialize(); 78 void OnDBInitialize();
83 79
84 // Called to shutdown operations on the io_thread. 80 // Called to shutdown operations on the io_thread.
85 void OnIOShutdown(); 81 void OnIOShutdown();
86 82
87 // Called on the main thread to let us know that the io_thread is going away. 83 // Called on the main thread to let us know that the io_thread is going away.
88 void ShutDown(); 84 void ShutDown();
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 // Invoked on the UI thread to show the blocking page. 223 // Invoked on the UI thread to show the blocking page.
228 void DoDisplayBlockingPage(const UnsafeResource& resource); 224 void DoDisplayBlockingPage(const UnsafeResource& resource);
229 225
230 // During a reset or the initial load we may have to queue checks until the 226 // During a reset or the initial load we may have to queue checks until the
231 // database is ready. This method is run once the database has loaded (or if 227 // database is ready. This method is run once the database has loaded (or if
232 // we shut down SafeBrowsing before the database has finished loading). 228 // we shut down SafeBrowsing before the database has finished loading).
233 void RunQueuedClients(); 229 void RunQueuedClients();
234 230
235 void OnUpdateComplete(bool update_succeeded); 231 void OnUpdateComplete(bool update_succeeded);
236 232
237 MessageLoop* io_loop_;
238
239 typedef std::set<SafeBrowsingCheck*> CurrentChecks; 233 typedef std::set<SafeBrowsingCheck*> CurrentChecks;
240 CurrentChecks checks_; 234 CurrentChecks checks_;
241 235
242 // Used for issuing only one GetHash request for a given prefix. 236 // Used for issuing only one GetHash request for a given prefix.
243 typedef std::vector<SafeBrowsingCheck*> GetHashRequestors; 237 typedef std::vector<SafeBrowsingCheck*> GetHashRequestors;
244 typedef base::hash_map<SBPrefix, GetHashRequestors> GetHashRequests; 238 typedef base::hash_map<SBPrefix, GetHashRequestors> GetHashRequests;
245 GetHashRequests gethash_requests_; 239 GetHashRequests gethash_requests_;
246 240
247 // The sqlite database. We don't use a scoped_ptr because it needs to be 241 // The sqlite database. We don't use a scoped_ptr because it needs to be
248 // destructed on a different thread than this object. 242 // destructed on a different thread than this object.
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 Client* client; 276 Client* client;
283 GURL url; 277 GURL url;
284 base::Time start; 278 base::Time start;
285 } QueuedCheck; 279 } QueuedCheck;
286 std::deque<QueuedCheck> queued_checks_; 280 std::deque<QueuedCheck> queued_checks_;
287 281
288 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingService); 282 DISALLOW_COPY_AND_ASSIGN(SafeBrowsingService);
289 }; 283 };
290 284
291 #endif // CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_SERVICE_H_ 285 #endif // CHROME_BROWSER_SAFE_BROWSING_SAFE_BROWSING_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/protocol_manager_unittest.cc ('k') | chrome/browser/safe_browsing/safe_browsing_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698