Chromium Code Reviews| 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 4773c8cbaa9d638cb71520af210ab788c1c6dc67..668293bdfae95136256c99d3c14259625e2b37c0 100644 |
| --- a/chrome/browser/safe_browsing/download_protection_service.cc |
| +++ b/chrome/browser/safe_browsing/download_protection_service.cc |
| @@ -90,37 +90,49 @@ enum MaliciousExtensionType { |
| EXTENSION_TORRENT, |
| EXTENSION_WEBSITE, |
| EXTENSION_URL, |
| + EXTENSION_VBE, |
| + EXTENSION_VBS, |
| + EXTENSION_JS, |
| + EXTENSION_JSE, |
| + EXTENSION_MHT, |
| + EXTENSION_MHTML, |
| EXTENSION_MAX, |
| }; |
| MaliciousExtensionType GetExtensionType(const base::FilePath& f) { |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".exe"))) return EXTENSION_EXE; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".msi"))) return EXTENSION_MSI; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".cab"))) return EXTENSION_CAB; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".sys"))) return EXTENSION_SYS; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".scr"))) return EXTENSION_SCR; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".drv"))) return EXTENSION_DRV; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".apk"))) return EXTENSION_APK; |
|
Alexei Svitkine (slow)
2015/07/08 14:56:08
Optional:
Would it make sense to just have a stat
|
| if (f.MatchesExtension(FILE_PATH_LITERAL(".bat"))) return EXTENSION_BAT; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".zip"))) return EXTENSION_ZIP; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".rar"))) return EXTENSION_RAR; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".dll"))) return EXTENSION_DLL; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".pif"))) return EXTENSION_PIF; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".com"))) return EXTENSION_COM; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".jar"))) return EXTENSION_JAR; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".cab"))) return EXTENSION_CAB; |
| if (f.MatchesExtension(FILE_PATH_LITERAL(".class"))) return EXTENSION_CLASS; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".pdf"))) return EXTENSION_PDF; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".vb"))) return EXTENSION_VB; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".reg"))) return EXTENSION_REG; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".grp"))) return EXTENSION_GRP; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".com"))) return EXTENSION_COM; |
| if (f.MatchesExtension(FILE_PATH_LITERAL(".crx"))) return EXTENSION_CRX; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".apk"))) return EXTENSION_APK; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".dll"))) return EXTENSION_DLL; |
| if (f.MatchesExtension(FILE_PATH_LITERAL(".dmg"))) return EXTENSION_DMG; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".drv"))) return EXTENSION_DRV; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".exe"))) return EXTENSION_EXE; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".grp"))) return EXTENSION_GRP; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".jar"))) return EXTENSION_JAR; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".js"))) return EXTENSION_JS; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".jse"))) return EXTENSION_JSE; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".mht"))) return EXTENSION_MHT; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".mhtml"))) return EXTENSION_MHTML; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".msi"))) return EXTENSION_MSI; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".pdf"))) return EXTENSION_PDF; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".pif"))) return EXTENSION_PIF; |
| if (f.MatchesExtension(FILE_PATH_LITERAL(".pkg"))) return EXTENSION_PKG; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".rar"))) return EXTENSION_RAR; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".reg"))) return EXTENSION_REG; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".scr"))) return EXTENSION_SCR; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".sys"))) return EXTENSION_SYS; |
| if (f.MatchesExtension(FILE_PATH_LITERAL(".torrent"))) |
| return EXTENSION_TORRENT; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".url"))) return EXTENSION_URL; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".vb"))) return EXTENSION_VB; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".vbe"))) return EXTENSION_VBE; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".vbs"))) return EXTENSION_VBS; |
| if (f.MatchesExtension(FILE_PATH_LITERAL(".website"))) |
| return EXTENSION_WEBSITE; |
| - if (f.MatchesExtension(FILE_PATH_LITERAL(".url"))) return EXTENSION_URL; |
| + if (f.MatchesExtension(FILE_PATH_LITERAL(".zip"))) return EXTENSION_ZIP; |
| return EXTENSION_OTHER; |
| } |
| @@ -627,6 +639,7 @@ class DownloadProtectionService::CheckClientDownloadRequest |
| } |
| const GURL& url = url_chain_.back(); |
| + // TODO(asanka): This may acquire a lock on the SB DB on the IO thread. |
| if (url.is_valid() && database_manager_->MatchDownloadWhitelistUrl(url)) { |
| DVLOG(2) << url << " is on the download whitelist."; |
| RecordCountOfSignedOrWhitelistedDownload(); |