Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(97)

Side by Side Diff: chrome/browser/safe_browsing/download_protection_service.cc

Issue 8468020: Propagate the SafeBrowsing download protection verdict to the DownloadItem. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Address Ben's comment. Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 #include "chrome/browser/safe_browsing/download_protection_service.h" 5 #include "chrome/browser/safe_browsing/download_protection_service.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/format_macros.h" 8 #include "base/format_macros.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 566 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
567 if (service_) { 567 if (service_) {
568 callback_.Run(result); 568 callback_.Run(result);
569 service_->RequestFinished(this); 569 service_->RequestFinished(this);
570 } else { 570 } else {
571 callback_.Run(SAFE); 571 callback_.Run(SAFE);
572 } 572 }
573 } 573 }
574 574
575 void RecordImprovedProtectionStats(DownloadCheckResultReason reason) { 575 void RecordImprovedProtectionStats(DownloadCheckResultReason reason) {
576 VLOG(2) << "SafeBrowsing download verdict for: "
577 << info_.DebugString() << " verdict:" << reason;
576 UMA_HISTOGRAM_ENUMERATION("SBClientDownload.CheckDownloadStats", 578 UMA_HISTOGRAM_ENUMERATION("SBClientDownload.CheckDownloadStats",
577 reason, 579 reason,
578 REASON_MAX); 580 REASON_MAX);
579 } 581 }
580 582
581 DownloadInfo info_; 583 DownloadInfo info_;
582 ClientDownloadRequest_SignatureInfo signature_info_; 584 ClientDownloadRequest_SignatureInfo signature_info_;
583 CheckDownloadCallback callback_; 585 CheckDownloadCallback callback_;
584 // Will be NULL if the request has been canceled. 586 // Will be NULL if the request has been canceled.
585 DownloadProtectionService* service_; 587 DownloadProtectionService* service_;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 DCHECK(!info.download_url_chain.empty()); 633 DCHECK(!info.download_url_chain.empty());
632 scoped_refptr<DownloadUrlSBClient> client( 634 scoped_refptr<DownloadUrlSBClient> client(
633 new DownloadUrlSBClient(info, callback, sb_service_)); 635 new DownloadUrlSBClient(info, callback, sb_service_));
634 // The client will release itself once it is done. 636 // The client will release itself once it is done.
635 BrowserThread::PostTask( 637 BrowserThread::PostTask(
636 BrowserThread::IO, 638 BrowserThread::IO,
637 FROM_HERE, 639 FROM_HERE,
638 base::Bind(&DownloadUrlSBClient::StartCheck, client)); 640 base::Bind(&DownloadUrlSBClient::StartCheck, client));
639 } 641 }
640 642
643 bool DownloadProtectionService::IsSupportedFileType(
644 const FilePath& filename) const {
645 return IsBinaryFile(filename);
646 }
647
641 void DownloadProtectionService::CancelPendingRequests() { 648 void DownloadProtectionService::CancelPendingRequests() {
642 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 649 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
643 for (std::set<scoped_refptr<CheckClientDownloadRequest> >::iterator it = 650 for (std::set<scoped_refptr<CheckClientDownloadRequest> >::iterator it =
644 download_requests_.begin(); 651 download_requests_.begin();
645 it != download_requests_.end(); ++it) { 652 it != download_requests_.end(); ++it) {
646 (*it)->Cancel(); 653 (*it)->Cancel();
647 } 654 }
648 download_requests_.clear(); 655 download_requests_.clear();
649 } 656 }
650 657
651 void DownloadProtectionService::RequestFinished( 658 void DownloadProtectionService::RequestFinished(
652 CheckClientDownloadRequest* request) { 659 CheckClientDownloadRequest* request) {
653 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 660 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
654 std::set<scoped_refptr<CheckClientDownloadRequest> >::iterator it = 661 std::set<scoped_refptr<CheckClientDownloadRequest> >::iterator it =
655 download_requests_.find(request); 662 download_requests_.find(request);
656 DCHECK(it != download_requests_.end()); 663 DCHECK(it != download_requests_.end());
657 download_requests_.erase(*it); 664 download_requests_.erase(*it);
658 } 665 }
659 } // namespace safe_browsing 666 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698