<< Zarro Leaks found. | The roads I take... | Weekly Status Report, W51/2008 >>

Firefox Extension Work For SeaMonkey-specific Code?

It sounds strange, but today I worked on a Firefox (or actually Minefield) extension because I wanted to write SeaMonkey-specific code!

As SeaMonkey 2 will be switching to the toolkit download manager backend but wants to keep its own, much different, UI for the download manager, there needs to be quite some work done. Justin Wood ("Callek") has been doing a large part of that, making SeaMonkey able to build with the toolkit download manager, and trying to get the option for having progress dialogs instead of the manager window working with that new backend.

One thing Callek left out for now is getting a tree-based download manager UI for the new backend though, as he (just like me) doesn't have too much experience with custom tree views. After working on places history, I got a first piece of insight into that area though, and so I figured I could at least try how far I could get with such a download manager window.

The problem I had though is that SeaMonkey still has the xpfe backend, and my code needs to work with the new toolkit one. After thinking about this for a while, I realized that it should be possible to just write some code to replace the Firefox download manager with what we want and move it "back" to SeaMonkey once we have the patches for the new backend.

This is what I could get in a few hours of work:

Image No. 20704

Using nsIDownloadManagerUI, this completely replaces the toolkit download manager even though it's an in-profile extension. Note that it shows grippies as I just symlinked comm.jar etc. from SeaMonkey into my extension and made it define the "communicator" chrome package - I'm not targeting Firefox but SeaMonkey in the end.

The screen shot probably also looks better than reality, the current state doesn't show all info correctly yet or update active downloads, or even do fancy stuff like sorting, searching or managing the downloads yet.

What it does is loads a basic list of downloads at the time the dialog is opened, and show some raw info about it in the cells, without nice formatting.

It's a somewhat interesting way to work on (to-be) SeaMonkey-specific code as a Firefox extension, but I hope it'll help to achieve getting the UI and backend we want in a similar timeframe for SeaMonkey 2.

Entry written by KaiRo and posted on December 22nd, 2008 02:54 | Tags: download manager, Firefox, Mozilla, SeaMonkey, SeaMonkey 2 | 4 comments

TrackBack/Pingback

  • Home of KaiRo: Weekly Status Report, W51/2008 (Pingback)
  • Home of KaiRo: More On The New Download Manager (Pingback)
  • Comments

    AuthorEntry

    Shawn Wilsher

    from California, USA

    quote
    That's what it's meant for
    That's exactly why I added that interface - to allow add-on authors the ability to easily dump in their own UI!
    2008-12-22 04:50

    KaiRo

    Webmaster

    quote
    BTW, for anyone interested, as long as I'll be doing this experiment, I'll put the source up on http://hg.mozilla.org/users/kairo_kairo.at/suite-dlmgr-ui/ (this repo is mainly for personally having a server-side backup of it, but any help on the work is appreciated!)
    2008-12-22 22:36

    IGR

    from USA

    quote
    Good work
    Will this new Download Manager fix bug 207448 (and related)?
    2008-12-23 19:55

    KaiRo

    Webmaster

    quote
    IGR:
    As we will be rewriting the whole download manager UI, it could be fixed in the first round or not, I can't really tell. At least we probably will have code that will be easier to fix for that and better to maintain. Let's see what comes out of all this, it's still very experimental...
    2008-12-29 15:13

    Add comment