Index: chrome/browser/download/download_extensions.cc |
diff --git a/chrome/browser/download/download_extensions.cc b/chrome/browser/download/download_extensions.cc |
index 8d1b1075dd9a2d2f6647af9cae03c848d7cb2a9d..d0d209b540d3855b5a4ec4032dd891bc77f54331 100644 |
--- a/chrome/browser/download/download_extensions.cc |
+++ b/chrome/browser/download/download_extensions.cc |
@@ -110,11 +110,35 @@ const struct FileType { |
// installation. |
{"crx", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- // Windows, all file categories. |
+ // Windows, all file categories. The list is in alphabetical order of |
+ // extensions. Exceptions are made for logical groupings of file types. |
+ // |
+ // Some file descriptions are based on |
+ // https://support.office.com/article/Blocked-attachments-in-Outlook-3811cddc-17c3-4279-a30c-060ba0207372 |
#if defined(OS_WIN) |
{"ad", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"ade", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"adp", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ |
+ // Microsoft Access related. |
+ {"ade", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Project extension |
+ {"adp", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Project. |
+ {"mad", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Module Shortcut. |
+ {"maf", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ {"mag", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Diagram Shortcut. |
+ {"mam", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Macro Shortcut. |
+ {"maq", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Query Shortcut. |
+ {"mar", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Report Shortcut. |
+ {"mas", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Stored Procedures. |
+ {"mat", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Table Shortcut. |
+ {"mav", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // View Shortcut. |
+ {"maw", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Data Access Page. |
+ {"mda", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Access Add-in. |
+ {"mdb", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Database. |
+ {"mde", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Database. |
+ {"mdt", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Add-in Data. |
+ {"mdw", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Workgroup Information. |
+ {"mdz", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, // Wizard Template. |
+ |
+ // Executable Application. |
{"app", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
// Microsoft ClickOnce depolyment manifest. By default, opens with |
@@ -156,6 +180,7 @@ const struct FileType { |
{"drv", DANGEROUS, DISALLOW_AUTO_OPEN}, |
{"exe", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ // Microsoft FoxPro Compiled Source. |
{"fxp", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
{"grp", DANGEROUS, ALLOW_AUTO_OPEN}, |
@@ -174,12 +199,19 @@ const struct FileType { |
// Generic configuration file. |
{"ini", DANGEROUS, ALLOW_AUTO_OPEN}, |
+ // Microsoft IIS Internet Communication Settings. |
{"ins", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ |
+ // Microsoft IIS Internet Service Provider Settings. |
{"isp", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
// JavaScript file. May open using Windows Script Host with user level |
// privileges. |
{"js", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ |
+ // JScript encoded script file. Usually produced by running Microsoft Script |
+ // Encoder over a .js file. |
+ // See https://msdn.microsoft.com/library/d14c8zsc.aspx |
{"jse", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
// Shortcuts. May open anything. |
@@ -188,30 +220,14 @@ const struct FileType { |
// .local files affect DLL search path for .exe file with same base name. |
{"local", DANGEROUS, ALLOW_AUTO_OPEN}, |
- {"mad", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"maf", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mag", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mam", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- |
// While being a generic name, having a .manifest file with the same |
// basename as .exe file (foo.exe + foo.exe.manifest) changes the dll search |
// order for the .exe file. Downloading this kind of file to the users' |
// download directory is almost always the wrong thing to do. |
{"manifest", DANGEROUS, ALLOW_AUTO_OPEN}, |
- {"maq", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mar", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mas", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mat", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ // Media Attachment Unit. |
{"mau", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mav", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"maw", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mda", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mdb", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mde", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mdt", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mdw", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mdz", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
// Multipart HTML. |
{"mht", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
@@ -223,18 +239,26 @@ const struct FileType { |
// Microsoft Management Console Snap-in. Contains executable code. |
{"msc", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
- {"msh", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"mshxml", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ // Microsoft Shell. |
+ {"msh", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ {"msh1", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ {"msh2", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ {"mshxml", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ {"msh1xml", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ {"msh2xml", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
- // Windows Installer |
+ // Windows Installer. |
{"msi", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
{"msp", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
{"mst", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
- // ActiveX Control |
- {"ocx", DANGEROUS, ALLOW_AUTO_OPEN}, |
+ // ActiveX Control. |
+ {"ocx", DANGEROUS, DISALLOW_AUTO_OPEN}, |
+ // Microsoft Office Profile Settings File. |
{"ops", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ |
+ // Microsoft Visual Test. |
{"pcd", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
// Program Information File. Originally intended to configure execution |
@@ -242,50 +266,78 @@ const struct FileType { |
// code. But Windows may execute a PIF file that is sniffed as a PE file. |
{"pif", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ // Developer Studio Build Log. |
{"plg", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ |
+ // Windows System File. |
{"prf", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ |
+ // Program File. |
{"prg", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ |
+ // Microsoft Exchange Address Book File. Microsoft Outlook Personal Folder |
+ // File. |
{"pst", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ // Microsoft Windows PowerShell. |
+ {"ps1", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ {"ps1xml", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ {"ps2", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ {"ps2xml", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ {"psc1", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ {"psc2", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ |
// Registry file. Opening may cause registry settings to change. Users still |
// need to click through a prompt. So we could consider relaxing the |
// DISALLOW_AUTO_OPEN restriction. |
{"reg", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ // Microsoft Windows Explorer Command. |
+ // See https://support.microsoft.com/kb/190355 for an example. |
{"scf", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- // These are also executables. |
+ // Microsoft Windows Screen Saver. |
{"scr", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
+ // Microsoft Windows Script Component. Microsoft FoxPro Screen. |
+ // A Script Component is a COM component created using script. |
+ // See https://msdn.microsoft.com/library/aa233148.aspx for an example. |
{"sct", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ |
+ // Microsoft Windows Shortcut into a document. |
+ // See https://support.microsoft.com/kb/212344 |
{"shb", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ |
+ // Shell Scrap Object File. |
{"shs", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
// System executable. Windows tries hard to prevent you from opening these |
// types of files. |
{"sys", DANGEROUS, DISALLOW_AUTO_OPEN}, |
- // Internet Shortcut. See description for .website below. |
+ // Internet Shortcut (new since IE9). Both .url and .website are .ini files |
+ // that describe a shortcut that points to a URL. They can point at |
+ // anything. Dropping a download of this type and opening it automatically |
+ // can in effect sidestep origin restrictions etc. |
{"url", DANGEROUS, DISALLOW_AUTO_OPEN}, |
- |
- {"vb", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ {"website", DANGEROUS, DISALLOW_AUTO_OPEN}, |
// VBScript files. My open with Windows Script Host and execute with user |
// privileges. |
+ {"vb", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
{"vbe", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
{"vbs", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
{"vsd", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ |
+ // Microsoft Visual Studio Binary-based Macro Project. |
{"vsmacros", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
+ |
{"vss", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
{"vst", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- {"vsw", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
- // Internet Shortcut (new since IE9). Both .url and .website are .ini files |
- // that describe a shortcut that points to a URL. They can point at |
- // anything. Dropping a download of this type and opening it automatically |
- // can in effect sidestep origin restrictions etc. |
- {"website", DANGEROUS, DISALLOW_AUTO_OPEN}, |
+ // Microsoft Visio Workspace. |
+ {"vsw", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
// Windows Script Host related. |
{"ws", ALLOW_ON_USER_GESTURE, DISALLOW_AUTO_OPEN}, |
@@ -295,6 +347,9 @@ const struct FileType { |
// XAML Browser Application. |
{"xbap", DANGEROUS, DISALLOW_AUTO_OPEN}, |
+ |
+ // Microsoft Exchange Public Folder Shortcut. |
+ {"xnk", ALLOW_ON_USER_GESTURE, ALLOW_AUTO_OPEN}, |
#endif // OS_WIN |
// Java. |