22 Jan 2004 noda   » (Journeyer)

I caught a nasty fit of coding recently. It made me write a sweet "Error Viewer" extension for the Epiphany Web Browser. It's very loosely based on Galeon's Javascript Console code, but the cruft and memory leaks are gone and have been replaced by good looks and HIG-ness! (At least, as close as I can manage to HIG-ness....)

The weirdest thing: I don't know if I'll ever actually *use* the extension. I only wrote it to check out Mozilla interaction from within an extension. It works great: the extension even registers a nsIConsoleListener, before Epiphany itself begins any Mozilla interaction.

I only had to submit one tiny patch to Epiphany to let it load .glade files from outside the Epiphany share directory. Oh yeah, this is the first extension to use Glade, too -- any extra dialogs, for that matter.

Eventually, this will be merged into a "Web Development" extension I (or someone else?) will code. It'll have CSS editing, maybe inline HTML editing... tons of great stuff. It might end up evolving into a sort of IDE, with Epiphany's rendering pane becoming split and a bonobo-vim (okay, fine, GtkSourceView) component at the bottom using GnomeVFS to save files if it's a file:/// url.

All in all, the extension is great. I managed to keep code clean (except one stupid hack I'm too lazy to fix) and the extension demonstrates all sorts of things Epiphany extensions can do.

Epiphany is great.

Oh, and thanks to marco for finding the answers to all my questions in under 5 seconds. Marco is a programming God.

Not to mention, thanks to chpe for setting up the Mozilla build framework -- it almost worked, too! :)

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!