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.
Other
1) Ability to launch 'standalone' with command line flag (1d)
2) Ability to launch 'standalone' with SmartUpdate/Netscape.com command
line flag, to allow to be loaded in a special mode that supports advertising
(2d)