File types and download actions

From MozillaZine Knowledge Base
Jump to navigationJump to search

This article describes how Mozilla browsers handle downloads for different types of files and how you can change that behavior. It applies to Firefox, Mozilla Suite/SeaMonkey 1.x and SeaMonkey 2 (in Alpha testing at time of writing).

Opening dialog

When you click a link to download a file, the MIME type determines what action is taken. If you see an "Opening <filename>" dialog asking if you want to save the file or open it with a specified application, that normally means that no plugin is installed and enabled that can handle that MIME type and you have not previously selected a download action or helper application to always use for that type of file. Starting in Firefox 3 and SeaMonkey 2, the "Opening <filename>" dialog will also appear if you have selected "Always ask" as the action for the file's content type in your (Helper) Applications options/preferences (see below).

The "Open with" option may already show a default application for the file type. You can choose to open the file with that application, or you can choose or browse to a different application. In Firefox, you can use the drop-down menu and click "Other" (shown here) on Windows to open a file picker or, in Firefox 3, a "Choose Helper Application" dialog, as shown here.

If you check the option to "Always perform this action when handling files of this type" (Mozilla Suite/SeaMonkey) or "Do this automatically for files like this from now on" (Firefox), then an entry will appear for that type of file in the Download Actions or (Helper) Applications listing.

Unable to set an automatic action

In some cases, you may not be able to set an automatic download action. This can happen when a misconfigured web server assigns an incorrect MIME type such as "application/octet-stream" (shown above in SeaMonkey) or "text/plain". It also can happen if the server assigns "Content-Disposition: attachment" to the file download. [1] In such cases, the Opening dialog option to always perform the same action will either be "grayed-out", as shown here in SeaMonkey or, in Firefox, checking the "Do this automatically" option will not seem to have any effect and you will again be asked what to do when you next encounter that file type (see below for related bug reports). There is little you can do in such cases, because the problem is at the server end.

Resetting download actions

This applies to all versions of Firefox and Mozilla Suite/SeaMonkey

If problems arise or if you want to restore the default set of file download actions, do the following [2]:

  1. Type about:config into the address bar.
  2. Find the preference browser.download.pluginOverrideTypes and, if it is present, right-click on it and select reset.
  3. Find the preference plugin.disable_full_page_plugin_for_types and, if it is present, right-click on it and select reset.
  4. Exit the browser, then open the profile folder (the profile folder is hidden by default in Windows 2000/XP/Vista and Linux; read this if you need help finding it).
  5. Delete (or rename) the file mimeTypes.rdf. Caution: There is also a mimeTypes.rdf file in the program folder. Do not delete it by mistake.

Managing file types - Firefox 2

This will not affect media embedded in a web page - only links to the files themselves. Certain file extensions may include multiple entries, one for each MIME type associated with that type of file.

Changing download actions

Go to "Tools -> Options -> Content / File Types -> Manage...". The Download Actions window will open. (MIME types are not shown by default. Click the icon in the top right corner and select "MIME Type" to display them.)

Select a file type entry and click 'Change Action...'

  • If you want files of that type to open with the default application, select "Open them with the default application".
  • If you want a different application to handle that type, select "Open them with this application" and choose the application. Caution: Make sure that the application you choose can handle the file type. For example, to choose Windows Media Player, browse to the C:\Program Files\Windows Media Player folder in the "Select Helper Application" window and select "wmplayer.exe".
  • If you want the file to be saved instead of opened, select "Save them on my computer".
  • In some cases, the option "Use this Plugin" will be available. It is the default action if a plugin is found for the file type.

Adding a download action

MIME types that are not handled by plugins do not appear in the Download Actions listing unless you have previously encountered that type of file and checked the option in the "Opening" dialog box to "Do this automatically for files like this from now on", as described above. You cannot add new file types to the Download Actions listing in Firefox, as you can in Mozilla Suite/SeaMonkey 1.x. The MIME Edit extension provides the SeaMonkey 1.x "Helper Applications" interface, shown below, as a Firefox add-on.

Removing a download action

After a helper application or "save to disk" download action has been set, that action will be taken automatically for those types of files. To remove a download action, open the Download Actions dialog as described above, select the file type entry and click the "Remove action" button. The next time you encounter that type of file, an "Opening" dialog will appear, asking you to specify an application or save the file.

