| Index: chrome/browser/safe_browsing/client_side_detection_host.h
|
| diff --git a/chrome/browser/safe_browsing/client_side_detection_host.h b/chrome/browser/safe_browsing/client_side_detection_host.h
|
| index d22931086a5cc4114f9ef9cc7427913fce8e91f0..fbe1cd60721ba81d0f23fe91d7c7bf51fa57fab8 100644
|
| --- a/chrome/browser/safe_browsing/client_side_detection_host.h
|
| +++ b/chrome/browser/safe_browsing/client_side_detection_host.h
|
| @@ -17,7 +17,8 @@
|
| class TabContents;
|
|
|
| namespace safe_browsing {
|
| -
|
| +class BrowserFeatureExtractor;
|
| +class ClientPhishingRequest;
|
| class ClientSideDetectionService;
|
|
|
| // This class is used to receive the IPC from the renderer which
|
| @@ -28,7 +29,7 @@ class ClientSideDetectionService;
|
| class ClientSideDetectionHost : public TabContentsObserver {
|
| public:
|
| // The caller keeps ownership of the tab object and is responsible for
|
| - // ensuring that it stays valid for the entire lifetime of this object.
|
| + // ensuring that it stays valid until TabContentsDestroyed is called.
|
| static ClientSideDetectionHost* Create(TabContents* tab);
|
| virtual ~ClientSideDetectionHost();
|
|
|
| @@ -42,6 +43,10 @@ class ClientSideDetectionHost : public TabContentsObserver {
|
| const content::LoadCommittedDetails& details,
|
| const ViewHostMsg_FrameNavigate_Params& params);
|
|
|
| + protected:
|
| + // From TabContentsObserver. Called when the TabContents is being destroyed.
|
| + virtual void TabContentsDestroyed(TabContents* tab);
|
| +
|
| private:
|
| friend class ClientSideDetectionHostTest;
|
| class ShouldClassifyUrlRequest;
|
| @@ -57,6 +62,11 @@ class ClientSideDetectionHost : public TabContentsObserver {
|
| // Otherwise, we do nothing. Called in UI thread.
|
| void MaybeShowPhishingWarning(GURL phishing_url, bool is_phishing);
|
|
|
| + // Callback that is called when the browser feature extractor is done.
|
| + // This method is responsible for deleting the request object. Called on
|
| + // the UI thread.
|
| + void FeatureExtractionDone(bool success, ClientPhishingRequest* request);
|
| +
|
| // Used for testing. This function does not take ownership of the service
|
| // class.
|
| void set_client_side_detection_service(ClientSideDetectionService* service);
|
| @@ -72,6 +82,8 @@ class ClientSideDetectionHost : public TabContentsObserver {
|
| // Keep a handle to the latest classification request so that we can cancel
|
| // it if necessary.
|
| scoped_refptr<ShouldClassifyUrlRequest> classification_request_;
|
| + // Browser-side feature extractor.
|
| + scoped_ptr<BrowserFeatureExtractor> feature_extractor_;
|
|
|
| base::ScopedCallbackFactory<ClientSideDetectionHost> cb_factory_;
|
|
|
|
|