Chromium Code Reviews| 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/download_protection_service.h" | 5 #include "chrome/browser/safe_browsing/download_protection_service.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <memory> | 9 #include <memory> |
| 10 | 10 |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 341 DownloadProtectionService* service, | 341 DownloadProtectionService* service, |
| 342 const scoped_refptr<SafeBrowsingDatabaseManager>& database_manager, | 342 const scoped_refptr<SafeBrowsingDatabaseManager>& database_manager, |
| 343 BinaryFeatureExtractor* binary_feature_extractor) | 343 BinaryFeatureExtractor* binary_feature_extractor) |
| 344 : item_(item), | 344 : item_(item), |
| 345 url_chain_(item->GetUrlChain()), | 345 url_chain_(item->GetUrlChain()), |
| 346 referrer_url_(item->GetReferrerUrl()), | 346 referrer_url_(item->GetReferrerUrl()), |
| 347 tab_url_(item->GetTabUrl()), | 347 tab_url_(item->GetTabUrl()), |
| 348 tab_referrer_url_(item->GetTabReferrerUrl()), | 348 tab_referrer_url_(item->GetTabReferrerUrl()), |
| 349 archived_executable_(false), | 349 archived_executable_(false), |
| 350 archive_is_valid_(ArchiveValid::UNSET), | 350 archive_is_valid_(ArchiveValid::UNSET), |
| 351 #if defined(OS_MACOSX) | |
| 352 disk_image_signature_(nullptr), | |
| 353 #endif | |
| 351 callback_(callback), | 354 callback_(callback), |
| 352 service_(service), | 355 service_(service), |
| 353 binary_feature_extractor_(binary_feature_extractor), | 356 binary_feature_extractor_(binary_feature_extractor), |
| 354 database_manager_(database_manager), | 357 database_manager_(database_manager), |
| 355 pingback_enabled_(service_->enabled()), | 358 pingback_enabled_(service_->enabled()), |
| 356 finished_(false), | 359 finished_(false), |
| 357 type_(ClientDownloadRequest::WIN_EXECUTABLE), | 360 type_(ClientDownloadRequest::WIN_EXECUTABLE), |
| 358 start_time_(base::TimeTicks::Now()), | 361 start_time_(base::TimeTicks::Now()), |
| 359 skipped_url_whitelist_(false), | 362 skipped_url_whitelist_(false), |
| 360 skipped_certificate_whitelist_(false), | 363 skipped_certificate_whitelist_(false), |
| (...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 805 else | 808 else |
| 806 StartExtractFileFeatures(); | 809 StartExtractFileFeatures(); |
| 807 } | 810 } |
| 808 | 811 |
| 809 void OnDmgAnalysisFinished(const ArchiveAnalyzerResults& results) { | 812 void OnDmgAnalysisFinished(const ArchiveAnalyzerResults& results) { |
| 810 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 813 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 811 DCHECK_EQ(ClientDownloadRequest::MAC_EXECUTABLE, type_); | 814 DCHECK_EQ(ClientDownloadRequest::MAC_EXECUTABLE, type_); |
| 812 if (!service_) | 815 if (!service_) |
| 813 return; | 816 return; |
| 814 | 817 |
| 818 #if defined(OS_MACOSX) | |
|
Jialiu Lin
2017/06/28 00:23:34
You probably don't need the #if/#endif here, since
mortonm
2017/06/28 16:24:41
Done.
| |
| 819 if (results.signature_blob.size() > 0) { | |
| 820 disk_image_signature_ = std::unique_ptr<std::vector<uint8_t>>( | |
|
Jialiu Lin
2017/06/28 00:23:34
change "std::unique_ptr<std::vector<uint8_t>>(new
mortonm
2017/06/28 16:24:41
Done.
| |
| 821 new std::vector<uint8_t>(results.signature_blob)); | |
| 822 } | |
| 823 #endif | |
| 824 | |
| 815 // Even if !results.success, some of the DMG may have been parsed. | 825 // Even if !results.success, some of the DMG may have been parsed. |
| 816 archive_is_valid_ = | 826 archive_is_valid_ = |
| 817 (results.success ? ArchiveValid::VALID : ArchiveValid::INVALID); | 827 (results.success ? ArchiveValid::VALID : ArchiveValid::INVALID); |
| 818 archived_executable_ = results.has_executable; | 828 archived_executable_ = results.has_executable; |
| 819 archived_binary_.CopyFrom(results.archived_binary); | 829 archived_binary_.CopyFrom(results.archived_binary); |
| 820 DVLOG(1) << "DMG analysis has finished for " << item_->GetFullPath().value() | 830 DVLOG(1) << "DMG analysis has finished for " << item_->GetFullPath().value() |
| 821 << ", has_executable=" << results.has_executable | 831 << ", has_executable=" << results.has_executable |
| 822 << ", success=" << results.success; | 832 << ", success=" << results.success; |
| 823 | 833 |
| 824 int64_t uma_file_type = FileTypePolicies::GetInstance()->UmaValueForFile( | 834 int64_t uma_file_type = FileTypePolicies::GetInstance()->UmaValueForFile( |
| (...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1050 item_->GetUserData(kDownloadReferrerChainDataKey)); | 1060 item_->GetUserData(kDownloadReferrerChainDataKey)); |
| 1051 if (referrer_chain_data && | 1061 if (referrer_chain_data && |
| 1052 !referrer_chain_data->GetReferrerChain()->empty()) { | 1062 !referrer_chain_data->GetReferrerChain()->empty()) { |
| 1053 request.mutable_referrer_chain()->Swap( | 1063 request.mutable_referrer_chain()->Swap( |
| 1054 referrer_chain_data->GetReferrerChain()); | 1064 referrer_chain_data->GetReferrerChain()); |
| 1055 if (type_ == ClientDownloadRequest::SAMPLED_UNSUPPORTED_FILE) | 1065 if (type_ == ClientDownloadRequest::SAMPLED_UNSUPPORTED_FILE) |
| 1056 SafeBrowsingNavigationObserverManager::SanitizeReferrerChain( | 1066 SafeBrowsingNavigationObserverManager::SanitizeReferrerChain( |
| 1057 request.mutable_referrer_chain()); | 1067 request.mutable_referrer_chain()); |
| 1058 } | 1068 } |
| 1059 | 1069 |
| 1070 #if defined(OS_MACOSX) | |
| 1071 UMA_HISTOGRAM_BOOLEAN( | |
| 1072 "SBClientDownload." | |
| 1073 "DownloadFileHasDmgSignature", | |
| 1074 disk_image_signature_ != nullptr); | |
| 1075 | |
| 1076 if (disk_image_signature_) { | |
| 1077 request.set_udif_code_signature(disk_image_signature_->data(), | |
| 1078 disk_image_signature_->size()); | |
| 1079 } | |
| 1080 #endif | |
| 1081 | |
| 1060 if (archive_is_valid_ != ArchiveValid::UNSET) | 1082 if (archive_is_valid_ != ArchiveValid::UNSET) |
| 1061 request.set_archive_valid(archive_is_valid_ == ArchiveValid::VALID); | 1083 request.set_archive_valid(archive_is_valid_ == ArchiveValid::VALID); |
| 1062 request.mutable_signature()->CopyFrom(signature_info_); | 1084 request.mutable_signature()->CopyFrom(signature_info_); |
| 1063 if (image_headers_) | 1085 if (image_headers_) |
| 1064 request.set_allocated_image_headers(image_headers_.release()); | 1086 request.set_allocated_image_headers(image_headers_.release()); |
| 1065 if (archived_executable_) | 1087 if (archived_executable_) |
| 1066 request.mutable_archived_binary()->Swap(&archived_binary_); | 1088 request.mutable_archived_binary()->Swap(&archived_binary_); |
| 1067 if (!request.SerializeToString(&client_download_request_data_)) { | 1089 if (!request.SerializeToString(&client_download_request_data_)) { |
| 1068 FinishRequest(UNKNOWN, REASON_INVALID_REQUEST_PROTO); | 1090 FinishRequest(UNKNOWN, REASON_INVALID_REQUEST_PROTO); |
| 1069 return; | 1091 return; |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1245 GURL referrer_url_; | 1267 GURL referrer_url_; |
| 1246 // URL chain of redirects leading to (but not including) |tab_url|. | 1268 // URL chain of redirects leading to (but not including) |tab_url|. |
| 1247 std::vector<GURL> tab_redirects_; | 1269 std::vector<GURL> tab_redirects_; |
| 1248 // URL and referrer of the window the download was started from. | 1270 // URL and referrer of the window the download was started from. |
| 1249 GURL tab_url_; | 1271 GURL tab_url_; |
| 1250 GURL tab_referrer_url_; | 1272 GURL tab_referrer_url_; |
| 1251 | 1273 |
| 1252 bool archived_executable_; | 1274 bool archived_executable_; |
| 1253 ArchiveValid archive_is_valid_; | 1275 ArchiveValid archive_is_valid_; |
| 1254 | 1276 |
| 1277 #if defined(OS_MACOSX) | |
| 1278 std::unique_ptr<std::vector<uint8_t>> disk_image_signature_; | |
| 1279 #endif | |
| 1280 | |
| 1255 ClientDownloadRequest_SignatureInfo signature_info_; | 1281 ClientDownloadRequest_SignatureInfo signature_info_; |
| 1256 std::unique_ptr<ClientDownloadRequest_ImageHeaders> image_headers_; | 1282 std::unique_ptr<ClientDownloadRequest_ImageHeaders> image_headers_; |
| 1257 google::protobuf::RepeatedPtrField<ClientDownloadRequest_ArchivedBinary> | 1283 google::protobuf::RepeatedPtrField<ClientDownloadRequest_ArchivedBinary> |
| 1258 archived_binary_; | 1284 archived_binary_; |
| 1259 CheckDownloadCallback callback_; | 1285 CheckDownloadCallback callback_; |
| 1260 // Will be NULL if the request has been canceled. | 1286 // Will be NULL if the request has been canceled. |
| 1261 DownloadProtectionService* service_; | 1287 DownloadProtectionService* service_; |
| 1262 scoped_refptr<BinaryFeatureExtractor> binary_feature_extractor_; | 1288 scoped_refptr<BinaryFeatureExtractor> binary_feature_extractor_; |
| 1263 scoped_refptr<SafeBrowsingDatabaseManager> database_manager_; | 1289 scoped_refptr<SafeBrowsingDatabaseManager> database_manager_; |
| 1264 const bool pingback_enabled_; | 1290 const bool pingback_enabled_; |
| (...skipping 747 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2012 out_request->mutable_referrer_chain()); | 2038 out_request->mutable_referrer_chain()); |
| 2013 UMA_HISTOGRAM_COUNTS_100( | 2039 UMA_HISTOGRAM_COUNTS_100( |
| 2014 "SafeBrowsing.ReferrerURLChainSize.PPAPIDownloadAttribution", | 2040 "SafeBrowsing.ReferrerURLChainSize.PPAPIDownloadAttribution", |
| 2015 out_request->referrer_chain_size()); | 2041 out_request->referrer_chain_size()); |
| 2016 UMA_HISTOGRAM_ENUMERATION( | 2042 UMA_HISTOGRAM_ENUMERATION( |
| 2017 "SafeBrowsing.ReferrerAttributionResult.PPAPIDownloadAttribution", result, | 2043 "SafeBrowsing.ReferrerAttributionResult.PPAPIDownloadAttribution", result, |
| 2018 SafeBrowsingNavigationObserverManager::ATTRIBUTION_FAILURE_TYPE_MAX); | 2044 SafeBrowsingNavigationObserverManager::ATTRIBUTION_FAILURE_TYPE_MAX); |
| 2019 } | 2045 } |
| 2020 | 2046 |
| 2021 } // namespace safe_browsing | 2047 } // namespace safe_browsing |
| OLD | NEW |