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

Side by Side Diff: chrome/browser/safe_browsing/incident_reporting/last_download_finder.cc

Issue 1979153002: Use FileTypePolicies for is_archive and is_supported classifications. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@split_by_platform
Patch Set: Fix comment, per asanka's review Created 4 years, 7 months 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/incident_reporting/last_download_finder.h " 5 #include "chrome/browser/safe_browsing/incident_reporting/last_download_finder.h "
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
11 #include <functional> 11 #include <functional>
12 #include <utility> 12 #include <utility>
13 13
14 #include "base/bind.h" 14 #include "base/bind.h"
15 #include "base/macros.h" 15 #include "base/macros.h"
16 #include "base/memory/ptr_util.h" 16 #include "base/memory/ptr_util.h"
17 #include "base/strings/string_util.h" 17 #include "base/strings/string_util.h"
18 #include "base/strings/utf_string_conversions.h" 18 #include "base/strings/utf_string_conversions.h"
19 #include "build/build_config.h" 19 #include "build/build_config.h"
20 #include "chrome/browser/browser_process.h" 20 #include "chrome/browser/browser_process.h"
21 #include "chrome/browser/chrome_notification_types.h" 21 #include "chrome/browser/chrome_notification_types.h"
22 #include "chrome/browser/history/history_service_factory.h" 22 #include "chrome/browser/history/history_service_factory.h"
23 #include "chrome/browser/profiles/profile_manager.h" 23 #include "chrome/browser/profiles/profile_manager.h"
24 #include "chrome/browser/safe_browsing/incident_reporting/incident_reporting_ser vice.h" 24 #include "chrome/browser/safe_browsing/incident_reporting/incident_reporting_ser vice.h"
25 #include "chrome/common/pref_names.h" 25 #include "chrome/common/pref_names.h"
26 #include "chrome/common/safe_browsing/csd.pb.h" 26 #include "chrome/common/safe_browsing/csd.pb.h"
27 #include "chrome/common/safe_browsing/download_protection_util.h" 27 #include "chrome/common/safe_browsing/download_protection_util.h"
28 #include "chrome/common/safe_browsing/file_type_policies.h"
28 #include "components/history/core/browser/download_constants.h" 29 #include "components/history/core/browser/download_constants.h"
29 #include "components/history/core/browser/history_service.h" 30 #include "components/history/core/browser/history_service.h"
30 #include "components/prefs/pref_service.h" 31 #include "components/prefs/pref_service.h"
31 #include "content/public/browser/notification_details.h" 32 #include "content/public/browser/notification_details.h"
32 #include "content/public/browser/notification_service.h" 33 #include "content/public/browser/notification_service.h"
33 #include "content/public/browser/notification_source.h" 34 #include "content/public/browser/notification_source.h"
34 #include "crypto/sha2.h" 35 #include "crypto/sha2.h"
35 36
36 namespace safe_browsing { 37 namespace safe_browsing {
37 38
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 // The default return value of download_protection_util::GetDownloadType is 85 // The default return value of download_protection_util::GetDownloadType is
85 // ClientDownloadRequest::WIN_EXECUTABLE. 86 // ClientDownloadRequest::WIN_EXECUTABLE.
86 return download_type == ClientDownloadRequest::WIN_EXECUTABLE; 87 return download_type == ClientDownloadRequest::WIN_EXECUTABLE;
87 } 88 }
88 89
89 // Returns true if a download represented by a DownloadRow is a binary file for 90 // Returns true if a download represented by a DownloadRow is a binary file for
90 // the current OS. 91 // the current OS.
91 bool IsBinaryDownload(const history::DownloadRow& row) { 92 bool IsBinaryDownload(const history::DownloadRow& row) {
92 // TODO(grt): Peek into archives to see if they contain binaries; 93 // TODO(grt): Peek into archives to see if they contain binaries;
93 // http://crbug.com/386915. 94 // http://crbug.com/386915.
94 return (download_protection_util::IsSupportedBinaryFile(row.target_path) && 95 FileTypePolicies* policies = FileTypePolicies::GetInstance();
95 !download_protection_util::IsArchiveFile(row.target_path) && 96 return (policies->IsCheckedBinaryFile(row.target_path) &&
97 !policies->IsArchiveFile(row.target_path) &&
96 IsBinaryDownloadForCurrentOS( 98 IsBinaryDownloadForCurrentOS(
97 download_protection_util::GetDownloadType(row.target_path))); 99 download_protection_util::GetDownloadType(row.target_path)));
98 } 100 }
99 101
100 // Returns true if a download represented by a DownloadRow is not a binary file. 102 // Returns true if a download represented by a DownloadRow is not a binary file.
101 bool IsNonBinaryDownload(const history::DownloadRow& row) { 103 bool IsNonBinaryDownload(const history::DownloadRow& row) {
102 return !download_protection_util::IsSupportedBinaryFile(row.target_path); 104 return !FileTypePolicies::GetInstance()->IsCheckedBinaryFile(
105 row.target_path);
103 } 106 }
104 107
105 // Returns true if a download represented by a DownloadDetails is binary file 108 // Returns true if a download represented by a DownloadDetails is binary file
106 // for the current OS. 109 // for the current OS.
107 bool IsBinaryDownload(const ClientIncidentReport_DownloadDetails& details) { 110 bool IsBinaryDownload(const ClientIncidentReport_DownloadDetails& details) {
108 // DownloadDetails are only generated for binary downloads. 111 // DownloadDetails are only generated for binary downloads.
109 return IsBinaryDownloadForCurrentOS(details.download().download_type()); 112 return IsBinaryDownloadForCurrentOS(details.download().download_type());
110 } 113 }
111 114
112 // Returns true if a download represented by a DownloadRow has been opened. 115 // Returns true if a download represented by a DownloadRow has been opened.
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 if (download.opened) 209 if (download.opened)
207 details->set_open_time_msec(download.end_time.ToJavaTime()); 210 details->set_open_time_msec(download.end_time.ToJavaTime());
208 } 211 }
209 212
210 // Populates the |details| protobuf with information pertaining to the 213 // Populates the |details| protobuf with information pertaining to the
211 // (non-binary) |download|. 214 // (non-binary) |download|.
212 void PopulateNonBinaryDetailsFromRow( 215 void PopulateNonBinaryDetailsFromRow(
213 const history::DownloadRow& download, 216 const history::DownloadRow& download,
214 ClientIncidentReport_NonBinaryDownloadDetails* details) { 217 ClientIncidentReport_NonBinaryDownloadDetails* details) {
215 details->set_file_type( 218 details->set_file_type(
216 base::FilePath( 219 base::FilePath(FileTypePolicies::GetFileExtension(download.target_path))
217 download_protection_util::GetFileExtension(download.target_path))
218 .AsUTF8Unsafe()); 220 .AsUTF8Unsafe());
219 details->set_length(download.received_bytes); 221 details->set_length(download.received_bytes);
220 if (download.url_chain.back().has_host()) 222 if (download.url_chain.back().has_host())
221 details->set_host(download.url_chain.back().host()); 223 details->set_host(download.url_chain.back().host());
222 details->set_url_spec_sha256( 224 details->set_url_spec_sha256(
223 crypto::SHA256HashString(download.url_chain.back().spec())); 225 crypto::SHA256HashString(download.url_chain.back().spec()));
224 } 226 }
225 227
226 } // namespace 228 } // namespace
227 229
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 } 441 }
440 } 442 }
441 } 443 }
442 444
443 void LastDownloadFinder::HistoryServiceBeingDeleted( 445 void LastDownloadFinder::HistoryServiceBeingDeleted(
444 history::HistoryService* history_service) { 446 history::HistoryService* history_service) {
445 history_service_observer_.Remove(history_service); 447 history_service_observer_.Remove(history_service);
446 } 448 }
447 449
448 } // namespace safe_browsing 450 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/download_protection_service.cc ('k') | chrome/browser/safe_browsing/safe_browsing_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698