Index: chrome/common/safe_browsing/download_protection_util.cc |
diff --git a/chrome/common/safe_browsing/download_protection_util.cc b/chrome/common/safe_browsing/download_protection_util.cc |
index ee09cd1e1fe28982e58a8a4778923b48729df34e..a5a4befa3696ddcb9c723f5d9d97621a6a6cf14f 100644 |
--- a/chrome/common/safe_browsing/download_protection_util.cc |
+++ b/chrome/common/safe_browsing/download_protection_util.cc |
@@ -11,6 +11,7 @@ namespace safe_browsing { |
namespace download_protection_util { |
bool IsArchiveFile(const base::FilePath& file) { |
+ // TODO(mattm): should .dmg be checked here instead of IsBinaryFile? |
return file.MatchesExtension(FILE_PATH_LITERAL(".zip")); |
} |
@@ -33,6 +34,11 @@ bool IsBinaryFile(const base::FilePath& file) { |
// Chrome extensions and android APKs are also reported. |
file.MatchesExtension(FILE_PATH_LITERAL(".crx")) || |
file.MatchesExtension(FILE_PATH_LITERAL(".apk")) || |
+ // Mac extensions. |
+ file.MatchesExtension(FILE_PATH_LITERAL(".dmg")) || |
+ file.MatchesExtension(FILE_PATH_LITERAL(".pkg")) || |
+ file.MatchesExtension(FILE_PATH_LITERAL(".osx")) || |
+ file.MatchesExtension(FILE_PATH_LITERAL(".app")) || |
// Archives _may_ contain binaries, we'll check in ExtractFileFeatures. |
IsArchiveFile(file)); |
} |
@@ -48,6 +54,11 @@ ClientDownloadRequest::DownloadType GetDownloadType( |
// the pingback if we find an executable inside the zip archive. |
else if (file.MatchesExtension(FILE_PATH_LITERAL(".zip"))) |
return ClientDownloadRequest::ZIPPED_EXECUTABLE; |
+ else if (file.MatchesExtension(FILE_PATH_LITERAL(".dmg")) || |
+ file.MatchesExtension(FILE_PATH_LITERAL(".pkg")) || |
+ file.MatchesExtension(FILE_PATH_LITERAL(".osx")) || |
+ file.MatchesExtension(FILE_PATH_LITERAL(".app"))) |
+ return ClientDownloadRequest::MAC_EXECUTABLE; |
return ClientDownloadRequest::WIN_EXECUTABLE; |
} |