Index: chrome/browser/safe_browsing/browser_feature_extractor.h |
diff --git a/chrome/browser/safe_browsing/browser_feature_extractor.h b/chrome/browser/safe_browsing/browser_feature_extractor.h |
index 9a6fbf5db10ef71528737c3e3c4ce22840eb0a12..ffa614960583d09a793ffcf007f7d390952b0e42 100644 |
--- a/chrome/browser/safe_browsing/browser_feature_extractor.h |
+++ b/chrome/browser/safe_browsing/browser_feature_extractor.h |
@@ -37,7 +37,7 @@ class WebContents; |
namespace safe_browsing { |
class ClientMalwareRequest; |
class ClientPhishingRequest; |
-class ClientSideDetectionService; |
+class ClientSideDetectionHost; |
typedef std::map<std::string, std::set<std::string> > IPUrlMap; |
@@ -74,11 +74,11 @@ class BrowserFeatureExtractor { |
typedef base::Callback<void(bool, ClientPhishingRequest*)> DoneCallback; |
typedef base::Callback<void(bool, ClientMalwareRequest*)> MalwareDoneCallback; |
- // The caller keeps ownership of the tab and service objects and is |
+ // The caller keeps ownership of the tab and host objects and is |
// responsible for ensuring that they stay valid for the entire |
// lifetime of this object. |
BrowserFeatureExtractor(content::WebContents* tab, |
- ClientSideDetectionService* service); |
+ ClientSideDetectionHost* host); |
// The destructor will cancel any pending requests. |
virtual ~BrowserFeatureExtractor(); |
@@ -93,10 +93,13 @@ class BrowserFeatureExtractor { |
ClientPhishingRequest* request, |
const DoneCallback& callback); |
- // Extract the malware related features. The request object is owned by the |
- // caller. |
- virtual void ExtractMalwareFeatures(const BrowseInfo* info, |
- ClientMalwareRequest* request); |
+ // Begins extraction of the malware related features. We take ownership |
+ // of the request object until |callback| is called. Once feature extraction |
+ // is complete, |callback| will run on the UI thread. |info| is not expected |
+ // to stay valid after ExtractMalwareFeatures returns. |
+ virtual void ExtractMalwareFeatures(const BrowseInfo& info, |
+ ClientMalwareRequest* request, |
+ const MalwareDoneCallback& callback); |
private: |
friend class base::DeleteHelper<BrowserFeatureExtractor>; |
@@ -112,6 +115,11 @@ class BrowserFeatureExtractor { |
void StartExtractFeatures(ClientPhishingRequest* request, |
const DoneCallback& callback); |
+ // Actually start the malware feature extraction on the IO thread. |
+ void StartExtractMalwareFeatures(scoped_ptr<IPUrlMap> ips, |
+ ClientMalwareRequest* request, |
+ const MalwareDoneCallback& callback); |
+ |
// HistoryService callback which is called when we're done querying URL visits |
// in the history. |
void QueryUrlHistoryDone(CancelableRequestProvider::Handle handle, |
@@ -160,7 +168,7 @@ class BrowserFeatureExtractor { |
bool GetHistoryService(HistoryService** history); |
content::WebContents* tab_; |
- ClientSideDetectionService* service_; |
+ ClientSideDetectionHost* host_; |
CancelableRequestConsumer request_consumer_; |
base::WeakPtrFactory<BrowserFeatureExtractor> weak_factory_; |