| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 Stop(true); | 359 Stop(true); |
| 360 | 360 |
| 361 services_delegate_->ShutdownServices(); | 361 services_delegate_->ShutdownServices(); |
| 362 | 362 |
| 363 // Since URLRequestContextGetters are refcounted, can't count on clearing | 363 // Since URLRequestContextGetters are refcounted, can't count on clearing |
| 364 // |url_request_context_getter_| to delete it, so need to shut it down first, | 364 // |url_request_context_getter_| to delete it, so need to shut it down first, |
| 365 // which will cancel any requests that are currently using it, and prevent | 365 // which will cancel any requests that are currently using it, and prevent |
| 366 // new requests from using it as well. | 366 // new requests from using it as well. |
| 367 BrowserThread::PostNonNestableTask( | 367 BrowserThread::PostNonNestableTask( |
| 368 BrowserThread::IO, FROM_HERE, | 368 BrowserThread::IO, FROM_HERE, |
| 369 base::Bind(&SafeBrowsingURLRequestContextGetter::ServiceShuttingDown, | 369 base::BindOnce(&SafeBrowsingURLRequestContextGetter::ServiceShuttingDown, |
| 370 url_request_context_getter_)); | 370 url_request_context_getter_)); |
| 371 | 371 |
| 372 // Release the URLRequestContextGetter after passing it to the IOThread. It | 372 // Release the URLRequestContextGetter after passing it to the IOThread. It |
| 373 // has to be released now rather than in the destructor because it can only | 373 // has to be released now rather than in the destructor because it can only |
| 374 // be deleted on the IOThread, and the SafeBrowsingService outlives the IO | 374 // be deleted on the IOThread, and the SafeBrowsingService outlives the IO |
| 375 // thread. | 375 // thread. |
| 376 url_request_context_getter_ = nullptr; | 376 url_request_context_getter_ = nullptr; |
| 377 } | 377 } |
| 378 | 378 |
| 379 bool SafeBrowsingService::DownloadBinHashNeeded() const { | 379 bool SafeBrowsingService::DownloadBinHashNeeded() const { |
| 380 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 380 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 | 461 |
| 462 void SafeBrowsingService::OnResourceRequest(const net::URLRequest* request) { | 462 void SafeBrowsingService::OnResourceRequest(const net::URLRequest* request) { |
| 463 #if defined(FULL_SAFE_BROWSING) | 463 #if defined(FULL_SAFE_BROWSING) |
| 464 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 464 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 465 TRACE_EVENT1("loader", "SafeBrowsingService::OnResourceRequest", "url", | 465 TRACE_EVENT1("loader", "SafeBrowsingService::OnResourceRequest", "url", |
| 466 request->url().spec()); | 466 request->url().spec()); |
| 467 | 467 |
| 468 ResourceRequestInfo info = ResourceRequestDetector::GetRequestInfo(request); | 468 ResourceRequestInfo info = ResourceRequestDetector::GetRequestInfo(request); |
| 469 BrowserThread::PostTask( | 469 BrowserThread::PostTask( |
| 470 BrowserThread::UI, FROM_HERE, | 470 BrowserThread::UI, FROM_HERE, |
| 471 base::Bind(&SafeBrowsingService::ProcessResourceRequest, this, info)); | 471 base::BindOnce(&SafeBrowsingService::ProcessResourceRequest, this, info)); |
| 472 #endif | 472 #endif |
| 473 } | 473 } |
| 474 | 474 |
| 475 SafeBrowsingUIManager* SafeBrowsingService::CreateUIManager() { | 475 SafeBrowsingUIManager* SafeBrowsingService::CreateUIManager() { |
| 476 return new SafeBrowsingUIManager(this); | 476 return new SafeBrowsingUIManager(this); |
| 477 } | 477 } |
| 478 | 478 |
| 479 SafeBrowsingDatabaseManager* SafeBrowsingService::CreateDatabaseManager() { | 479 SafeBrowsingDatabaseManager* SafeBrowsingService::CreateDatabaseManager() { |
| 480 #if defined(SAFE_BROWSING_DB_LOCAL) | 480 #if defined(SAFE_BROWSING_DB_LOCAL) |
| 481 return new LocalSafeBrowsingDatabaseManager(this); | 481 return new LocalSafeBrowsingDatabaseManager(this); |
| (...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 618 #endif | 618 #endif |
| 619 ping_manager_.reset(); | 619 ping_manager_.reset(); |
| 620 } | 620 } |
| 621 } | 621 } |
| 622 | 622 |
| 623 void SafeBrowsingService::Start() { | 623 void SafeBrowsingService::Start() { |
| 624 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 624 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 625 | 625 |
| 626 BrowserThread::PostTask( | 626 BrowserThread::PostTask( |
| 627 BrowserThread::IO, FROM_HERE, | 627 BrowserThread::IO, FROM_HERE, |
| 628 base::Bind(&SafeBrowsingService::StartOnIOThread, this, | 628 base::BindOnce(&SafeBrowsingService::StartOnIOThread, this, |
| 629 base::RetainedRef(url_request_context_getter_))); | 629 base::RetainedRef(url_request_context_getter_))); |
| 630 } | 630 } |
| 631 | 631 |
| 632 void SafeBrowsingService::Stop(bool shutdown) { | 632 void SafeBrowsingService::Stop(bool shutdown) { |
| 633 BrowserThread::PostTask( | 633 BrowserThread::PostTask( |
| 634 BrowserThread::IO, FROM_HERE, | 634 BrowserThread::IO, FROM_HERE, |
| 635 base::Bind(&SafeBrowsingService::StopOnIOThread, this, shutdown)); | 635 base::BindOnce(&SafeBrowsingService::StopOnIOThread, this, shutdown)); |
| 636 } | 636 } |
| 637 | 637 |
| 638 void SafeBrowsingService::Observe(int type, | 638 void SafeBrowsingService::Observe(int type, |
| 639 const content::NotificationSource& source, | 639 const content::NotificationSource& source, |
| 640 const content::NotificationDetails& details) { | 640 const content::NotificationDetails& details) { |
| 641 switch (type) { | 641 switch (type) { |
| 642 case chrome::NOTIFICATION_PROFILE_CREATED: { | 642 case chrome::NOTIFICATION_PROFILE_CREATED: { |
| 643 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 643 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 644 Profile* profile = content::Source<Profile>(source).ptr(); | 644 Profile* profile = content::Source<Profile>(source).ptr(); |
| 645 CreatePasswordProtectionService(profile); | 645 CreatePasswordProtectionService(profile); |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 737 state_callback_list_.Notify(); | 737 state_callback_list_.Notify(); |
| 738 | 738 |
| 739 services_delegate_->RefreshState(enabled_by_prefs_); | 739 services_delegate_->RefreshState(enabled_by_prefs_); |
| 740 } | 740 } |
| 741 | 741 |
| 742 void SafeBrowsingService::SendSerializedDownloadReport( | 742 void SafeBrowsingService::SendSerializedDownloadReport( |
| 743 const std::string& report) { | 743 const std::string& report) { |
| 744 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 744 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 745 BrowserThread::PostTask( | 745 BrowserThread::PostTask( |
| 746 BrowserThread::IO, FROM_HERE, | 746 BrowserThread::IO, FROM_HERE, |
| 747 base::Bind(&SafeBrowsingService::OnSendSerializedDownloadReport, this, | 747 base::BindOnce(&SafeBrowsingService::OnSendSerializedDownloadReport, this, |
| 748 report)); | 748 report)); |
| 749 } | 749 } |
| 750 | 750 |
| 751 void SafeBrowsingService::OnSendSerializedDownloadReport( | 751 void SafeBrowsingService::OnSendSerializedDownloadReport( |
| 752 const std::string& report) { | 752 const std::string& report) { |
| 753 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 753 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 754 if (ping_manager()) | 754 if (ping_manager()) |
| 755 ping_manager()->ReportThreatDetails(report); | 755 ping_manager()->ReportThreatDetails(report); |
| 756 } | 756 } |
| 757 | 757 |
| 758 void SafeBrowsingService::ProcessResourceRequest( | 758 void SafeBrowsingService::ProcessResourceRequest( |
| (...skipping 14 matching lines...) Expand all Loading... |
| 773 | 773 |
| 774 void SafeBrowsingService::RemovePasswordProtectionService(Profile* profile) { | 774 void SafeBrowsingService::RemovePasswordProtectionService(Profile* profile) { |
| 775 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 775 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 776 DCHECK(profile); | 776 DCHECK(profile); |
| 777 auto it = password_protection_service_map_.find(profile); | 777 auto it = password_protection_service_map_.find(profile); |
| 778 if (it != password_protection_service_map_.end()) | 778 if (it != password_protection_service_map_.end()) |
| 779 password_protection_service_map_.erase(it); | 779 password_protection_service_map_.erase(it); |
| 780 } | 780 } |
| 781 | 781 |
| 782 } // namespace safe_browsing | 782 } // namespace safe_browsing |
| OLD | NEW |