Reisegepäck

Firefox-Erweiterungen selbst entwickeln

Praxis & Tipps | Praxis

Ein Quantum CSS, ein Stückchen DOM, eine Prise JavaScript – mit ein wenig Hirnschmalz entsteht so eine individuelle Firefox-Erweiterung, die den Surfer zukünftig bei seinen Internet-Touren begleitet.

Ein wesentliches Charakteristikum von Firefox ist seine Erweiterbarkeit. Der Benutzer kann das Aussehen des Browsers durch Skins abwandeln und ihn mit zusätzlichen Suchdiensten zur Recherchemaschine aufbohren. Das mächtigste Rüstzeug für Erweiterungen jedoch nennt sich XPI, kurz für „Cross-Platform Install“.

Damit kann man nicht nur das Aussehen des Browsers aufpeppen oder eine einzelne Funktion abwandeln, sondern neue, fast beliebig komplexe Erweiterungen schreiben. Auf addons.mozilla.org stehen bereits Tausende XPI-Zusätze für den Mozilla-Browser bereit, vom Newsreader Sage bis hin zum Web-Entwicklertool Firebug.

XPI-Erweiterungen existieren aber nicht nur für Firefox, sondern für alle Anwendungen, die auf der sogenannten XML User Interface Language, kurz XUL, aufbauen. Dazu gehören Thunderbird, SeaMonkey und weitere Mozilla-Projekte. Die Bedienoberflächen von XUL-Anwendungen bestehen aus CSS, JavaScript und DOM; ein Browser auf Basis der Gecko-Engine – derzeit die einzige Rendering Engine, die XUL vollständig implementiert, – interpretiert die Beschreibung der Bedienoberfläche zur Laufzeit und stellt sie dar. Mit dem Entwurf von XUL-Applikationen generell haben wir uns in [1] bereits einmal befasst. Dieser Artikel beschreibt anhand einer einfachen Erweiterung, einem Webschnipsel-Sammler, wie man eigene Firefox-Add-ons schreibt.

Vor dem Entwurf einer neuen Firefox-Erweiterung sollte der Entwickler zunächst seine Arbeitsumgebung vorbereiten. Dabei empfiehlt es sich, ein eigenes Firefox-Profil einzurichten. Damit kann er dann ohne Seiteneffekte von anderen Browsererweiterungen arbeiten und ohne die im normalen Browserprofil gespeicherten persönlichen Daten zu gefährden.

Der Befehl

<Firefox-Verzeichnis>\firefox.exe" --profilemanager 

öffnet den Profilmanager des Browsers, mit dem der Entwickler ein neues Profil anlegen kann. Anschließend startet er mit

<Firefox-Verzeichnis>\firefox.exe" -P <Name des Entwicklerprofils> -no-remote

neben einem bereits laufenden Firefox eine zweite Instanz mit dem neuen Profil.

Eine Reihe von Parametern helfen dem Entwickler bei der Fehlersuche. Sie lassen sich editieren, wenn man in der Adresszeile des Browsers about:config eingibt. Mit

javascript.options.showInConsole = true 

loggt Firefox Fehler in Chrome-Dateien in der Fehlerkonsole. Der Parameter

extensions.logging.enabled = true veranlasst den Browser, Probleme bei Installations- und Update-Prozessen in der Fehlerkonsole festzuhalten. Darüber hinaus verweist ein Tutorial in Mozillas Developer Center auf einige weitere Parameter, die aber für den Einstieg nicht wesentlich sind (siehe Soft-Link).

Speziell für die Belange von Erweiterungsentwicklern hat Ted Mielczarek eine Erweiterung zusammengestellt. Sie enthält unter anderem eine JavaScript-Laufzeitumgebung, um „mal eben schnell“ Skripte zu testen, Live-Editoren für HTML und XUL sowie Hilfsmittel, mit denen sich die auf viele Dateien verteilten Elemente eines Entwicklungsprojekts leicht zu einem fertigen Add-on zusammensetzen lassen. Außerdem empfiehlt sich für die Fehlersuche die Erweiterung Firebug, die der vorangehende Artikel vorstellt. Damit kann der Entwickler zum Beispiel sehr einfach den DOM-Baum eines HTML-Dokuments analysieren. Mit einem Debugger hilft Firebug, Fehler in JavaScript-Dateien einzukreisen.

Last, but not least gilt es, ein Verzeichnis für den Entwurf der Erweiterung anzulegen. Eine XPI-Datei ist nichts anderes als ein gezipptes Verzeichnis, weshalb die Endung xpi auch als „zippi“ ausgesprochen wird. Der Screenshot rechts zeigt den typischen Aufbau der Verzeichnisstruktur einer XPI-Datei. Bei der Entwicklung sollte man sie beibehalten. Praktischerweise muss der XPI-Programmierer sein Add-on nicht bei jedem Schritt des Entwurfsprozesses packen und installieren, wie man es bei der Einrichtung von Erweiterungen im normalen Betrieb gewohnt ist.

Man kann seine Erweiterung im Verzeichnis extensions des Firefox-Profilordners entwickeln – unter Windows typischerweise C:\Dokumente und Einstellungen\<Windows-Benutzer>\Anwendungsdaten\Mozilla\Firefox\Profiles\<Profil-Name>\extensions. Als Namen für das Projektverzeichnis sollte der Entwickler eine eindeutige Kennung wählen. Statt eine zufällige kryptische Zahlenfolge zu verwenden, die man sich zum Beispiel bei Online-Diensten generieren lassen kann (siehe Soft-Link), benutzen die Entwickler von Firefox-Erweiterungen immer häufiger eine aussagekräftige E-Mail-Adresse, etwa in der Form <Programmname>@<Homepage-Domain des Entwicklers>. Für die Entwicklungszwecke tut es zunächst eine beliebige Kennung – Hauptsache, keine andere Firefox-Erweiterung verwendet sie.

Alternativ lässt sich aber auch ein beliebiges Verzeichnis verwenden. Dazu legt man im extensions-Ordner eine mit der Kennung bezeichnete Textdatei an, die nicht mehr enthält, als die Pfadangabe des Entwicklungsverzeichnisses. Startet man anschließend Firefox neu, so benutzt er die im Entwicklungsverzeichnis enthaltenen Dateien. Entsprechend muss der Entwickler Firefox neu starten, wenn er Änderungen an seinem Projekt vorgenommen hat. (jo)

Den vollständigen Artikel finden Sie in c't 04/2009.

[1] Sebastian Kortemeyer, Professor Dr. Frank Thiesing: Gute Beschreibung, Webanwendungen mit XUL und SVG gestalten, c't 5/08, S. 202

Soft-Link

"Software-Kollektion"
Artikel zum Thema "Software-Kollektion" finden Sie in der c't 04/2009:
Grundausstattung für Windows-PCs S. 120
Firefox-Erweiterungen selbst gebaut S. 134
OpenSuse 11.1 installieren S. 138

Kommentare

Anzeige
Anzeige