| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/safe_browsing_service.h" | 5 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| 6 | 6 |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/lazy_instance.h" | 9 #include "base/lazy_instance.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 236 client, | 236 client, |
| 237 NewRunnableMethod(this, | 237 NewRunnableMethod(this, |
| 238 &SafeBrowsingService::CheckDownloadHashOnSBThread, | 238 &SafeBrowsingService::CheckDownloadHashOnSBThread, |
| 239 check), | 239 check), |
| 240 download_hashcheck_timeout_ms_); | 240 download_hashcheck_timeout_ms_); |
| 241 return false; | 241 return false; |
| 242 } | 242 } |
| 243 | 243 |
| 244 bool SafeBrowsingService::MatchCsdWhitelistUrl(const GURL& url) { | 244 bool SafeBrowsingService::MatchCsdWhitelistUrl(const GURL& url) { |
| 245 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 245 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 246 DCHECK(enable_csd_whitelist_); | |
| 247 if (!enabled_ || !enable_csd_whitelist_ || !MakeDatabaseAvailable()) { | 246 if (!enabled_ || !enable_csd_whitelist_ || !MakeDatabaseAvailable()) { |
| 248 // There is something funky going on here. Just to be safe we return | 247 // There is something funky going on here -- for example, perhaps the user |
| 249 // true in this case. | 248 // has not restarted since enabling metrics reporting, so we haven't |
| 249 // enabled the csd whitelist yet. Just to be safe we return true in this |
| 250 // case. |
| 250 return true; | 251 return true; |
| 251 } | 252 } |
| 252 return database_->ContainsCsdWhitelistedUrl(url); | 253 return database_->ContainsCsdWhitelistedUrl(url); |
| 253 } | 254 } |
| 254 | 255 |
| 255 bool SafeBrowsingService::CheckBrowseUrl(const GURL& url, | 256 bool SafeBrowsingService::CheckBrowseUrl(const GURL& url, |
| 256 Client* client) { | 257 Client* client) { |
| 257 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 258 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 258 if (!enabled_) | 259 if (!enabled_) |
| 259 return true; | 260 return true; |
| (...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 874 GetDefaultProfile()->GetRequestContext()); | 875 GetDefaultProfile()->GetRequestContext()); |
| 875 | 876 |
| 876 CommandLine* cmdline = CommandLine::ForCurrentProcess(); | 877 CommandLine* cmdline = CommandLine::ForCurrentProcess(); |
| 877 enable_download_protection_ = | 878 enable_download_protection_ = |
| 878 !cmdline->HasSwitch(switches::kSbDisableDownloadProtection); | 879 !cmdline->HasSwitch(switches::kSbDisableDownloadProtection); |
| 879 | 880 |
| 880 // We only download the csd-whitelist if client-side phishing detection is | 881 // We only download the csd-whitelist if client-side phishing detection is |
| 881 // enabled and if the user has opted in with stats collection. Note: we | 882 // enabled and if the user has opted in with stats collection. Note: we |
| 882 // cannot check whether the metrics_service() object is created because it | 883 // cannot check whether the metrics_service() object is created because it |
| 883 // may be initialized after this method is called. | 884 // may be initialized after this method is called. |
| 885 #ifdef OS_CHROMEOS |
| 886 // Client-side detection is disabled on ChromeOS for now, so don't bother |
| 887 // downloading the whitelist. |
| 888 enable_csd_whitelist_ = false; |
| 889 #else |
| 884 enable_csd_whitelist_ = | 890 enable_csd_whitelist_ = |
| 885 (cmdline->HasSwitch(switches::kEnableClientSidePhishingDetection) && | 891 (!cmdline->HasSwitch(switches::kDisableClientSidePhishingDetection) && |
| 886 local_state && local_state->GetBoolean(prefs::kMetricsReportingEnabled)); | 892 local_state && local_state->GetBoolean(prefs::kMetricsReportingEnabled)); |
| 893 #endif |
| 887 | 894 |
| 888 BrowserThread::PostTask( | 895 BrowserThread::PostTask( |
| 889 BrowserThread::IO, FROM_HERE, | 896 BrowserThread::IO, FROM_HERE, |
| 890 NewRunnableMethod( | 897 NewRunnableMethod( |
| 891 this, &SafeBrowsingService::OnIOInitialize, client_key, wrapped_key, | 898 this, &SafeBrowsingService::OnIOInitialize, client_key, wrapped_key, |
| 892 request_context_getter)); | 899 request_context_getter)); |
| 893 } | 900 } |
| 894 | 901 |
| 895 void SafeBrowsingService::OnCloseDatabase() { | 902 void SafeBrowsingService::OnCloseDatabase() { |
| 896 DCHECK_EQ(MessageLoop::current(), safe_browsing_thread_->message_loop()); | 903 DCHECK_EQ(MessageLoop::current(), safe_browsing_thread_->message_loop()); |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1171 check->is_download = true; | 1178 check->is_download = true; |
| 1172 check->timeout_task = | 1179 check->timeout_task = |
| 1173 NewRunnableMethod(this, &SafeBrowsingService::TimeoutCallback, check); | 1180 NewRunnableMethod(this, &SafeBrowsingService::TimeoutCallback, check); |
| 1174 checks_.insert(check); | 1181 checks_.insert(check); |
| 1175 | 1182 |
| 1176 safe_browsing_thread_->message_loop()->PostTask(FROM_HERE, task); | 1183 safe_browsing_thread_->message_loop()->PostTask(FROM_HERE, task); |
| 1177 | 1184 |
| 1178 MessageLoop::current()->PostDelayedTask( | 1185 MessageLoop::current()->PostDelayedTask( |
| 1179 FROM_HERE, check->timeout_task, timeout_ms); | 1186 FROM_HERE, check->timeout_task, timeout_ms); |
| 1180 } | 1187 } |
| OLD | NEW |