OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "chrome/browser/safe_browsing/client_side_detection_host.h" | 5 #include "chrome/browser/safe_browsing/client_side_detection_host.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 DontClassifyForMalware(NO_CLASSIFY_OFF_THE_RECORD); | 126 DontClassifyForMalware(NO_CLASSIFY_OFF_THE_RECORD); |
127 } | 127 } |
128 | 128 |
129 // We lookup the csd-whitelist before we lookup the cache because | 129 // We lookup the csd-whitelist before we lookup the cache because |
130 // a URL may have recently been whitelisted. If the URL matches | 130 // a URL may have recently been whitelisted. If the URL matches |
131 // the csd-whitelist we won't start phishing classification. The | 131 // the csd-whitelist we won't start phishing classification. The |
132 // csd-whitelist check has to be done on the IO thread because it | 132 // csd-whitelist check has to be done on the IO thread because it |
133 // uses the SafeBrowsing service class. | 133 // uses the SafeBrowsing service class. |
134 if (ShouldClassifyForPhishing() || ShouldClassifyForMalware()) { | 134 if (ShouldClassifyForPhishing() || ShouldClassifyForMalware()) { |
135 BrowserThread::PostTask( | 135 BrowserThread::PostTask( |
136 BrowserThread::IO, | 136 BrowserThread::IO, FROM_HERE, |
137 FROM_HERE, | 137 base::BindOnce(&ShouldClassifyUrlRequest::CheckSafeBrowsingDatabase, |
138 base::Bind(&ShouldClassifyUrlRequest::CheckSafeBrowsingDatabase, | 138 this, url_)); |
139 this, url_)); | |
140 } | 139 } |
141 } | 140 } |
142 | 141 |
143 void Cancel() { | 142 void Cancel() { |
144 DontClassifyForPhishing(NO_CLASSIFY_CANCEL); | 143 DontClassifyForPhishing(NO_CLASSIFY_CANCEL); |
145 DontClassifyForMalware(NO_CLASSIFY_CANCEL); | 144 DontClassifyForMalware(NO_CLASSIFY_CANCEL); |
146 // Just to make sure we don't do anything stupid we reset all these | 145 // Just to make sure we don't do anything stupid we reset all these |
147 // pointers except for the safebrowsing service class which may be | 146 // pointers except for the safebrowsing service class which may be |
148 // accessed by CheckSafeBrowsingDatabase(). | 147 // accessed by CheckSafeBrowsingDatabase(). |
149 web_contents_ = NULL; | 148 web_contents_ = NULL; |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
226 if (database_manager_->MatchCsdWhitelistUrl(url)) { | 225 if (database_manager_->MatchCsdWhitelistUrl(url)) { |
227 DVLOG(1) << "Skipping phishing classification for URL: " << url | 226 DVLOG(1) << "Skipping phishing classification for URL: " << url |
228 << " because it matches the csd whitelist"; | 227 << " because it matches the csd whitelist"; |
229 phishing_reason = NO_CLASSIFY_MATCH_CSD_WHITELIST; | 228 phishing_reason = NO_CLASSIFY_MATCH_CSD_WHITELIST; |
230 } | 229 } |
231 if (database_manager_->IsMalwareKillSwitchOn()) { | 230 if (database_manager_->IsMalwareKillSwitchOn()) { |
232 malware_reason = NO_CLASSIFY_KILLSWITCH; | 231 malware_reason = NO_CLASSIFY_KILLSWITCH; |
233 } | 232 } |
234 } | 233 } |
235 BrowserThread::PostTask( | 234 BrowserThread::PostTask( |
236 BrowserThread::UI, | 235 BrowserThread::UI, FROM_HERE, |
237 FROM_HERE, | 236 base::BindOnce(&ShouldClassifyUrlRequest::CheckCache, this, |
238 base::Bind(&ShouldClassifyUrlRequest::CheckCache, | 237 phishing_reason, malware_reason)); |
239 this, | |
240 phishing_reason, | |
241 malware_reason)); | |
242 } | 238 } |
243 | 239 |
244 void CheckCache(PreClassificationCheckFailures phishing_reason, | 240 void CheckCache(PreClassificationCheckFailures phishing_reason, |
245 PreClassificationCheckFailures malware_reason) { | 241 PreClassificationCheckFailures malware_reason) { |
246 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 242 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
247 if (phishing_reason != NO_CLASSIFY_MAX) | 243 if (phishing_reason != NO_CLASSIFY_MAX) |
248 DontClassifyForPhishing(phishing_reason); | 244 DontClassifyForPhishing(phishing_reason); |
249 if (malware_reason != NO_CLASSIFY_MAX) | 245 if (malware_reason != NO_CLASSIFY_MAX) |
250 DontClassifyForMalware(malware_reason); | 246 DontClassifyForMalware(malware_reason); |
251 if (!ShouldClassifyForMalware() && !ShouldClassifyForPhishing()) { | 247 if (!ShouldClassifyForMalware() && !ShouldClassifyForPhishing()) { |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
725 ui_manager_->RemoveObserver(this); | 721 ui_manager_->RemoveObserver(this); |
726 | 722 |
727 ui_manager_ = ui_manager; | 723 ui_manager_ = ui_manager; |
728 if (ui_manager) | 724 if (ui_manager) |
729 ui_manager_->AddObserver(this); | 725 ui_manager_->AddObserver(this); |
730 | 726 |
731 database_manager_ = database_manager; | 727 database_manager_ = database_manager; |
732 } | 728 } |
733 | 729 |
734 } // namespace safe_browsing | 730 } // namespace safe_browsing |
OLD | NEW |