| Index: chrome/renderer/safe_browsing/phishing_classifier_delegate.h
|
| diff --git a/chrome/renderer/safe_browsing/phishing_classifier_delegate.h b/chrome/renderer/safe_browsing/phishing_classifier_delegate.h
|
| index 89788f2edabf7c3432610b1e33f7a3aa2ed1deba..7d2c0787277dcca4605258ab43b1ba1ab90c7fa0 100644
|
| --- a/chrome/renderer/safe_browsing/phishing_classifier_delegate.h
|
| +++ b/chrome/renderer/safe_browsing/phishing_classifier_delegate.h
|
| @@ -34,7 +34,16 @@ class PhishingClassifierDelegate : public RenderViewObserver {
|
| void SetPhishingScorer(const safe_browsing::Scorer* scorer);
|
|
|
| // RenderViewObserver implementation, public for testing.
|
| +
|
| + // Called by the RenderView once a page has finished loading. Updates the
|
| + // last-loaded URL and page id, then starts classification if all other
|
| + // conditions are met (see MaybeStartClassification for details).
|
| virtual void PageCaptured(const string16& page_text);
|
| +
|
| + // Called by the RenderView when a page has started loading in the given
|
| + // WebFrame. Typically, this will cause any pending classification to be
|
| + // cancelled. However, if the navigation is within the same page, we
|
| + // continue running the current classification.
|
| virtual void DidCommitProvisionalLoad(WebKit::WebFrame* frame,
|
| bool is_new_navigation);
|
|
|
| @@ -48,34 +57,47 @@ class PhishingClassifierDelegate : public RenderViewObserver {
|
| // RenderViewObserver implementation.
|
| virtual bool OnMessageReceived(const IPC::Message& message);
|
|
|
| + // Called by the RenderView when it receives a StartPhishingDetection IPC
|
| + // from the browser. This signals that it is ok to begin classification
|
| + // for the given toplevel URL. If the URL has been fully loaded into the
|
| + // RenderView and a Scorer has been set, this will begin classification,
|
| + // otherwise classification will be deferred until these conditions are met.
|
| + void OnStartPhishingDetection(const GURL& url);
|
| +
|
| // Called when classification for the current page finishes.
|
| void ClassificationDone(bool is_phishy, double phishy_score);
|
|
|
| // Returns the RenderView's toplevel URL, with the ref stripped.
|
| GURL StripToplevelUrl();
|
|
|
| + // Shared code to begin classification if all conditions are met.
|
| + void MaybeStartClassification();
|
| +
|
| // The PhishingClassifier to use for the RenderView. This is created once
|
| // a scorer is made available via SetPhishingScorer().
|
| scoped_ptr<PhishingClassifier> classifier_;
|
|
|
| - // The last URL that was sent to the phishing classifier.
|
| - GURL last_url_sent_to_classifier_;
|
| + // The last URL that the browser instructed us to classify.
|
| + GURL last_url_received_from_browser_;
|
| +
|
| + // The last URL and page id that have finished loading in the RenderView.
|
| + // These correspond to the text in classifier_page_text_.
|
| + GURL last_finished_load_url_;
|
| + int32 last_finished_load_id_;
|
|
|
| - // The page id of the last load that was sent to the phishing classifier.
|
| - // This is used to suppress phishing classification on back and forward
|
| - // navigations in history.
|
| + // The URL and page id of the last load that we actually started
|
| + // classification on. This is used to suppress phishing classification on
|
| + // subframe navigation and back and forward navigations in history.
|
| + GURL last_url_sent_to_classifier_;
|
| int32 last_page_id_sent_to_classifier_;
|
|
|
| // The page text that will be analyzed by the phishing classifier. This is
|
| // set by OnNavigate and cleared when the classifier finishes. Note that if
|
| - // there is no classifier yet when OnNavigate is called, the page text will
|
| - // be cached until the scorer is set and a classifier can be created.
|
| + // there is no Scorer yet when OnNavigate is called, or the browser has not
|
| + // instructed us to classify the page, the page text will be cached until
|
| + // these conditions are met.
|
| string16 classifier_page_text_;
|
|
|
| - // Set to true if we should run the phishing classifier on the current page
|
| - // as soon as SetPhishingScorer() is called.
|
| - bool pending_classification_;
|
| -
|
| DISALLOW_COPY_AND_ASSIGN(PhishingClassifierDelegate);
|
| };
|
|
|
|
|