| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_feedback_service.h" | 5 #include "chrome/browser/safe_browsing/download_feedback_service.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 84 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 85 } | 85 } |
| 86 | 86 |
| 87 DownloadFeedbackService::~DownloadFeedbackService() { | 87 DownloadFeedbackService::~DownloadFeedbackService() { |
| 88 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 88 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 89 } | 89 } |
| 90 | 90 |
| 91 // static | 91 // static |
| 92 void DownloadFeedbackService::MaybeStorePingsForDownload( | 92 void DownloadFeedbackService::MaybeStorePingsForDownload( |
| 93 DownloadProtectionService::DownloadCheckResult result, | 93 DownloadProtectionService::DownloadCheckResult result, |
| 94 bool upload_requested, |
| 94 content::DownloadItem* download, | 95 content::DownloadItem* download, |
| 95 const std::string& ping, | 96 const std::string& ping, |
| 96 const std::string& response) { | 97 const std::string& response) { |
| 98 // Is this result worthy of triggering an upload? |
| 99 bool upload_due_to_result = false; |
| 97 switch (result) { | 100 switch (result) { |
| 98 case DownloadProtectionService::UNKNOWN: | 101 case DownloadProtectionService::UNKNOWN: |
| 99 case DownloadProtectionService::SAFE: | 102 case DownloadProtectionService::SAFE: |
| 100 case DownloadProtectionService::DANGEROUS: | 103 case DownloadProtectionService::DANGEROUS: |
| 101 return; | 104 upload_due_to_result = false; |
| 105 break; |
| 102 case DownloadProtectionService::UNCOMMON: | 106 case DownloadProtectionService::UNCOMMON: |
| 103 case DownloadProtectionService::DANGEROUS_HOST: | 107 case DownloadProtectionService::DANGEROUS_HOST: |
| 104 case DownloadProtectionService::POTENTIALLY_UNWANTED: | 108 case DownloadProtectionService::POTENTIALLY_UNWANTED: |
| 109 upload_due_to_result = true; |
| 105 break; // Fall through. | 110 break; // Fall through. |
| 106 } | 111 } |
| 112 |
| 113 if (!upload_requested && !upload_due_to_result) |
| 114 return; |
| 115 |
| 116 // Log if the result said no upload, but the server requested it anyway. |
| 117 UMA_HISTOGRAM_BOOLEAN("SBDownloadFeedback.UploadRequestedByServer", |
| 118 !upload_due_to_result && upload_requested); |
| 119 |
| 107 UMA_HISTOGRAM_COUNTS("SBDownloadFeedback.SizeEligibleKB", | 120 UMA_HISTOGRAM_COUNTS("SBDownloadFeedback.SizeEligibleKB", |
| 108 download->GetReceivedBytes() / 1024); | 121 download->GetReceivedBytes() / 1024); |
| 109 if (download->GetReceivedBytes() > DownloadFeedback::kMaxUploadSize) | 122 if (download->GetReceivedBytes() > DownloadFeedback::kMaxUploadSize) |
| 110 return; | 123 return; |
| 111 | 124 |
| 112 DownloadFeedbackPings::CreateForDownload(download, ping, response); | 125 DownloadFeedbackPings::CreateForDownload(download, ping, response); |
| 113 } | 126 } |
| 114 | 127 |
| 115 // static | 128 // static |
| 116 bool DownloadFeedbackService::IsEnabledForDownload( | 129 bool DownloadFeedbackService::IsEnabledForDownload( |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 void DownloadFeedbackService::FeedbackComplete() { | 218 void DownloadFeedbackService::FeedbackComplete() { |
| 206 DVLOG(1) << __func__; | 219 DVLOG(1) << __func__; |
| 207 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 220 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 208 DCHECK(!active_feedback_.empty()); | 221 DCHECK(!active_feedback_.empty()); |
| 209 active_feedback_.pop(); | 222 active_feedback_.pop(); |
| 210 if (!active_feedback_.empty()) | 223 if (!active_feedback_.empty()) |
| 211 StartPendingFeedback(); | 224 StartPendingFeedback(); |
| 212 } | 225 } |
| 213 | 226 |
| 214 } // namespace safe_browsing | 227 } // namespace safe_browsing |
| OLD | NEW |