OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_BROWSER_SAFE_BROWSING_CLIENT_SIDE_DETECTION_HOST_H_ | 5 #ifndef CHROME_BROWSER_SAFE_BROWSING_CLIENT_SIDE_DETECTION_HOST_H_ |
6 #define CHROME_BROWSER_SAFE_BROWSING_CLIENT_SIDE_DETECTION_HOST_H_ | 6 #define CHROME_BROWSER_SAFE_BROWSING_CLIENT_SIDE_DETECTION_HOST_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
72 // Used for testing. | 72 // Used for testing. |
73 void set_safe_browsing_managers( | 73 void set_safe_browsing_managers( |
74 SafeBrowsingUIManager* ui_manager, | 74 SafeBrowsingUIManager* ui_manager, |
75 SafeBrowsingDatabaseManager* database_manager); | 75 SafeBrowsingDatabaseManager* database_manager); |
76 | 76 |
77 private: | 77 private: |
78 friend class ClientSideDetectionHostTest; | 78 friend class ClientSideDetectionHostTest; |
79 class ShouldClassifyUrlRequest; | 79 class ShouldClassifyUrlRequest; |
80 friend class ShouldClassifyUrlRequest; | 80 friend class ShouldClassifyUrlRequest; |
81 | 81 |
82 // These methods are called when pre-classification checks are done for | |
83 // the phishing and malware clasifiers. | |
84 void OnPhishingPreClassificationDone(bool should_classify); | |
85 void OnMalwarePreClassificationDone(bool should_classify); | |
86 | |
82 // Verdict is an encoded ClientPhishingRequest protocol message. | 87 // Verdict is an encoded ClientPhishingRequest protocol message. |
83 void OnPhishingDetectionDone(const std::string& verdict); | 88 void OnPhishingDetectionDone(const std::string& verdict); |
84 | 89 |
85 // Callback that is called when the server ping back is | 90 // Callback that is called when the server ping back is |
86 // done. Display an interstitial if |is_phishing| is true. | 91 // done. Display an interstitial if |is_phishing| is true. |
87 // Otherwise, we do nothing. Called in UI thread. | 92 // Otherwise, we do nothing. Called in UI thread. |
88 void MaybeShowPhishingWarning(GURL phishing_url, bool is_phishing); | 93 void MaybeShowPhishingWarning(GURL phishing_url, bool is_phishing); |
89 | 94 |
90 // Callback that is called when the malware IP server ping back is | 95 // Callback that is called when the malware IP server ping back is |
91 // done. Display an interstitial if |is_malware| is true. | 96 // done. Display an interstitial if |is_malware| is true. |
(...skipping 17 matching lines...) Expand all Loading... | |
109 const std::string& method, | 114 const std::string& method, |
110 const std::string& referrer, | 115 const std::string& referrer, |
111 const ResourceType::Type resource_type); | 116 const ResourceType::Type resource_type); |
112 | 117 |
113 // From NotificationObserver. Called when a notification comes in. This | 118 // From NotificationObserver. Called when a notification comes in. This |
114 // method is called in the UI thread. | 119 // method is called in the UI thread. |
115 virtual void Observe(int type, | 120 virtual void Observe(int type, |
116 const content::NotificationSource& source, | 121 const content::NotificationSource& source, |
117 const content::NotificationDetails& details) OVERRIDE; | 122 const content::NotificationDetails& details) OVERRIDE; |
118 | 123 |
124 // Inherited from WebContentsObserver. This is called once the onload handler | |
125 // is called. | |
126 virtual void DocumentOnLoadCompletedInMainFrame(int32 page_id); | |
mattm
2014/02/21 00:35:29
OVERRIDE
noé
2014/02/21 19:04:16
Done.
| |
127 | |
119 // Returns true if the user has seen a regular SafeBrowsing | 128 // Returns true if the user has seen a regular SafeBrowsing |
120 // interstitial for the current page. This is only true if the user has | 129 // interstitial for the current page. This is only true if the user has |
121 // actually clicked through the warning. This method is called on the UI | 130 // actually clicked through the warning. This method is called on the UI |
122 // thread. | 131 // thread. |
123 bool DidShowSBInterstitial() const; | 132 bool DidShowSBInterstitial() const; |
124 | 133 |
125 // Used for testing. This function does not take ownership of the service | 134 // Used for testing. This function does not take ownership of the service |
126 // class. | 135 // class. |
127 void set_client_side_detection_service(ClientSideDetectionService* service); | 136 void set_client_side_detection_service(ClientSideDetectionService* service); |
128 | 137 |
129 // Get/Set malware_killswitch_on_ value. These methods called on UI thread. | |
130 bool MalwareKillSwitchIsOn(); | |
131 void SetMalwareKillSwitch(bool killswitch_on); | |
132 | |
133 // This pointer may be NULL if client-side phishing detection is disabled. | 138 // This pointer may be NULL if client-side phishing detection is disabled. |
134 ClientSideDetectionService* csd_service_; | 139 ClientSideDetectionService* csd_service_; |
135 // These pointers may be NULL if SafeBrowsing is disabled. | 140 // These pointers may be NULL if SafeBrowsing is disabled. |
136 scoped_refptr<SafeBrowsingDatabaseManager> database_manager_; | 141 scoped_refptr<SafeBrowsingDatabaseManager> database_manager_; |
137 scoped_refptr<SafeBrowsingUIManager> ui_manager_; | 142 scoped_refptr<SafeBrowsingUIManager> ui_manager_; |
138 // Keep a handle to the latest classification request so that we can cancel | 143 // Keep a handle to the latest classification request so that we can cancel |
139 // it if necessary. | 144 // it if necessary. |
140 scoped_refptr<ShouldClassifyUrlRequest> classification_request_; | 145 scoped_refptr<ShouldClassifyUrlRequest> classification_request_; |
141 // Browser-side feature extractor. | 146 // Browser-side feature extractor. |
142 scoped_ptr<BrowserFeatureExtractor> feature_extractor_; | 147 scoped_ptr<BrowserFeatureExtractor> feature_extractor_; |
143 // Keeps some info about the current page visit while the renderer | 148 // Keeps some info about the current page visit while the renderer |
144 // classification is going on. Since we cancel classification on | 149 // classification is going on. Since we cancel classification on |
145 // every page load we can simply keep this data around as a member | 150 // every page load we can simply keep this data around as a member |
146 // variable. This information will be passed on to the feature extractor. | 151 // variable. This information will be passed on to the feature extractor. |
147 scoped_ptr<BrowseInfo> browse_info_; | 152 scoped_ptr<BrowseInfo> browse_info_; |
148 // Redirect chain that leads to the first page of the current host. We keep | 153 // Redirect chain that leads to the first page of the current host. We keep |
149 // track of this for browse_info_. | 154 // track of this for browse_info_. |
150 std::vector<GURL> cur_host_redirects_; | 155 std::vector<GURL> cur_host_redirects_; |
151 // Current host, used to help determine cur_host_redirects_. | 156 // Current host, used to help determine cur_host_redirects_. |
152 std::string cur_host_; | 157 std::string cur_host_; |
153 // Handles registering notifications with the NotificationService. | 158 // Handles registering notifications with the NotificationService. |
154 content::NotificationRegistrar registrar_; | 159 content::NotificationRegistrar registrar_; |
155 | 160 |
156 // Max number of ips we save for each browse | 161 // Max number of ips we save for each browse |
157 static const int kMaxIPsPerBrowse; | 162 static const int kMaxIPsPerBrowse; |
158 // Max number of urls we report for each malware IP. | 163 // Max number of urls we report for each malware IP. |
159 static const int kMaxUrlsPerIP; | 164 static const int kMaxUrlsPerIP; |
160 | 165 |
166 bool should_extract_malware_features_; | |
167 bool should_classify_for_malware_; | |
168 | |
161 base::WeakPtrFactory<ClientSideDetectionHost> weak_factory_; | 169 base::WeakPtrFactory<ClientSideDetectionHost> weak_factory_; |
162 | 170 |
163 // Unique page ID of the most recent unsafe site that was loaded in this tab | 171 // Unique page ID of the most recent unsafe site that was loaded in this tab |
164 // as well as the UnsafeResource. | 172 // as well as the UnsafeResource. |
165 int unsafe_unique_page_id_; | 173 int unsafe_unique_page_id_; |
166 scoped_ptr<SafeBrowsingUIManager::UnsafeResource> unsafe_resource_; | 174 scoped_ptr<SafeBrowsingUIManager::UnsafeResource> unsafe_resource_; |
167 | 175 |
168 // Whether the malware IP matching feature killswitch is on. | |
169 // This should be accessed from UI thread. | |
170 bool malware_killswitch_on_; | |
171 | |
172 // Whether the malware bad ip matching and report feature is enabled. | |
173 // This should be accessed from UI thread. | |
174 bool malware_report_enabled_; | |
175 | |
176 DISALLOW_COPY_AND_ASSIGN(ClientSideDetectionHost); | 176 DISALLOW_COPY_AND_ASSIGN(ClientSideDetectionHost); |
177 }; | 177 }; |
178 | 178 |
179 } // namespace safe_browsing | 179 } // namespace safe_browsing |
180 | 180 |
181 #endif // CHROME_BROWSER_SAFE_BROWSING_CLIENT_SIDE_DETECTION_HOST_H_ | 181 #endif // CHROME_BROWSER_SAFE_BROWSING_CLIENT_SIDE_DETECTION_HOST_H_ |
OLD | NEW |