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

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

Issue 8790006: Add download server IP address to the SafeBrowsing download protection ping. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Created 9 years 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/compiler_specific.h" 8 #include "base/compiler_specific.h"
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 DownloadProtectionService::DownloadInfo 151 DownloadProtectionService::DownloadInfo
152 DownloadProtectionService::DownloadInfo::FromDownloadItem( 152 DownloadProtectionService::DownloadInfo::FromDownloadItem(
153 const DownloadItem& item) { 153 const DownloadItem& item) {
154 DownloadInfo download_info; 154 DownloadInfo download_info;
155 download_info.target_file = item.GetTargetFilePath(); 155 download_info.target_file = item.GetTargetFilePath();
156 download_info.sha256_hash = item.GetHash(); 156 download_info.sha256_hash = item.GetHash();
157 download_info.local_file = item.GetFullPath(); 157 download_info.local_file = item.GetFullPath();
158 download_info.download_url_chain = item.GetUrlChain(); 158 download_info.download_url_chain = item.GetUrlChain();
159 download_info.referrer_url = item.GetReferrerUrl(); 159 download_info.referrer_url = item.GetReferrerUrl();
160 download_info.total_bytes = item.GetTotalBytes(); 160 download_info.total_bytes = item.GetTotalBytes();
161 // TODO(bryner): Populate user_initiated 161 download_info.remote_address = item.GetRemoteAddress();
162 download_info.user_initiated = item.GetStateInfo().has_user_gesture;
162 return download_info; 163 return download_info;
163 } 164 }
164 165
165 // Parent SafeBrowsing::Client class used to lookup the bad binary 166 // Parent SafeBrowsing::Client class used to lookup the bad binary
166 // URL and digest list. There are two sub-classes (one for each list). 167 // URL and digest list. There are two sub-classes (one for each list).
167 class DownloadSBClient 168 class DownloadSBClient
168 : public SafeBrowsingService::Client, 169 : public SafeBrowsingService::Client,
169 public base::RefCountedThreadSafe<DownloadSBClient> { 170 public base::RefCountedThreadSafe<DownloadSBClient> {
170 public: 171 public:
171 DownloadSBClient( 172 DownloadSBClient(
(...skipping 396 matching lines...) Expand 10 before | Expand all | Expand 10 after
568 request.set_url(info_.download_url_chain.back().spec()); 569 request.set_url(info_.download_url_chain.back().spec());
569 request.mutable_digests()->set_sha256(info_.sha256_hash); 570 request.mutable_digests()->set_sha256(info_.sha256_hash);
570 request.set_length(info_.total_bytes); 571 request.set_length(info_.total_bytes);
571 for (size_t i = 0; i < info_.download_url_chain.size(); ++i) { 572 for (size_t i = 0; i < info_.download_url_chain.size(); ++i) {
572 ClientDownloadRequest::Resource* resource = request.add_resources(); 573 ClientDownloadRequest::Resource* resource = request.add_resources();
573 resource->set_url(info_.download_url_chain[i].spec()); 574 resource->set_url(info_.download_url_chain[i].spec());
574 if (i == info_.download_url_chain.size() - 1) { 575 if (i == info_.download_url_chain.size() - 1) {
575 // The last URL in the chain is the download URL. 576 // The last URL in the chain is the download URL.
576 resource->set_type(ClientDownloadRequest::DOWNLOAD_URL); 577 resource->set_type(ClientDownloadRequest::DOWNLOAD_URL);
577 resource->set_referrer(info_.referrer_url.spec()); 578 resource->set_referrer(info_.referrer_url.spec());
579 if (!info_.remote_address.empty()) {
580 resource->set_remote_ip(info_.remote_address);
581 }
578 } else { 582 } else {
579 resource->set_type(ClientDownloadRequest::DOWNLOAD_REDIRECT); 583 resource->set_type(ClientDownloadRequest::DOWNLOAD_REDIRECT);
580 } 584 }
581 // TODO(noelutz): fill out the remote IP addresses. 585 // TODO(noelutz): fill out the remote IP addresses.
582 } 586 }
583 request.set_user_initiated(info_.user_initiated); 587 request.set_user_initiated(info_.user_initiated);
584 request.mutable_signature()->CopyFrom(signature_info_); 588 request.mutable_signature()->CopyFrom(signature_info_);
585 std::string request_data; 589 std::string request_data;
586 if (!request.SerializeToString(&request_data)) { 590 if (!request.SerializeToString(&request_data)) {
587 RecordImprovedProtectionStats(REASON_INVALID_REQUEST_PROTO); 591 RecordImprovedProtectionStats(REASON_INVALID_REQUEST_PROTO);
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 835
832 std::string issuer_fp = base::HexEncode(issuer.fingerprint().data, 836 std::string issuer_fp = base::HexEncode(issuer.fingerprint().data,
833 sizeof(issuer.fingerprint().data)); 837 sizeof(issuer.fingerprint().data));
834 for (std::set<std::string>::iterator it = paths_to_check.begin(); 838 for (std::set<std::string>::iterator it = paths_to_check.begin();
835 it != paths_to_check.end(); ++it) { 839 it != paths_to_check.end(); ++it) {
836 whitelist_strings->push_back("cert/" + issuer_fp + *it); 840 whitelist_strings->push_back("cert/" + issuer_fp + *it);
837 } 841 }
838 } 842 }
839 843
840 } // namespace safe_browsing 844 } // namespace safe_browsing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698