Removing a download action does not affect files that are handled by plugins. Firefox 2 will automatically use a plugin if it is available for the MIME type, as shown in the about:plugins list.

Managing file types - SeaMonkey 1.x

This applies to Mozilla Suite / SeaMonkey 1.x

Go to "Edit -> Preferences -> Navigator -> Helper Applications". The Helper Applications preferences panel will open. Mozilla Suite and SeaMonkey 1.x list file type entries by MIME type, not file extension.

Changing actions for file types

This will not affect media embedded in a web page - only links to the files themselves.

In the Helper Applications panel, the entries will be listed as MIME types. Select the entry for the file type you wish to change and click the 'Edit' button to change the action.

  • If you want files of that type to open with the default application, select "Open it using the default application"
  • If you want a different application to handle that type, select "Open it with" and use the "Choose..." button to locate the program executable.
  • If you want the file to be saved instead of opened, select "Save it to disk".

Note: Mozilla Suite and SeaMonkey 1.x do not list plugin actions in the Helper Applications listing. You cannot disable a plugin for file downloads here. You can check in "Help -> About Plug-ins" to see which MIME types are automatically handled by plugins.

Adding a file type

The Helper Applications preference panel (shown above) allows you to add new download actions for MIME types. Clicking the "New Type..." button opens a dialog where you can add the MIME type (e.g. application/msword) description (e.g. Word Document) and file extension (e.g. doc). You can set the new download action to either open with a specified helper application or save to disk.

The actions you add will not affect MIME types that are handled internally, which include certain MIME types such as image/jpeg or text/plain [3] and all MIME types that are handled by plugins [4]. Before adding a new action for such MIME types, a Warning dialog similar to the following will be displayed:

Removing a file type

After a helper application or "save to disk" action has been set, that action will be taken automatically for those types of files. To remove an action for a file type, open the Helper Applications preference panel as described above, select the file type entry and click the "Remove" button. The next time you encounter that type of file, an "Opening" dialog will appear, asking you to specify an application or save the file.

Removing a file type from the Helper Applications list does not affect files that are handled by plugins. Mozilla Suite/SeaMonkey 1.x will automatically use a plugin if it is available for the MIME type, as shown in the about:plugins list.

File handling in Firefox 3 and SeaMonkey 2

As in earlier versions, Firefox 3 and SeaMonkey 2 will use an installed and enabled plugin to open a downloaded file by default, based on its MIME type. (Starting in Firefox 3 and SeaMonkey 2, you are able to disable plugins within your browser, via "Tools -> Add-ons (Add-on Manager) -> Plugins". See Issues related to plugins for more information).

In Firefox 3 and in SeaMonkey 2, you can manage what actions are taken for file content types (MIME types) via the new Applications tab in Firefox 3, shown here, and in the redesigned Helper Applications panel in SeaMonkey 2, shown below. You can also set "Always ask" as an action for a listed content type (but note that the Opening dialog does not allow you to select a plugin action; read Opening files using plugins for more information). Web Feeds/Podcasts will also be listed as well as certain Internet protocols such as "mailto" or "rtsp".

The new (Helper) Applications interface does not include file extensions (such as .PDF) and MIME types are not included for all "Content Type" entries. You may need to depend on the icon or the content description to determine the type of file. Plugins are identified with "(in Firefox)" or "(in SeaMonkey)" after the handler name. Also, you cannot add or remove entries for new content types, as you were able to do in SeaMonkey 1.x. [5] [6]

Managing content types - Firefox 3

This section provides information on the use of the Applications tab found in

  • Tools-> Options [Windows]
  • Edit->Preferences [Linux]
  • Preferences [Mac]

for Firefox 3. The information applies generally although the pictures are what would appear on a Mac.

When Firefox 3 is first installed there are two possibilities. First is a clean install with no previous profile and the second is an install with a previous profile (likely from Firefox 2). In the first case the Applications tab will only contain a list of files handled by installed plug-ins plus a few other defaults such as mailto. In the case of a second install with an existing profile from Firefox 2, the Applications tab may contain file types added for Firefox 2 requiring external applications as show in the figure for PowerPoint.


