Status Update - January 18, 2011

Tuesday, January 18, 2011
Tags: Instantbird, IRC, Mozilla, programming

I haven’t had an update in a few weeks (since early December) actually, so I thought I would post a bit about what I’ve worked on. I’ve fixed a bunch of bugs in the backend of Instantbird that allow work on JavaScript IRC protocol to continue:

  • Bug 519 - Extend jsProtoHelper to implement purpleIConvChat (check-in)
  • Bug 495 - purpleIAccount cannot access preferences via JavaScript protocol (check-in)
  • Bug 648 -Provide a default JS implementation of purpleIChatRoomField (check-in)
  • [Reviewed] Bug 647 - Username split for JavaScript protocols (check-in)
  • [Reviewed] <no bug> -Share the nsIClassInfo implementation between all the objects implemented in jsProtoHelper (check-in)

Also a few other random bugs I’ve worked on:

Although none of these are really things that weren’t working a few weeks ago, there are now real APIs for these for JavaScript protocols, allowing other protocols to use them and to FULLY implement them instead of hard coding values. In addition, a lot of the purplexpcom layer is now hidden from JavaScript protocols.

There’s a few things left to do for the JavaScript protocol layer:

  • Bug 118 - Extensions should be able to register commands.
  • Bug 650 - JavaScript accounts must be notified of status changes (a sketchy patch that exists that will work, but a better patch to core should be done)
  • Bug 623 - Auto-Join option field is hard coded for certain protocols (not really necessary, since it’s still IRC, but it should be fixed)
  • Bug 649 - Proxy should be available to JavaScript protocols (hopefully being handled by Florian)

A good summary of this is the dependency graph of bug 507 (Implement IRC in JavaScript). Note that the IRC JavaScript work blocks a lot of UI work done for IRC. In particular Mook has been working on implementing notifications (i.e. Invites, and perhaps a few other commands), see Bug 628. For other bugs, see the link above — and if there’s a strange UI feature that you think should be added, please file a bug and let us know about it!

I’ve also worked a bit on sending outgoing text with rich formatting (bold, italics, underline, text size, etc.), this work is being tracked in Bug 634. There’s a proof on concept, but a lot of work needs to be done for it, but it’s sort of working right now.

As I alluded to in my last blog post, the JavaScript protocols would be used to implement Twitter. Work for this is occurring in Bug 598, where Florian has implemented (very) basic Twitter support.

My plans for the next bit:

  • I’m hoping to finish up some of the work blocking JavaScript protocols so IRC can be put into a state that needs alpha/beta testers (if you’re interested in testing/hacking please drop me a line here, on IRC or via email).
  • Move into my new apartment
  • Start my new job
  • Work on richtext messages a bit more