You are currently viewing a snapshot of 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, please file a bug.

Download Manager

- Basic Components:

Back End

1) Develop nsIDownloadManager interface with method to allow clients to initiate transfer of a remote item. ( 1d)
2) Implement a default transfer component which is used for most transfers. Lots of potential to reuse/unify existing download code in mozilla/embedding/. Create simple test cases for this functionality (4d)
(1) and (2) are designed and developed in such a way that the client can specify their own transfer component if they wish to handle the transfer in a special fashion.

3) Profile persistent datasource - information about files downloaded are saved in XML RDF form and saved in the user's profile directory. This item involves the creation of these files (default versions), a mechanism by which they are read in and merged with (4) - an in memory representation of current transfers. (3d)

4) In-Memory datasource that is used at run time to store new transfers and manipulate existing ones. This serves as an extension of (3). (4d)
Implementation of nsIDownloadManager occurs here, providing a function to create new entries in the datasource with specific details, with links to (2) when a custom transfer component is not supplied.

5) Mapping (2) to (4) - transfer updates on progress should cause notifications to update aspects of the datasource which will cause the UI to be updated. (5d)

Front End

1) Basic XUL setup (window, file creation, string table, UI creation) (2d)
2) Outliner view - creation of an rdfliner based on datasource described above (2d)
3) Delete, cut, copy, paste (5d)
4) Pause/Resume - rely on functionality exposed currently, UI hookup (1d)
5) Properties dialog showing details for item (name, location, % transfered, see Download Manager doc for details) (2d)
6) Show in Finder/Explorer - reuse existing functionality, UI hookup (1d)
7) Reload functionality - retransfer file command + button in properties dialog (2d)

Issues - Outliner does not support progressmeters inside cells. We could settle for showing textual progress only which is easiest and does not impact the above figures.  


1) Ability to launch 'standalone' with command line flag (1d)
2) Ability to launch 'standalone' with SmartUpdate/ command line flag, to allow to be loaded in a special mode that supports advertising (2d)