You are currently viewing a snapshot of www.mozilla.org taken on April 21, 2008. Most of this content is highly out of date (some pages haven't been updated since the project began in 1998) and exists for historical purposes only. If there are any pages on this archive site that you think should be added back to www.mozilla.org, please file a bug.



Downloading Files

Ben Goodger (11/17/2003)

Status: PROVISIONAL (awaiting modification after review)

Problems

Some problems with the current download manager/progress dialog:

  1. Individual progress windows clutter workspace.
  2. Individual progress windows pop-up over browser, annoying. Default behaviour is to stick around after download is complete. (CONFIDENCE IN HANDLER)
  3. User is asked where to place files every time by default, even if they always download things to the same place.
  4. User is asked how files should be handled even for types where there's a sensible default action, such as opening MSWord Documents in Microsoft Word. This querying is typically done by a jarringly complex Unknown Content Type dialog (Figure 1 presents a stab at a simplification of the concept) that interferes with users' thought processes.
  5. Defining and customizing automatic handlers for particular content types is tricky in the Mozilla UI, not present at all in Firefox.
  6. List of files downloaded is kept until manually cleared, a privacy concern for some.
  7. Download manager in the sidebar does not fit with the model of the sidebar as a transient source for navigation or information. Keeping the panel open robs space from the browser window. At present, people seem to prefer progress dialogs to it, and it is not shown by default when a download is initiated. As a result, users may not even be aware that it is present, silently keeping track of everything they download (see privacy concern above). Since it is not shown by default, it may as well not be there, for the majority of users.

Solutions

Generally, solutions to these problems should involve understanding that:

  1. Popup windows are annoying, so do for browser chrome what popup blocking has done for web content.
  2. Remants of downloads (windows that stick around) are annoying to many, and clean up after ourselves when downloading is done by closing the download UI.
  3. It is best to identify common download scenarios (downloading of common types, such as .doc, .zip etc) and seek ways to streamline downloading and opening those files with fewer prompts and clicks.

Thus the goal of this document is to specify User Interface enhancements that solve the problems whilst addressing the concerns above, along with:

  1. Making the UI that is presented when Firefox encounters a file type it genuinely doesn't know about simpler, and making the mappings from that UI into the creation of automatic content type handlers more obvious.
  2. Making the UI that shows the list of automatic content type handlers easier to use, making automatic content type handlers easier to edit.
  3. Providing a set of options that manage the memory of the download manager, so that aging file data does not sit about.
  4. Making the download manager UI more consistent with the functionality it provides - a utility with a mid-long term presence that should minimize its impact on browser use during its operation.

Details

Entry Points and Paths

User Chooses Save Image/Page As...

  1. User is prompted for a location to save this file to. The last-saved-to folder and failing that the download folder is presented by default but the user is still asked every time since these type of items are typically kept separate from downloaded files.
  2. The file is downloaded to the location selected.
Notes
  1. Download Manager display preferences (per Figure 3 are observed for such downloads.

User Chooses Download Link to Disk via context menu on a link to a file.

  1. The action that occurs now is dependent on the download destination preferences specified in Download Options (Figure 3). If the user is using a download folder (they are, by default - Desktop), the file is downloaded to that location.

    If the user has selected to be asked every time (Figure 3), they are prompted for a save location.
Notes
  1. Download Manager display preferences (per Figure 3 are observed for such downloads.
  2. "Save Link As..." is renamed to "Download Link to Disk" to more correctly reflect the automation afforded by the download system defaults (autodownload to default folder, most often "Desktop"). "Link" handling is separated from handling of "Image"/"Page" above because files downloaded via "Save Link As..." are usually of more temporally limited interest (install packets, zip files, documents to be filed) than media (as in the "Image"/"Page" case) which tend to be filed into more permanent locations. Files downloaded via "Save Link to Disk..." also tend to be those that require some sort of immediate attention precisely because they are not displayed inline as Images/Pages are, so the default download to Desktop/Download Folder model works well to encourage action to review, file, install or delete the downloaded files.

User Clicks on a Link to a file of a type that Firefox cannot handle internally.

  1. Check (internally) for an existing handler for this file type. An existing handler is one of:
    1. handle file by using the system default handler for this type, e.g. MSWord for .doc
    2. handle file by using a custom handler specified by the user on a previous occasion
    3. download the file to disk
  2. If no existing handler is present, show the Unknown Content Type dialog (Figure 1) which makes the user select how to handle the file. Default state of the "Do this automatically" checkbox is "off" - the dialog box will be shown for each download of files of this type.
  3. The action that occurs now is a combination of feedback from (1) and (2) and the download destination preferences specified in Download Options (Figure 3). If the user is using a download folder (they are, by default - Desktop), the file is downloaded to that location and depending on the results of (1) and (2) the file is either opened with a handler or left alone (Save to Disk) case.

    If the user has selected to be asked every time (Figure 3), for the Save to Disk case they are prompted for a save location, otherwise the file is downloaded to a temporary location and viewed with the applicable handler.
Notes
  1. Download Manager display preferences (per Figure 3 are observed for such downloads.
  2. Firefox ships with a handler set ("mimeTypes.rdf") to automatically handle common file types (so that the user is never presented with a decision dialog for common types), e.g.:
    .docUse System Default (typically MSWord)
    .zipSave to Disk*
    * - Save to Disk or Use System Default??

Figures

Figure 1, Unknown Content Type dialog:
  +----------------------------------------------------+
  | Downloading foo.doc                                |
  +----------------------------------------------------+
  |                                                    |
  | You have chosen to download                        |
  |                                                    |
  | [@] foo.zip                                        |
  |                                                    |
  | from [ http://www.goaty.com/ ]                     |
  | which is: a Compressed (Zipped) Folder             |
  |                                                    |
  | What should Phoenix do with this file?             |
  |                                                    |
  | (*) Open with [ CompressedFolder :^]               |
  |                 WINZIP32.EXE                       |
  |                 Other...                           |
  | ( ) Save to Disk                                   |
  |     [ ] Do this automatically for files like this  |
  |         from now on.                               |
  |                                                    |
  | Settings can be changed in the Downloads section   |
  | of Tools, Options                                  |
  |                                                    |
  |                              ((  OK  )) ( Cancel ) |
  +----------------------------------------------------+
        
Figure 1b, Unknown Content Type dialog:
  +----------------------------------------------------+
  | Downloading foo.doc                                |
  +----------------------------------------------------+
  |                                                    |
  | You have chosen to download                        |
  |                                                    |
  | [@] foo.zip                                        |
  |                                                    |
  | from [ http://www.goaty.com/ ]                     |
  | which is: a Compressed (Zipped) Folder             |
  |                                                    |
  | What should Phoenix do with this file?             |
  |                                                    |
  | (*) Open with [ WINZIP32.exe      ] ( Choose ... ) |
  | ( ) Save to Disk                                   |
  |     [ ] Do this automatically for files like this  |
  |         from now on.                               |
  |                                                    |
  | Settings can be changed in the Downloads section   |
  | of Tools, Options                                  |
  |                                                    |
  |                              ((  OK  )) ( Cancel ) |
  +----------------------------------------------------+
        
Notes
  1. If there is no default handler, the menulist is replaced by a simple static field and a Choose button to configure custom handlers.
Figure 1c, Unknown Content Type dialog:
  +----------------------------------------------------+
  | Downloading foo.doc                                |
  +----------------------------------------------------+
  |                                                    |
  | You have chosen to download                        |
  |                                                    |
  | [@] foo.zip                                        |
  |                                                    |
  | from [ http://www.goaty.com/ ]                     |
  | which is: Possibly a Compressed (Zipped) Folder    |
  |                 +----------------------------------------------------+
  | What should Fir/| The site http://www.goaty.com/ told Firefox that   |
  |                /| this file was text/plain, but this appears to be   |
  | (*) Open with [/| incorrect, so Firefox guessed that this is a       |
  |                /| Compressed (Zipped) Folder.                        |
  |                /+----------------------------------------------------+
  | ( ) Save to Dis//////////////////////////////////////////////////////
  |     [ ] Do this automatically for files like this  |
  |         from now on.                               |
  |                                                    |
  | Settings can be changed in the Downloads section   |
  | of Tools, Options                                  |
  |                                                    |
  |                              ((  OK  )) ( Cancel ) |
  +----------------------------------------------------+
        
Notes
  1. If the type is sent incorrectly by the server, the assertion that a file is of a specific type is downgrated to a "possibility" and an infotip on the text describes the situation in more detail. (XXXben - this may be difficult to do if the dialog is invoked with the interpolated mime type, rather than the original.
Figure 2, Options:Privacy panel additions:
  |                                                             |
  | - Download Manager History                      ( Clear )   |
  |   The Download Manager keeps track of recently downloaded   |
  |   files.                                                    |
  |                                                             |
  |   Remove files from the download manager:                   |
  |       [ upon successful download :^ ]                       |
  |         when Phoenix exits                                  |
  |         manually                                            |
        
Figure 3, Options:Downloads panel:
   -- Download Folder --------------------------------------
   ( ) Ask me where to save every file
   (*) Save all files to this folder: 
        [ My Desktop               :^] ( Show Folder )
          My Downloads          
          Other...

   -- Download Manager -------------------------------------
   [x] Show download manager window when a download begins.
   [x] Close the download manager when downloads have 
       completed.

   -- File Types -------------------------------------------
   Automatically perform the associated action with each of 
   the following file types when done downloading:

   +--------------------------------------------------+
   | [@] Compressed (zipped) Folder    Save to Disk   |
   | [@] MSWord Document               Open with Word |
   |                                                  |
   |                                                  |
   |                                                  |
   +--------------------------------------------------+
     ( Change Action... )  ( Remove... )
        
Figure 4, Edit Action dialog:
  +------------------------------------------------+
  | When downloading files of type                 |
  |  [@] Compresser (zipped) Folder                |
  |                                                |
  | always:                                        |
  |  (*) Open in the Default application           |
  |        (CompressedFolder)                      |
  |  ( ) Open in this application:                 |
  |       [ C:\Program Files\WinZip\WinZip32.exe ] |
  |                              ( Change... )     |
  |  ( ) Save to Disk                              |
  |                                                |
  |                         ((  OK  )) ( Cancel )  |
  +------------------------------------------------+
        
Figure 5, Current Downloads window:
              Shows up in Taskbar:

      +------ Average of download percentages
      |
      |   +-- Number of files downloading
      |   |
   +--v---v--------------------------------------------+
   | 32% (5 files downloading...) - Download Manager   |
   +---------------------------------------------------+
   | [@] foo.zip                                       |
   |     [ |||||||          ] 42%                      |
   |       _Cancel_ _Pause_                            |
   |                                                   |
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        

Concerns

The following represent some concerns with Download Manager based downloading. All responses are based on the implementation specified here, not on actual present implementations.

"The Download Window popping up is annoying"
Individual Progress Windows popping up are also annoying. In fact, Download Manager improves the popup situation in two ways - if a Download Manager window is already open, it will not be focused when a new download begins, and you can optionally disable the Download Manager from showing at all.

"The Download Window doesn't go away when it's done"
Neither do Individual Progress Windows, by default. Download Manager as specified here closes when current downloads are completed. This behaviour is controllable via preference.

"The Download Manager Keeps Track of What I Download"
Just because you've been using Individual Progress Windows does not mean that the Download Manager wasn't silently tracking what you've been downloading anyway. The Download Manager as specified here introduces privacy controls to manage what information is kept.

"Individual Progress Windows show me the status of each individual download in the status bar"
Fair point, however with the advent WindowsXP most users may find their task bar buttons being grouped such that the status of each download isn't always immediately obvious. The Download Manager specified here takes up less space in the task bar (making grouping less likely to occur) and presents an average of completion metrics for all current downloads which can be useful in the average case (1-2 downloads at a time).

Assorted Notes

Dan raises good point - consider this scenario. Click link to foo.doc file. Current world - file saved to Local Settings\temp\~fosdff.doc. When you Ctrl+S to save it, you're saving to a wacky name in a wacky location. Instead, when you're using the default download location, download to temp, then when done, move to the default download location (Desktop\foo.doc) and then open that file. When you hit Ctrl+S, you have a meaningful file name in a meaningful location.

Dan also points out that it's not always obvious how to change MIME info stored. Some sort of way of invoking the "Change Action..." dialog from the dl mgr ("Change the way files of this type are handled..." (verbose attempt). Some other hook to lead to the pref panel. Too often settings made through these transient dialogs are not linked in user's mind to how to undo these changes in preferences.

Arguments regarding Save Image As... vs. Save Link As... could use refinement. A little weak currently.

Finally, perhaps a "Remove All" button in the preferences panel with explanatory text/confirmation, "This will reset download settings to default settings" or some such. Not sure. Maybe Ctrl+A,Remove is enough?