Note:
This page is kept for historical purposes only. Next releases and docs will be available at the blog. All releases were deleted for security issues. Those versions may allow malicious code from an extension to be run in the provileged chrome context without user permission.









Firefoxit: Firefox Widgets


Screenshots

 

 


Visit the Firefoxit Blog

Firefoxit is a Firefox extension that puts tiny little widgets or web applications on a kind of desktop launched from Firefox. Firefoxit has been tested on Windows XP (Firefox, Flock), 2000, NT, 98, Linux and Mac OSx86, for Firefox versions from 1.0 to 1.5.

Widgets can be loaded from any website. They are named with a .fire extension. Just clicking them on Firefox will detect them and load them. Try it after you install the extension with the Gmail widget:

Sometimes apps just don't look cool occupying an entire webpage. Firefoxit widgets are intended to be anything from a weather widget to a notepad or a spreadsheet. Beta 0.1 is an early version and might have bugs. Check it out and start creating your own .fire.

Note that Firefoxit only takes about 400 to 600 Kb of RAM for each widget. It doesn't add extra processes like Dashboard or Konfabulator

Subscribe to the firefoxit mailing list here.

(Update Jan-06-05 11:08: Firefoxit 0.1.3 released under LGPL, New Blog)

(Update Oct-25-05 11:39: Educate Me Campaign)

(Update Nov-12-05 16:45: 0.1.2 Released, fixes RC1, RC2, Flock, Beta 1,2 and Deerpark problem detecting .fires, release notes)

