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

Side by Side Diff: chrome/common/safe_browsing/download_protection_util.cc

Issue 1827303002: Report and parse .img, .iso, and .smi as DMGs when downloading (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix namespacing Created 4 years, 9 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 (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/common/safe_browsing/download_protection_util.h" 5 #include "chrome/common/safe_browsing/download_protection_util.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 EXTENSION_XAR, 261 EXTENSION_XAR,
262 EXTENSION_XXE, 262 EXTENSION_XXE,
263 EXTENSION_ZIPX, 263 EXTENSION_ZIPX,
264 EXTENSION_ZPAQ, 264 EXTENSION_ZPAQ,
265 EXTENSION_RELS, 265 EXTENSION_RELS,
266 EXTENSION_MSG, 266 EXTENSION_MSG,
267 EXTENSION_EML, 267 EXTENSION_EML,
268 EXTENSION_RTF, 268 EXTENSION_RTF,
269 EXTENSION_VHDX, 269 EXTENSION_VHDX,
270 EXTENSION_SEARCH_MS, 270 EXTENSION_SEARCH_MS,
271 EXTENSION_IMG,
272 EXTENSION_SMI,
271 273
272 // New values go above this one. 274 // New values go above this one.
273 EXTENSION_MAX 275 EXTENSION_MAX
274 }; 276 };
275 277
276 struct SafeBrowsingFiletype { 278 struct SafeBrowsingFiletype {
277 const base::FilePath::CharType* const extension; 279 const base::FilePath::CharType* const extension;
278 int uma_value; 280 int uma_value;
279 bool is_supported_binary; 281 bool is_supported_binary;
280 bool is_archive; 282 bool is_archive;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 {FILE_PATH_LITERAL(".fxp"), EXTENSION_FXP, true, false}, 334 {FILE_PATH_LITERAL(".fxp"), EXTENSION_FXP, true, false},
333 {FILE_PATH_LITERAL(".gadget"), EXTENSION_GADGET, true, false}, 335 {FILE_PATH_LITERAL(".gadget"), EXTENSION_GADGET, true, false},
334 {FILE_PATH_LITERAL(".grp"), EXTENSION_GRP, true, false}, 336 {FILE_PATH_LITERAL(".grp"), EXTENSION_GRP, true, false},
335 {FILE_PATH_LITERAL(".gz"), EXTENSION_GZ, true, true}, 337 {FILE_PATH_LITERAL(".gz"), EXTENSION_GZ, true, true},
336 {FILE_PATH_LITERAL(".gzip"), EXTENSION_GZIP, true, true}, 338 {FILE_PATH_LITERAL(".gzip"), EXTENSION_GZIP, true, true},
337 {FILE_PATH_LITERAL(".hfs"), EXTENSION_HFS, true, true}, 339 {FILE_PATH_LITERAL(".hfs"), EXTENSION_HFS, true, true},
338 {FILE_PATH_LITERAL(".hlp"), EXTENSION_HLP, true, false}, 340 {FILE_PATH_LITERAL(".hlp"), EXTENSION_HLP, true, false},
339 {FILE_PATH_LITERAL(".hqx"), EXTENSION_HQX, true, true}, 341 {FILE_PATH_LITERAL(".hqx"), EXTENSION_HQX, true, true},
340 {FILE_PATH_LITERAL(".hta"), EXTENSION_HTA, true, false}, 342 {FILE_PATH_LITERAL(".hta"), EXTENSION_HTA, true, false},
341 {FILE_PATH_LITERAL(".htt"), EXTENSION_HTT, true, false}, 343 {FILE_PATH_LITERAL(".htt"), EXTENSION_HTT, true, false},
344 {FILE_PATH_LITERAL(".img"), EXTENSION_IMG, true, false},
342 {FILE_PATH_LITERAL(".inf"), EXTENSION_INF, true, false}, 345 {FILE_PATH_LITERAL(".inf"), EXTENSION_INF, true, false},
343 {FILE_PATH_LITERAL(".ini"), EXTENSION_INI, true, false}, 346 {FILE_PATH_LITERAL(".ini"), EXTENSION_INI, true, false},
344 {FILE_PATH_LITERAL(".ins"), EXTENSION_INS, true, false}, 347 {FILE_PATH_LITERAL(".ins"), EXTENSION_INS, true, false},
345 {FILE_PATH_LITERAL(".inx"), EXTENSION_INX, false, false}, // UMA only. 348 {FILE_PATH_LITERAL(".inx"), EXTENSION_INX, false, false}, // UMA only.
346 {FILE_PATH_LITERAL(".ipa"), EXTENSION_IPA, false, false}, // UMA only. 349 {FILE_PATH_LITERAL(".ipa"), EXTENSION_IPA, false, false}, // UMA only.
347 {FILE_PATH_LITERAL(".iso"), EXTENSION_ISO, true, true}, 350 {FILE_PATH_LITERAL(".iso"), EXTENSION_ISO, true, true},
348 {FILE_PATH_LITERAL(".isp"), EXTENSION_ISP, true, false}, 351 {FILE_PATH_LITERAL(".isp"), EXTENSION_ISP, true, false},
349 {FILE_PATH_LITERAL(".isu"), EXTENSION_ISU, false, false}, // UMA only. 352 {FILE_PATH_LITERAL(".isu"), EXTENSION_ISU, false, false}, // UMA only.
350 {FILE_PATH_LITERAL(".jar"), EXTENSION_JAR, true, false}, 353 {FILE_PATH_LITERAL(".jar"), EXTENSION_JAR, true, false},
351 {FILE_PATH_LITERAL(".jnlp"), EXTENSION_JNLP, true, false}, 354 {FILE_PATH_LITERAL(".jnlp"), EXTENSION_JNLP, true, false},
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 {FILE_PATH_LITERAL(".rtf"), EXTENSION_RTF, false, false}, // UMA only. 470 {FILE_PATH_LITERAL(".rtf"), EXTENSION_RTF, false, false}, // UMA only.
468 {FILE_PATH_LITERAL(".scf"), EXTENSION_SCF, true, false}, 471 {FILE_PATH_LITERAL(".scf"), EXTENSION_SCF, true, false},
469 {FILE_PATH_LITERAL(".scr"), EXTENSION_SCR, true, false}, 472 {FILE_PATH_LITERAL(".scr"), EXTENSION_SCR, true, false},
470 {FILE_PATH_LITERAL(".sct"), EXTENSION_SCT, true, false}, 473 {FILE_PATH_LITERAL(".sct"), EXTENSION_SCT, true, false},
471 {FILE_PATH_LITERAL(".search-ms"), EXTENSION_SEARCH_MS, true, false}, 474 {FILE_PATH_LITERAL(".search-ms"), EXTENSION_SEARCH_MS, true, false},
472 {FILE_PATH_LITERAL(".sh"), EXTENSION_SH, true, false}, 475 {FILE_PATH_LITERAL(".sh"), EXTENSION_SH, true, false},
473 {FILE_PATH_LITERAL(".shar"), EXTENSION_SHAR, true, false}, 476 {FILE_PATH_LITERAL(".shar"), EXTENSION_SHAR, true, false},
474 {FILE_PATH_LITERAL(".shb"), EXTENSION_SHB, true, false}, 477 {FILE_PATH_LITERAL(".shb"), EXTENSION_SHB, true, false},
475 {FILE_PATH_LITERAL(".shs"), EXTENSION_SHS, true, false}, 478 {FILE_PATH_LITERAL(".shs"), EXTENSION_SHS, true, false},
476 {FILE_PATH_LITERAL(".slp"), EXTENSION_SLP, true, true}, 479 {FILE_PATH_LITERAL(".slp"), EXTENSION_SLP, true, true},
480 {FILE_PATH_LITERAL(".smi"), EXTENSION_SMI, true, false},
477 {FILE_PATH_LITERAL(".spl"), EXTENSION_SPL, true, false}, 481 {FILE_PATH_LITERAL(".spl"), EXTENSION_SPL, true, false},
478 {FILE_PATH_LITERAL(".squashfs"), EXTENSION_SQUASHFS, true, true}, 482 {FILE_PATH_LITERAL(".squashfs"), EXTENSION_SQUASHFS, true, true},
479 {FILE_PATH_LITERAL(".svg"), EXTENSION_SVG, true, false}, 483 {FILE_PATH_LITERAL(".svg"), EXTENSION_SVG, true, false},
480 {FILE_PATH_LITERAL(".swf"), EXTENSION_SWF, true, false}, 484 {FILE_PATH_LITERAL(".swf"), EXTENSION_SWF, true, false},
481 {FILE_PATH_LITERAL(".swm"), EXTENSION_SWM, true, true}, 485 {FILE_PATH_LITERAL(".swm"), EXTENSION_SWM, true, true},
482 {FILE_PATH_LITERAL(".sys"), EXTENSION_SYS, true, false}, 486 {FILE_PATH_LITERAL(".sys"), EXTENSION_SYS, true, false},
483 {FILE_PATH_LITERAL(".tar"), EXTENSION_TAR, true, true}, 487 {FILE_PATH_LITERAL(".tar"), EXTENSION_TAR, true, true},
484 {FILE_PATH_LITERAL(".taz"), EXTENSION_TAZ, true, true}, 488 {FILE_PATH_LITERAL(".taz"), EXTENSION_TAZ, true, true},
485 {FILE_PATH_LITERAL(".tbz"), EXTENSION_TBZ, true, true}, 489 {FILE_PATH_LITERAL(".tbz"), EXTENSION_TBZ, true, true},
486 {FILE_PATH_LITERAL(".tbz2"), EXTENSION_TBZ2, true, true}, 490 {FILE_PATH_LITERAL(".tbz2"), EXTENSION_TBZ2, true, true},
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 return ClientDownloadRequest::CHROME_EXTENSION; 589 return ClientDownloadRequest::CHROME_EXTENSION;
586 else if (file.MatchesExtension(FILE_PATH_LITERAL(".zip"))) 590 else if (file.MatchesExtension(FILE_PATH_LITERAL(".zip")))
587 // DownloadProtectionService doesn't send a ClientDownloadRequest for ZIP 591 // DownloadProtectionService doesn't send a ClientDownloadRequest for ZIP
588 // files unless they contain either executables or archives. The resulting 592 // files unless they contain either executables or archives. The resulting
589 // DownloadType is either ZIPPED_EXECUTABLE or ZIPPED_ARCHIVE respectively. 593 // DownloadType is either ZIPPED_EXECUTABLE or ZIPPED_ARCHIVE respectively.
590 // This function will return ZIPPED_EXECUTABLE for ZIP files as a 594 // This function will return ZIPPED_EXECUTABLE for ZIP files as a
591 // placeholder. The correct DownloadType will be determined based on the 595 // placeholder. The correct DownloadType will be determined based on the
592 // result of analyzing the ZIP file. 596 // result of analyzing the ZIP file.
593 return ClientDownloadRequest::ZIPPED_EXECUTABLE; 597 return ClientDownloadRequest::ZIPPED_EXECUTABLE;
594 else if (file.MatchesExtension(FILE_PATH_LITERAL(".dmg")) || 598 else if (file.MatchesExtension(FILE_PATH_LITERAL(".dmg")) ||
599 file.MatchesExtension(FILE_PATH_LITERAL(".img")) ||
600 file.MatchesExtension(FILE_PATH_LITERAL(".iso")) ||
595 file.MatchesExtension(FILE_PATH_LITERAL(".pkg")) || 601 file.MatchesExtension(FILE_PATH_LITERAL(".pkg")) ||
602 file.MatchesExtension(FILE_PATH_LITERAL(".smi")) ||
596 file.MatchesExtension(FILE_PATH_LITERAL(".osx")) || 603 file.MatchesExtension(FILE_PATH_LITERAL(".osx")) ||
597 file.MatchesExtension(FILE_PATH_LITERAL(".app"))) 604 file.MatchesExtension(FILE_PATH_LITERAL(".app")))
598 return ClientDownloadRequest::MAC_EXECUTABLE; 605 return ClientDownloadRequest::MAC_EXECUTABLE;
599 else if (IsArchiveFile(file)) 606 else if (IsArchiveFile(file))
600 return ClientDownloadRequest::ARCHIVE; 607 return ClientDownloadRequest::ARCHIVE;
601 return ClientDownloadRequest::WIN_EXECUTABLE; 608 return ClientDownloadRequest::WIN_EXECUTABLE;
602 } 609 }
603 610
604 int GetSBClientDownloadExtensionValueForUMA(const base::FilePath& file) { 611 int GetSBClientDownloadExtensionValueForUMA(const base::FilePath& file) {
605 return GetFileType(file).uma_value; 612 return GetFileType(file).uma_value;
606 } 613 }
607 614
608 } // namespace download_protection_util 615 } // namespace download_protection_util
609 } // namespace safe_browsing 616 } // namespace safe_browsing
OLDNEW
« no previous file with comments | « chrome/browser/safe_browsing/download_protection_service.cc ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698