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

Unified Diff: chrome/browser/safe_browsing/download_protection_service.cc

Issue 1257233004: [SafeBrowsing] Consolidate extension lookup logic and extension lists. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@double-zip
Patch Set: Fix Windows unit test build. Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chrome/chrome_tests_unit.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/safe_browsing/download_protection_service.cc
diff --git a/chrome/browser/safe_browsing/download_protection_service.cc b/chrome/browser/safe_browsing/download_protection_service.cc
index d4f290d8a984ba4cb0de668b2c1900a4893cfae0..3624fa693cb318bca148a9d202a4f5ee06e6f656 100644
--- a/chrome/browser/safe_browsing/download_protection_service.cc
+++ b/chrome/browser/safe_browsing/download_protection_service.cc
@@ -63,110 +63,20 @@ const char DownloadProtectionService::kDownloadRequestUrl[] =
"https://sb-ssl.google.com/safebrowsing/clientreport/download";
namespace {
-// List of extensions for which we track some UMA stats. The position of the
-// extension in kDangerousFileTypes is considered to be the UMA enumeration
-// value. Naturally, new values should only be added at the end.
-const base::FilePath::CharType* const kDangerousFileTypes[] = {
- FILE_PATH_LITERAL(".exe"),
- FILE_PATH_LITERAL(".msi"),
- FILE_PATH_LITERAL(".cab"),
- FILE_PATH_LITERAL(".sys"),
- FILE_PATH_LITERAL(".scr"),
- FILE_PATH_LITERAL(".drv"),
- FILE_PATH_LITERAL(".bat"),
- FILE_PATH_LITERAL(".zip"),
- FILE_PATH_LITERAL(".rar"),
- FILE_PATH_LITERAL(".dll"),
- FILE_PATH_LITERAL(".pif"),
- FILE_PATH_LITERAL(".com"),
- FILE_PATH_LITERAL(".jar"),
- FILE_PATH_LITERAL(".class"),
- FILE_PATH_LITERAL(".pdf"),
- FILE_PATH_LITERAL(".vb"),
- FILE_PATH_LITERAL(".reg"),
- FILE_PATH_LITERAL(".grp"),
- nullptr, // The "Other" bucket. This is in the middle of the array due to
- // historical reasons.
- FILE_PATH_LITERAL(".crx"),
- FILE_PATH_LITERAL(".apk"),
- FILE_PATH_LITERAL(".dmg"),
- FILE_PATH_LITERAL(".pkg"),
- FILE_PATH_LITERAL(".torrent"),
- FILE_PATH_LITERAL(".website"),
- FILE_PATH_LITERAL(".url"),
- FILE_PATH_LITERAL(".vbe"),
- FILE_PATH_LITERAL(".vbs"),
- FILE_PATH_LITERAL(".js"),
- FILE_PATH_LITERAL(".jse"),
- FILE_PATH_LITERAL(".mht"),
- FILE_PATH_LITERAL(".mhtml"),
- FILE_PATH_LITERAL(".msc"),
- FILE_PATH_LITERAL(".msp"),
- FILE_PATH_LITERAL(".mst"),
- FILE_PATH_LITERAL(".bas"),
- FILE_PATH_LITERAL(".hta"),
- FILE_PATH_LITERAL(".msh"),
- FILE_PATH_LITERAL(".msh1"),
- FILE_PATH_LITERAL(".msh1xml"),
- FILE_PATH_LITERAL(".msh2"),
- FILE_PATH_LITERAL(".msh2xml"),
- FILE_PATH_LITERAL(".mshxml"),
- FILE_PATH_LITERAL(".ps1"),
- FILE_PATH_LITERAL(".ps1xml"),
- FILE_PATH_LITERAL(".ps2"),
- FILE_PATH_LITERAL(".ps2xml"),
- FILE_PATH_LITERAL(".psc1"),
- FILE_PATH_LITERAL(".psc2"),
- FILE_PATH_LITERAL(".scf"),
- FILE_PATH_LITERAL(".sct"),
- FILE_PATH_LITERAL(".wsf"),
- FILE_PATH_LITERAL(".7z"),
- FILE_PATH_LITERAL(".xz"),
- FILE_PATH_LITERAL(".gz"),
- FILE_PATH_LITERAL(".tgz"),
- FILE_PATH_LITERAL(".bz2"),
- FILE_PATH_LITERAL(".tar"),
- FILE_PATH_LITERAL(".arj"),
- FILE_PATH_LITERAL(".lzh"),
- FILE_PATH_LITERAL(".lha"),
- FILE_PATH_LITERAL(".wim"),
- FILE_PATH_LITERAL(".z"),
- FILE_PATH_LITERAL(".lzma"),
- FILE_PATH_LITERAL(".cpio"),
-};
-
-// UMA enumeration value for unrecognized file types. This is the array index of
-// the "Other" bucket in kDangerousFileTypes.
-const int EXTENSION_OTHER = 18;
-
-// Maximum extension ID returned by GetExtensionTypeForUMA() + 1.
-const int EXTENSION_MAX = arraysize(kDangerousFileTypes);
-
-int GetExtensionTypeForUMA(const base::FilePath::StringType& extension) {
- DCHECK_EQ(static_cast<base::FilePath::CharType*>(nullptr),
- kDangerousFileTypes[EXTENSION_OTHER]);
- DCHECK(extension.find(base::FilePath::kExtensionSeparator) == 0 ||
- extension.empty());
- DCHECK_EQ(extension, base::FilePath(extension).FinalExtension());
-
- for (const auto& dangerous_extension : kDangerousFileTypes) {
- if (dangerous_extension &&
- base::FilePath::CompareEqualIgnoreCase(dangerous_extension, extension))
- return &dangerous_extension - kDangerousFileTypes;
- }
- return EXTENSION_OTHER;
-}
-
void RecordFileExtensionType(const base::FilePath& file) {
- UMA_HISTOGRAM_ENUMERATION("SBClientDownload.DownloadExtensions",
- GetExtensionTypeForUMA(file.FinalExtension()),
- EXTENSION_MAX);
+ UMA_HISTOGRAM_ENUMERATION(
+ "SBClientDownload.DownloadExtensions",
+ download_protection_util::GetSBClientDownloadExtensionValueForUMA(file),
+ download_protection_util::kSBClientDownloadExtensionsMax);
}
void RecordArchivedArchiveFileExtensionType(
const base::FilePath::StringType& extension) {
- UMA_HISTOGRAM_ENUMERATION("SBClientDownload.ArchivedArchiveExtensions",
- GetExtensionTypeForUMA(extension), EXTENSION_MAX);
+ UMA_HISTOGRAM_ENUMERATION(
+ "SBClientDownload.ArchivedArchiveExtensions",
+ download_protection_util::GetSBClientDownloadExtensionValueForUMA(
+ base::FilePath(extension)),
+ download_protection_util::kSBClientDownloadExtensionsMax);
}
// Enumerate for histogramming purposes.
« no previous file with comments | « no previous file | chrome/chrome_tests_unit.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698