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(); |