Neue APIs für Mozillas JetPack: Tabs, Selection und Ajax
In Version 0.5 bekommt JetPack, mit dem Entwickler in Zukunft Plug-ins für Firefox und Thunderbird schreiben sollen, weitere Schnittstellen.
- Christian Kirsch
Knapp einen Monat nach JetPack 0.4 folgt bereits die nächste Version von Mozillas neuer Plug-in-Technik. Sie enthält unter anderem Schnittstellen für den Zugriff auf Browser-Tabs sowie die aktuelle Textauswahl und für die automatische Übersetzung von Zeichenketten.
Eins der Kernstücke der Version 0.5 dürfte die Request-API sein, die XMLHttpRequest
kapselt. Sie liefert an die mit der onComplete
-Eigenschaft registrierte Funktion entweder ein XML-Dokument oder ein JavaScript-Objekt zurück, wenn der jeweilige Parser eine für dieses Format korrekte Antwort erkennt. Anders als für klassische Ajax-Funktionen gilt für diese Request
-Objekte nicht die "Same-Origin"-Regel – man kann also beliebige URLs damit verwenden.
Die Tabs-API ermöglicht das Öffnen, Schließen und Verschieben von Tabs im Browser sowie das Reagieren auf Ereignisse wie onOpen
, onReady
und onActivate
. Properties stellen unter anderem den Titel, das Favicon oder die Vorschau der im Tab angezeigten Seite bereit. Im Selection-Modul finden sich Methoden für das Erfragen und Setzen der aktuellen Auswahl sowie eine onSelect
-Eigenschaft. Die in ihr gespeicherten Callbacks ruft Jetpack auf, wenn der Anwender einen Text ausgewählt hat.
Mit der Localization-API sollen Entwickler von Plug-ins eine bequeme Möglichkeit bekommen, ihre Erweiterung in der jeweiligen Sprache des Benutzers darzustellen. Ihre Verwendung ist jedoch bislang kaum dokumentiert. Aus dem JetPack-Quellcode lässt sich entnehmen, dass die übersetzten Strings von einem Server bei mozillalabs.com kommen sollen, der als Parameter in einem XMLHttpRequest
das aktuelle Locale und die ID des Plug-in übergeben bekommt. Das Framework speichert die Übersetzungen nach dem Herunterladen lokal.
JetPack steht als gepacktes Tar- und Zip-Archiv zur Verfügung. Zu seiner Benutzung ist Python 2.5 neben einem aktuellen Firefox-Browser erforderlich. (ck)