Index: chrome/browser/safe_browsing/client_side_detection_service.h |
diff --git a/chrome/browser/safe_browsing/client_side_detection_service.h b/chrome/browser/safe_browsing/client_side_detection_service.h |
index af0a2d999ec72445c6da16975127ea15d8494ff3..f8a0e5cd536deed4b99deb282e2e73f46cf24746 100644 |
--- a/chrome/browser/safe_browsing/client_side_detection_service.h |
+++ b/chrome/browser/safe_browsing/client_side_detection_service.h |
@@ -29,7 +29,11 @@ |
#include "base/scoped_callback_factory.h" |
#include "base/scoped_ptr.h" |
#include "base/task.h" |
+#include "chrome/common/render_messages_params.h" |
#include "chrome/browser/safe_browsing/csd.pb.h" |
+#include "chrome/browser/safe_browsing/safe_browsing_service.h" |
+#include "chrome/browser/tab_contents/navigation_controller.h" |
+#include "chrome/browser/tab_contents/web_navigation_observer.h" |
#include "chrome/common/net/url_fetcher.h" |
#include "googleurl/src/gurl.h" |
@@ -41,6 +45,36 @@ class URLRequestStatus; |
namespace safe_browsing { |
+// This class is used to display a phishing interstitial if the client-side |
+// phishing detection service classified a particular URL as phishing. |
+class CsdClient : public SafeBrowsingService::Client, |
lzheng
2011/01/25 00:43:43
Can add comments regarding which thread will call
noelutz
2011/02/10 01:16:23
Done.
|
+ public WebNavigationObserver { |
+ public: |
+ CsdClient(int render_process_id, int render_view_id); |
+ |
+ virtual void OnUrlCheckResult(const GURL& url, |
Brian Ryner
2011/01/20 23:36:40
Comment that these methods are from SafeBrowsingSe
noelutz
2011/02/10 01:16:23
Done.
|
+ SafeBrowsingService::UrlCheckResult result); |
+ virtual void OnBlockingPageComplete(bool proceed); |
+ virtual void MaybeShowPhishingInterstitial(GURL phishing_url, |
+ bool is_phishing); |
+ |
+ // From WebNavigationObserver. We want to know if the user navigates away |
+ // from the current page. That way when the server verdict comes back we |
+ // will not show any interstitial. |
+ virtual void DidNavigateMainFramePostCommit( |
+ const NavigationController::LoadCommittedDetails& details, |
+ const ViewHostMsg_FrameNavigate_Params& params); |
+ |
+ private: |
+ // We're taking care of deleting this object. No-one else should delete |
+ // this object. |
+ ~CsdClient(); |
+ |
+ int render_process_id_; |
+ int render_view_id_; |
+ bool navigated_away_; |
+}; |
Brian Ryner
2011/01/20 23:36:40
DISALLOW_COPY_AND_ASSIGN?
noelutz
2011/02/10 01:16:23
Done.
|
+ |
class ClientSideDetectionService : public URLFetcher::Delegate { |
public: |
typedef Callback1<base::PlatformFile>::Type OpenModelDoneCallback; |