Mozilla Labs’ latest creation, Jetpack, is a great way to extend Firefox. It currently has a poorly documented API that doesn’t mention all of the public methods and fields. Due to Mozilla Labs’ decision of not putting the API documentation on MDC or the MozillaWiki, I cannot update the documentation myself. Therefore, I will list all of Jetpack’s documented and undocumented features as of version 0.1.2 in this blog post.
(Not) Assigning Properties
You can’t do things like jetpack.tabs.focused.contentWindow.foo = "bar"
. I find this much too restrictive, as it hinders a developer’s ability to make an API for a webpage to communicate with a jetpack to do things that need more privileges. Ironically, it seems that jetpacks have full access to Firefox’s XPCOM (Components.*
, ect.) which means, with a little hacking, it may be possible to bypass this restriction. The follow code shows an example of getting an nsIAlertsService
and using it instead of jetpack.notifications.show
.
var body = "Some text", title = "Notification", icon = "http://code.eligrey.com/favicon.ico", classObj = Components.classes['@mozilla.org/alerts-service;1'], alertService = classObj.getService(Components.interfaces.nsIAlertsService); alertService.showAlertNotification(icon, title, body); |