| 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_;
|
|
|
|
|