(Update Nov-05-05 13:53: Some people has reported problems with RC1, Flock, Beta 1,2 and Deerpark .fire's are not detected. Will fix it soon FIXED on 0.1.2, whish list added)

(Update Oct-22-05 17:51: Drag and drop fails on Firefox 1.5 Beta, will be fixed soon, half fixed on 0.1.1 see release notes)

(TODO: Bug reports, comments, etc. should go here)

Widgets Feed

I've found this distributed way to publish .fires: add your .fire URI or your website's containing the .fire to del.icio.us with the tag firefoxit-widget. Add some description too. For possible 'spam' reasons I'll be copying to the del.icio.us/firefoxit feed the good .fires I found until popularity can do the job.

The links:

http://del.icio.us/firefoxit/firefoxit-widget 

http://del.icio.us/tag/firefoxit-widget

(TODO: Here should go the embedded RSS feed)

(Section added Oct-26-05 11:39)

The whole idea

Firefox and the whole concept of widgets and web apps is part of the future of desktop computing. Firefox is a kind of OS. Firefoxit could be like part of the shell. Online services and a horde of local webservices could act as the backend. An interface that's available from many OS and any place.

.fire's are written in HTML and Javascript like any web page, then .zipped just renamed. One loaded they get full AJAX power with an all mighty XMLHttpRequest. As a developer you'll have full Javascript access to the machine though the XPCOM JS API.

How it works

Firefoxit is based on some XUL hacks (<window>, <browser>, <bulletinboard>), Javascript code and some magic. The Windows version brings a few native code to make things faster. Firefoxit is released under the LGPL License. I'm trying to understand which license (MIT, GNU or Mozilla) to choose, at the moment you just check the code on the extensions dir of your profile if you want.

Firefoxit is based on Javascript, XUL, HTML, AJAX, Internet and computers (doh). 

Making .fire's

A .fire is just a zip file with at least an index.html and a front.png. Optionally you can have an icon.png (16x16). When .fires are installed they become full chrome:// content so you have access to the Firefox Javascript API, just like an extension. Here is the hello world:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body style="background-image: url(front.png);">
<div style="font-family: Verdana,Arial,Sans-serif;" font-weight: normal;
margin-left: 15px; width: 50px; margin-top: 15px; height: 30px;">
Hello World!
</div>
</body>
</html>

Save it as index.html an grab this image.

Put the two files in a zip (don't use any folder inside) an then rename the zip to hello.fire

If you wish you can add a 16x16 icon named icon.png

Upload your file to your favorite server and create a link on your web page (should be on a link, don't load it from an "Index of" webpage). Clicking it should open Firefoxit with a new widget that looks like this:


Get the source for the example here. A faster way to test and debug .fire's, is:

  1. Install Firefoxit, restart Firefox and run Firefoxit.
  2. Close Firefoxit.
  3. Go to your Firefox profile (For example in Windows C:\Documents and Settings\Administrator\Application Data\Mozilla\Firefox\Profiles\v3nvrm7l.default).
  4. Open firefoxitreg.txt.
  5. Add this line at the very end: chrome://firefoxit/content/fire/hello/,hello  
  6. Save firefoxitreg.txt and close it.
  7. Inside your profile folder go to extensions\{884ad588-aeb3-11d9-945f-00e08161165f}\chrome\firefoxit\content\fire\
  8. Create a folder named hello and put index.html and front.png inside.
  9. Reopen Firefoxit, you should see a new white icon on the right of the main bar. Click it.


A more advanced example

Download the code for the Gmail .fire here. It shows XMLHttprequest and changing the background image.

Some tips


- Always use target="_blank" for links or pages will be opened inside the fire.

- You can use Firefoxit as a fast way of making a Firefox extension with UI (if you are not using overlays or chrome). 

- Consider saving settings online.

- Make sure you leave enough space in your front.png image borders. A scroll line might appear.

- Use "position: absolute;" on the style of  <div>'s so you can arrange things easily.

- Use free tools like Nvu for html, the GIMP for graphics and tango-project.org for icons (Although simple editors like MS Paint and MS Photo Editor are enough).

- Try not to use shadows or transparency yet. I am having some problems with them. Firefox 1.5 was intended to have transparent windows but they still don't support <browser> or <iframe>. Shadows work on Mac and Linux, but they are currently disabled on Firefox 1.0X for Windows. Use shadows if you want.

- Make your .fire as small as possible. 100k or 200k it's ok.

- As you can see there aren't many widgets yet. So everything is being tested. If you develop something, post it.

(TODO: complete this guide)

F.A.Q.

How much of my precious RAM will it take?

It doesn't add much memory usage to Firefox- Yeah I know Firefox sometimes eats a lot of memory but Firefoxit is benefited from that, as Firefox already has what it needs. .fire's aren't independent processes, neither Firefoxit. I did a test on Windows, and found each fire will add like 400 to 600 KB per each .fire loaded.

Firefox With 1 tab opened: 25.100 KB
Plus firefoxit with 17 fires: 31.876 KB
Aprox 394 KB per .fire

Firefox With 13 tabs opened: 77.960 KB
Plus firefoxit with 17 fires: 88.584 KB
Aprox 588 KB per .fire

Some times a scroll bar appears on the left/bottom of my widget, why?

Sometimes happens, specially on Linux. Try using a smaller <div> (reduce the width and height). Also try increasing the width of the transparent area of front.png

How do you close a widget once it's open?

Drag the widget to the bottom of the screen (the gray bar). I like to imagine my screen has like a pocket in the bottom corner, so I remember. 

Should Firefox be running to use Firefoxit?

Yes. Well, technically. I'll try to make it work from the command line and systray. 

Are these poor guy widgets?

Yes. But think also on the webapps (although there is not any practical difference). The truth is that I had this in mind since 2003 and started developing seriously since the beginning of this year. I almost stopped it when I knew about Dashboard and that Konfabulator had been bought by yahoo and became freely available, but I then said come on I can improve some stuff, and can steal some ideas too, and is based on Firefox, so...

What's with that name? It totally sucks

Firefoxit means small firefox, it had had many names before (Project31, Firetoro, Firefoxet, That_project_in_wich_i_spend_my_horrible_weekends, etc.) but I stick with Firefoxit. If someone from Mozilla complains because it sounds like Firefox I'll change it.

Is this secure?

A .fire has the same rights than an extension on firefox. Like downloading new apps or extensions, only download them from places you trust. I don't know if it opens holes on your browser yet. I hope the nice hackers will tell us if there is some hole on it.

Who are you and what the hell you want?

I like Firefox and designing UIs. I hope some day some college will accept me in their media or HCI dept. to do a master on the subject making this. Either that or be hired by Google.

Wish list

Suggestions will go here:

-Make firefoxit run on a tab.
-Get RC1 working

Yet to be done

- Show the names of fires on the bar.

- Removing fires from the bar.

- RSS and del.icio.us integration and so you can have them wherever you go.

- Improving graphics and supporting shadows, (probably use new XUL windows shadows capability which still doesn't support <browser> objects but I hope it will in the future).

- Improve usability.

- Having Firefoxit on the Systray on Windows.

- Plugins, plugin api and .fire's classes.

- Online widgets.

- Better registry of .fires.

- Demos of the new <canvas> tag in Firefox.

(Future releases may or may not include)

- Local access to system through a local webserver.

- Not needing a Firefox extension.

Thanks to

Thanks to all the Firefox comunity and specially the forums.
The guys from Xul Planet and Mozdev.
Greasemonkey, Mozex, the developer of nsExtensionManager,
Konfabulator and Dashoboard and you for reading up to here, amazing.

History

January 6 2006, Firefoxit 0.1.3 Beta released

Release Notes:

-LGPL License

November 12 2005, Firefoxit 0.1.2 Beta released

Release Notes:

-Fixed detecting .fires for RC1, RC2, Flock, Beta 1,2 and Deerpark.
-Native component for RC1, RC2, Flock, Beta 1,2 and Deerpark. Graphics now faster on Windows.
-Now shows close button on Mac and Linux.

Firefoxit 0.1.2 for firefox 1.0 to 1.0.7

Firefoxit 0.1.2 for Firefox 1.5 Beta 1-2, RC1-RC2 and Flock


October 29 2005, Firefoxit 0.1.1 Beta released


Release Notes:

-Firefox 1.5b Drag and drop now works. (it is slow yet, need to update native code to make rendering faster. I currently have problems compiling the XPCOM for Gecko 1.8, anyone has experience with this?)

-Flock supported. Thanks to Dave 'antigenic'. The same 'slowness' problem than in 1.5b.

-Codename "Fix for Beta"

October 22 2005, Firefoxit 0.1 Beta released

Download

-Codename "Please make me work"


Powered by mozdev.org mozdev.org