A New File Type

As noted above for file types not already in the Applications tab, the first time you attempt to download a new file type the window at the right pops up. For this example a Rich Text Format or rtf file is used called test.rtf. At this point you can either elect to "Save File" (initial default) or "Open with". If you select "Open with", you can then navigate after clicking the "Choose..." button to select an application. Once you have made a selection, checking the box "Do this automatically for files like this from now on." will cause the file type and action to be displayed in the Applications tab as shown below (in this example the selected application is TextEdit).


Changing a File Type

If at some point you decide to change the default action, you can open the action drop down and select "Use other..." and navigate to select a different application. In the example below Microsoft Word was added. At this point you can elect to view the "Applications Details..." window below at right and remove TextEdit or leave both applications in the list.



Firefox Displays Wrong - Browser ABC Displays Correctly

One of the more common issues that arise in the Mozillazine Firefox Support Forum usually has subjects like:

  • Firefox is displaying code while Browser ABC displays correctly
  • Firefox not handling file correctly - asks to download

Most of the time these issues are traced to an incorrect MIME in the HTTP Response Header. Without getting overly technical it is instructive to provide a description of the cause of this.

Most people, read humans, that use computers are familiar with and understand the meaning of various file suffixes.

  • .doc is a Word file
  • .xls is an Excel file
  • .pdf is a Portable Document Format file
  • .jpg is an image file

They are predisposed to the idea that this is "how files are processed" by everything. In the case of files transferred from a web server to a browser, that is not correct. The Internet Engineering Task Force (IETF) in RFC2616 (Hypertext Transfer Protocol -- HTTP/1.1), Section 7.2.1 Type, states:

Any HTTP/1.1 message containing an entity-body SHOULD include a Content-Type header field defining the media type of that body. If and only if the media type is not given by a Content-Type field, the recipient MAY attempt to guess the media type via inspection of its content and/or the name extension(s) of the URI used to identify the resource.

In other words, how a file is processed by a browser is determined by the Content-Type field in the http Response Header; the file suffix should be ignored when there is a Content-Type field.

So, what is the problem? Web servers are complicated software packages. If one were to look at all the MIME type/subtype possibilities, there are more than 1,000. They run from the quite common (e.g., text/html) to the obscure (e.g., chemical/x-chemdraw or a ChemDraw file). Thus the probability of mis-configuring the MIME type/subtype data base used by the server is not zero. This non zero is further increased when amateur web site developers use a shared web site that charges $4.95 a month to host a site. There is virtually no support so the developer had better know what they're doing; which, is often not the case.

To illustrate the point consider two examples. Above the download action for a RTF file was to be opened with TextEdit. If the MIME type/subtype were specified correctly the following would be the result


This is a test of a Rich Text Format File also known as RTF.
This is a red test of a Rich Text Format File also known as RTF.


displayed using the TextEdit Application. On the other hand, if the MIME type/subtype were specified as text/plain, the result would be

{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf480
{\fonttbl\f0\fswiss\fcharset77 Helvetica;}
{\colortbl;\red255\green255\blue255;\red234\green23\blue23;}
\margl1440\margr1440\vieww9000\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural\pardirnatural

\f0\fs24 \cf0 This is a test of a Rich Text Format File also known as RTF.\
\
\cf2 This is a red test of a Rich Text Format File also known as RTF.\cf0 \
}

even if the file suffix were rtf.

In the case of a html file with the content-type improperly specified as text/plain you would see this with Firefox

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>Test Page</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="test0.css">
</HEAD>

rest of code

With other browsers, particularly older versions the page may render "correctly".

So what can you do? Usually you should try to inform the site's webmaster of the incorrect configuration.

Managing content types - SeaMonkey 2

Go to "Edit -> Preferences -> Browser -> Helper Applications". The new Helper Applications panel in SeaMonkey 2 will open. Here, you can change or remove download actions in the same way as explained above for Firefox 3.


See also

External links

Related bug reports

Please do not comment in bug reports unless you are helping to fix the bug. Also note that some of the bugs listed below are fixed and others may be marked "invalid" or "wontfix"; these are included for informational purposes only.