| 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/safe_browsing_service.h" | 5 #include "chrome/browser/safe_browsing/safe_browsing_service.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" | 10 #include "base/bind_helpers.h" |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 | 217 |
| 218 database_manager_ = CreateDatabaseManager(); | 218 database_manager_ = CreateDatabaseManager(); |
| 219 | 219 |
| 220 BrowserThread::PostTask( | 220 BrowserThread::PostTask( |
| 221 BrowserThread::IO, FROM_HERE, | 221 BrowserThread::IO, FROM_HERE, |
| 222 base::Bind( | 222 base::Bind( |
| 223 &SafeBrowsingService::InitURLRequestContextOnIOThread, this, | 223 &SafeBrowsingService::InitURLRequestContextOnIOThread, this, |
| 224 make_scoped_refptr(g_browser_process->system_request_context()))); | 224 make_scoped_refptr(g_browser_process->system_request_context()))); |
| 225 | 225 |
| 226 #if defined(FULL_SAFE_BROWSING) | 226 #if defined(FULL_SAFE_BROWSING) |
| 227 #if !defined(OS_ANDROID) | 227 #if defined(SAFE_BROWSING_CSD) |
| 228 if (!CommandLine::ForCurrentProcess()->HasSwitch( | 228 if (!CommandLine::ForCurrentProcess()->HasSwitch( |
| 229 switches::kDisableClientSidePhishingDetection)) { | 229 switches::kDisableClientSidePhishingDetection)) { |
| 230 csd_service_.reset(safe_browsing::ClientSideDetectionService::Create( | 230 csd_service_.reset(safe_browsing::ClientSideDetectionService::Create( |
| 231 url_request_context_getter_.get())); | 231 url_request_context_getter_.get())); |
| 232 } | 232 } |
| 233 #endif |
| 234 |
| 235 // TODO(shess): SAFE_BROWSING_SERVICE_DOWNLOAD might allow removing |
| 236 // FULL_SAFE_BROWSING use. |
| 237 #if !defined(OS_ANDROID) |
| 233 download_service_.reset(new safe_browsing::DownloadProtectionService( | 238 download_service_.reset(new safe_browsing::DownloadProtectionService( |
| 234 this, url_request_context_getter_.get())); | 239 this, url_request_context_getter_.get())); |
| 235 #endif | 240 #endif |
| 236 | 241 |
| 237 if (IsIncidentReportingServiceEnabled()) { | 242 if (IsIncidentReportingServiceEnabled()) { |
| 238 incident_service_.reset(new safe_browsing::IncidentReportingService( | 243 incident_service_.reset(new safe_browsing::IncidentReportingService( |
| 239 this, url_request_context_getter_)); | 244 this, url_request_context_getter_)); |
| 240 } | 245 } |
| 241 #endif | 246 #endif |
| 242 | 247 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 return incident_service_->CreatePreferenceValidationDelegate(profile); | 335 return incident_service_->CreatePreferenceValidationDelegate(profile); |
| 331 #endif | 336 #endif |
| 332 return scoped_ptr<TrackedPreferenceValidationDelegate>(); | 337 return scoped_ptr<TrackedPreferenceValidationDelegate>(); |
| 333 } | 338 } |
| 334 | 339 |
| 335 SafeBrowsingUIManager* SafeBrowsingService::CreateUIManager() { | 340 SafeBrowsingUIManager* SafeBrowsingService::CreateUIManager() { |
| 336 return new SafeBrowsingUIManager(this); | 341 return new SafeBrowsingUIManager(this); |
| 337 } | 342 } |
| 338 | 343 |
| 339 SafeBrowsingDatabaseManager* SafeBrowsingService::CreateDatabaseManager() { | 344 SafeBrowsingDatabaseManager* SafeBrowsingService::CreateDatabaseManager() { |
| 340 #if defined(FULL_SAFE_BROWSING) | 345 #if defined(SAFE_BROWSING_DATABASE) |
| 341 return new SafeBrowsingDatabaseManager(this); | 346 return new SafeBrowsingDatabaseManager(this); |
| 342 #else | 347 #else |
| 343 return NULL; | 348 return NULL; |
| 344 #endif | 349 #endif |
| 345 } | 350 } |
| 346 | 351 |
| 347 void SafeBrowsingService::InitURLRequestContextOnIOThread( | 352 void SafeBrowsingService::InitURLRequestContextOnIOThread( |
| 348 net::URLRequestContextGetter* system_url_request_context_getter) { | 353 net::URLRequestContextGetter* system_url_request_context_getter) { |
| 349 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 354 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 350 DCHECK(!url_request_context_.get()); | 355 DCHECK(!url_request_context_.get()); |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 417 | 422 |
| 418 void SafeBrowsingService::StartOnIOThread( | 423 void SafeBrowsingService::StartOnIOThread( |
| 419 net::URLRequestContextGetter* url_request_context_getter) { | 424 net::URLRequestContextGetter* url_request_context_getter) { |
| 420 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 425 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 421 if (enabled_) | 426 if (enabled_) |
| 422 return; | 427 return; |
| 423 enabled_ = true; | 428 enabled_ = true; |
| 424 | 429 |
| 425 SafeBrowsingProtocolConfig config = GetProtocolConfig(); | 430 SafeBrowsingProtocolConfig config = GetProtocolConfig(); |
| 426 | 431 |
| 427 #if defined(FULL_SAFE_BROWSING) | 432 #if defined(SAFE_BROWSING_DATABASE) |
| 428 DCHECK(database_manager_.get()); | 433 DCHECK(database_manager_.get()); |
| 429 database_manager_->StartOnIOThread(); | 434 database_manager_->StartOnIOThread(); |
| 430 | 435 |
| 431 DCHECK(!protocol_manager_); | 436 DCHECK(!protocol_manager_); |
| 432 protocol_manager_ = SafeBrowsingProtocolManager::Create( | 437 protocol_manager_ = SafeBrowsingProtocolManager::Create( |
| 433 database_manager_.get(), url_request_context_getter, config); | 438 database_manager_.get(), url_request_context_getter, config); |
| 434 protocol_manager_->Initialize(); | 439 protocol_manager_->Initialize(); |
| 435 #endif | 440 #endif |
| 436 | 441 |
| 437 DCHECK(!ping_manager_); | 442 DCHECK(!ping_manager_); |
| 438 ping_manager_ = SafeBrowsingPingManager::Create( | 443 ping_manager_ = SafeBrowsingPingManager::Create( |
| 439 url_request_context_getter, config); | 444 url_request_context_getter, config); |
| 440 } | 445 } |
| 441 | 446 |
| 442 void SafeBrowsingService::StopOnIOThread(bool shutdown) { | 447 void SafeBrowsingService::StopOnIOThread(bool shutdown) { |
| 443 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 448 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 444 | 449 |
| 445 #if defined(FULL_SAFE_BROWSING) | 450 #if defined(SAFE_BROWSING_DATABASE) |
| 446 database_manager_->StopOnIOThread(shutdown); | 451 database_manager_->StopOnIOThread(shutdown); |
| 447 #endif | 452 #endif |
| 448 ui_manager_->StopOnIOThread(shutdown); | 453 ui_manager_->StopOnIOThread(shutdown); |
| 449 | 454 |
| 450 if (enabled_) { | 455 if (enabled_) { |
| 451 enabled_ = false; | 456 enabled_ = false; |
| 452 | 457 |
| 453 #if defined(FULL_SAFE_BROWSING) | 458 #if defined(SAFE_BROWSING_DATABASE) |
| 454 // This cancels all in-flight GetHash requests. Note that database_manager_ | 459 // This cancels all in-flight GetHash requests. Note that database_manager_ |
| 455 // relies on the protocol_manager_ so if the latter is destroyed, the | 460 // relies on the protocol_manager_ so if the latter is destroyed, the |
| 456 // former must be stopped. | 461 // former must be stopped. |
| 457 delete protocol_manager_; | 462 delete protocol_manager_; |
| 458 protocol_manager_ = NULL; | 463 protocol_manager_ = NULL; |
| 459 #endif | 464 #endif |
| 460 delete ping_manager_; | 465 delete ping_manager_; |
| 461 ping_manager_ = NULL; | 466 ping_manager_ = NULL; |
| 462 } | 467 } |
| 463 } | 468 } |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 537 else | 542 else |
| 538 Stop(false); | 543 Stop(false); |
| 539 | 544 |
| 540 #if defined(FULL_SAFE_BROWSING) | 545 #if defined(FULL_SAFE_BROWSING) |
| 541 if (csd_service_) | 546 if (csd_service_) |
| 542 csd_service_->SetEnabledAndRefreshState(enable); | 547 csd_service_->SetEnabledAndRefreshState(enable); |
| 543 if (download_service_) | 548 if (download_service_) |
| 544 download_service_->SetEnabled(enable); | 549 download_service_->SetEnabled(enable); |
| 545 #endif | 550 #endif |
| 546 } | 551 } |
| OLD | NEW |