27 Reaktionen

Mozilla stellt Add-on Builder am 7. Januar 2014 ein

Geschätzte Lesedauer:

Der Add-on Builder ist ein Online-Tool von Mozilla, welches es erlaubt, auf dem Add-on SDK basierende Erweiterungen aka Jetpacks direkt im Browser zu entwickeln und live zu testen. Doch Mozilla wird das Werkzeug einstellen. Ab dem 7. Januar können damit keine weiteren Add-ons mehr entwickelt werden.

Nun ist offiziell, was schon länger inoffiziell bekannt war: Mozilla wird den Add-on Builder einstellen. Genau wird es am 7. Januar soweit sein, dann können keine neuen Add-ons damit mehr erstellt werden. Die Seite wird noch bis April Zugriff auf bestehende Add-ons geben, ehe der Add-on Builder dann komplett abgeschaltet werden wird.

Im Februar 2012 hat der Add-on-Builder die Betaphase verlassen und wurde in der offiziellen Version 1.0 online gestellt. Und damit hat auch praktisch die Entwicklung dieses praktischen Werkzeuges leider aufgehört. Zwar wurde der Add-on Builder noch regelmäßig mit den neusten Versionen des Add-on SDKs ausgestattet, doch neue Features des SDKs wie Übersetzungen wurden nicht unterstützt. Die vor wenigen Tagen veröffentlichte Version 1.15 des Add-on SDKs unterstützt der Add-on Builder bereits nicht mehr.

Als Grund für die Einstellung nennt Mozilla mangelnde Nutzung. So hätten zwar viele den Builder getestet, aber weniger als ein Prozent ihre Add-ons dann auf Mozillas Add-on-Seite veröffentlicht. Und die populärsten SDK-basierenden Add-ons wurden auch nicht mit dem Add-on Builder erstellt, sondern über die Kommandozeile kompiliert. Darum hat Mozilla entschieden, dass es keinen Sinn hat, weitere Ressourcen in dieses Projekt zu stecken. In Anbetracht der geschilderten Situation könnte man geneigt sein, das auch als Henne-Ei-Problem zu sehen. Mozilla möchte Add-on-Entwicklern das Leben aber trotzdem einfacher machen und arbeitet daher aktiv daran, die in Firefox integrierten Entwicklerwerkzeuge zu verbessern und den Browser beispielsweise mit einem Add-on Debugger auszustatten.

[lightbox style=“modern“ image_path=“https://www.soeren-hentzschel.at/wp-content/uploads/add-on-builder.png“ popup=“https://www.soeren-hentzschel.at/wp-content/uploads/add-on-builder.png“ link_to_page=““ target=““ description=““ size=“two_col_small“]

Zur Klarstellung: Die Einstellung des Add-on Builders heißt natürlich nicht das Ende SDK-basierter Add-ons. Nur können Add-ons jetzt nicht mehr direkt im Browser entwickelt werden, stattdessen lädt man sich das Add-on SDK herunter und bedient sich eines Kommandozeilen-Tools, welches die Installation von Python auf dem Computer voraussetzt. Das klingt schwieriger, ist aber eigentlich gar nicht schwierig und gibt Entwicklern viel mehr Möglichkeiten, da der Add-on Builder wie gesagt so manches gar nicht unterstützt. Bonuspunkt: Mit dem Add-on Builder erstellte Erweiterungen liefern immer alle APIs mit, welche sowieso bereits in Firefox vorhanden sind, bei über die Kommandozeile kompilierten Erweiterungen kann darauf verzichtet werden und seit Version 1.15 des Add-on SDKs wird auch standardmäßig darauf verzichtet, womit die Add-ons nur noch einen Bruchteil der Dateigröße besitzen.

Die Tutorials auf diesem Blog zur Erstellung von Add-ons auf Basis des Add-on SDKs beziehen sich auf die Erstellung mit dem Add-on Builder. Es wird pünktlich vor Einstellung dieses Tools ein weiteres Tutorial geben, welches die erstmalige Installation der Entwicklungsumgebung und die Verwendung der Kommandozeile zur Kompilierung von SDK-basierten Erweiterungen erklärt.

Der Quellcode des Add-on Builders steht unter BSD-Lizenz und kann auf GitHub eingesehen und heruntergeladen werden.

Update 11.01.2014: Das Tutorial zur Erstellung SDK-basierter Add-ons für Firefox ohne Add-on Builder ist online.

Dieser Artikel wurde von Sören Hentzschel verfasst.

Sören Hentzschel ist Webentwickler aus Salzburg. Auf soeren-hentzschel.at informiert er umfassend über Neuigkeiten zu Mozilla. Außerdem ist er Betreiber von camp-firefox.de, der ersten Anlaufstelle im deutschsprachigen Raum für Firefox-Probleme aller Art. Weitere Projekte sind firefox.agenedia.com, mozilla.de, firefoxosdevices.org sowie sozone.de.

26 Kommentare - bis jetzt!

Eigenen Kommentar verfassen
  1. schrieb am :

    Für mich, der sich hauptsächlich für die Übersetzung von Add-ons engagiert, war es vor allem ein Dorn im Auge, dass es keine ordentliche Unterstützung für die Übersetzung von Add-ons gab. Firefox sowie alle anderen Mozilla-Programme gibt es in sehr vielen Sprachen, sie sind von großer Internationalität und diese wurde beim Add-on SDK fast völlig außer Acht gelassen. Ein Add-on ohne Lokalisierungsmöglichkeit sollte meiner Meinung nach keine Freigabe für AMO erhalten. Es kann doch nicht angehen, dass man sich die Strings mühselig aus den vorhandenen Dateien heraussuchen muss, um ein Add-on dennoch vernünftig übersetzen zu können.

  2. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Hi,

    wichtige Unterscheidung: Das Add-on SDK bietet eine Unterstützung für die Lokalisierung an. Wie bei den Nicht-SDK Add-ons gibt es dann für jede Sprache eine Datei mit allen Übersetzungen. Der nun eingestellte Add-on Builder unterstützt dieses Feature des SDKs aber nicht. 😉

  3. lagu
    schrieb am :

    Um das Add-on SDK nutzen zu können wird Pyton benötigt.

    Auf der Webseite steht, das empfohlen wird Pyton 2.5 oder 2.6 zu nutzen. Inzwischen ist Pyton 2.5 jedoch nicht mehr downloadbar und Pyton existiert in den Versionen 2.7 und 3.3.

    Funktioniert das Addon SDK auch mit Pyton 3.3 64-bit ohne Probleme oder welche Version kannst du mir empfehlen-

  4. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Hallo,

    in dem Fall dann Python 2.7, mit Python 3.x funktioniert das SDK nicht.

  5. Kevin
    schrieb am :

    Hmm.. Schade.. Bevor man den Dienst dann einstellt, könnte mir evtl. grade noch jemand helfen? 😀 Ich versuche seit Tagen vergebens ein Dropdown-Menu zu mache.. Also ganz einfach so, dass einen Icon zu sehen ist und rechts ein Pfeil (z.B wie bei Firebug), und wenn man darauf klickt sich mehrere ‚Optionen‘ öffnen… Es ist nur nötig das es einfache Links öffnet… (http://… bzw. about: bzw. sonstwas).

    Wäre schön wen Du, Sören, oder jemand anderes eine Lösung für mich hätte 🙂 Ich sag schon mal Danke im Vorraus, damit ich nur bei Nachfragen hier die Kommis spreng 😀 😉
    Was müsste ich also in main.js eintragen 🙂
    Gäbe es dann aucgh die Möglichkeit, wenn rechts ein Text steht, das Linls ein Icon zu sehen ist 😛
    Habe schon alle möglichen Seiten durchforstet und nichts gefunden 🙁

    MfG

  6. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Da wirst du keine Lösung für finden, weil es dazu keine Möglichkeit mit dem Add-on SDK gibt. Da müsstest du eine XUL-Erweiterung schreiben, das zu erklären würde den Rahmen eines Kommentars aber ziemlich sprengen.

  7. Kevin
    schrieb am :

    Hmm… 😀 Dadurch, dass diese Möglichkeit dann für mich erst mal nicht richtig funktioniert, habe ich eine andere Idee 🙂 

  8. Kevin
    schrieb am :

    Extrem noobige Frage aber ich kriegs nicht hin:

    Wenn ich im Internet via HTML einen Link auf „about:blank“ setze wird es geöffnet… Setze ich nun eine Box wie beim Download-Panel (sobald man auf ein Icon klickt, öffnet sie sich) wo eine HTML-Datei geladen wird, klicke ich auf diesen Link zu about:blank oder irgendein andere about:-Befehl, passiert garnichts. Unten links steht zwar wohin der Link führt aber mehr geschieht nicht… target=“_blank“ funktioniert ebenfalls nicht 🙁 Normale http://-Link funktionieren… :-/ Muss ich da auch erst noch in einer XUL-Datei definieren oder wie? 😉 Kann da mir jemand helfen? :-/

  9. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Erscheint dabei denn irgendeine Fehlermeldung in der Browserkonsole?

  10. Kevin
    schrieb am :

    Hmm.. Stimmt Da hätte ich aber auch von alleine drauf kommen können 😀 Ich verwende sie so wenig, da kann mans mal vergessen 😉

    Das hier dürfte interessant sein:

    Sicherheitsfehler: Inhalt auf resource://jid0-ipsuvkd0j7yl1cibwqadohtcwmy-at-jetpack/test-addon/data/all.html darf about:addons nicht laden oder verlinken.

    about:addons ist jetzt mal ein Platzhalter 😉 Kommt überall das selbe raus 🙁 Wie kann man bitte diesen Sicherheitsfehler beheben?? o.O
    Ach ja: Wenn ich deie Datei so im Browser ausfrufe kann ich die about:-Befehle ebenfalls nicht öffnen. Lade ich es auf einem Server hoch und verlinke es dann, kann es geladen werden. Aber ich hab keinen Bock drauf, wenn der Server down ist, dass dann haufenweise Mails bei mir ankommen :/ wenns nicht anders geht müsste ich es jedoch wohl doch so machen 🙁

  11. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Füge folgendes hinzu:

    	var { Ci } = require('chrome');
    
  12. Kevin
    schrieb am :

    Ähm… jau… Ne.. funktioniert leider nicht 🙁 Was mir nun allerdings aufgefallen ist, ist das, dass ich (auch ohne Deinen Code) about:blank, :home, :buildconfig, :credits, :license, :logo, :mozilla und :rights aufrufen kann… (Ich habe immer die verwendet zum testen, die nicht gingen) -.- about:addons und alle weiteren (mir bekannten) funktionieren hingegen nicht :-/ Und das sind meherere 🙁 Und der vollständigkeitshalber würde ich gerne alle möglichen machbar machen 😐

    MfG

  13. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Klappt bei mir ohne Probleme.

    var { Ci } = require('chrome');
    var tabs = require('sdk/tabs');
    tabs.open('about:addons');
    

    … öffnet hier den Add-on Manager.

  14. Kevin
    schrieb am :

    Nur ist es bei mir ja via HTML wenn man auf einen Link klickt!? Es soll ja nicht automatisch geöffnet werden.

    var data = require(’self‘).data;
    var self = require(’self‘);

    var text_entry = require(„panel“).Panel({
      width: 500,
      height: 600,
      contentURL: data.url(„all.html“),
    });

    require(„widget“).Widget({
      label: „Label“,
      id: „ID-Sonstwas“,
      contentURL: self.data.url(‚icon.ico‘),
      panel: text_entry
    });
    panel.show();
    Und in der geladenen HTML-Datei wird halt mit a-Tag der Link nicht geladen.. Zwar angezeigt, aber wenn man draufklickt passiert nix 🙁

  15. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Du wirst nicht drum herumkommen, die tabs.open()-Methode zu verwenden, ansonsten hast du keinen Zugriff auf diese Seiten von Firefox. Aber das ist kein Problem. Dann setzt du einen Event-Listener auf das Click-Event, deaktivierst die Standardfunktion und gibst den Wert des href-Attributs an die tabs.open()-Methode zurück. Die größte Schwierigkeit ist dabei, erst einmal wissen zu müssen, dass man dafür ein Content-Script benötigt und wie das im SDK aussieht. Denn irgendwie müssen der HTML-Teil deines Panels und dein Add-on-Code dafür ja miteinander kommunizieren. Hier ein funktionierendes Beispiel:

    	var { Ci } = require('chrome');
    	var self = require('self');
    	var tabs = require('sdk/tabs');
    
    	var script = "window.addEventListener('click', function(e) {" +
    	"  e.preventDefault();" +
    	"  if (e.target.nodeName == 'A')" +
    	"    self.port.emit('clickevent', e.target.href);" +
    	"}, false);";
    
    	var text_entry = require('panel').Panel({
    	  width: 500,
    	  height: 600,
    	  contentURL: self.data.url('all.html'),
    	  contentScript: script
    	});
    
    	require('widget').Widget({
    	  label: 'Label',
    	  id: 'ID-Sonstwas',
    	  contentURL: self.data.url('icon.ico'),
    	  panel: text_entry
    	});
    
    	text_entry.port.on('clickevent', function(url) {
    	  tabs.open(url);
    	});
    
  16. Kevin
    schrieb am :

    Wow 😀 🙂 Das funktioniert super 😀 Nur… Wie kann man denn jetzt noch ggf. machen, dass es auch bei Grafiken funktioniert?! Text geht ja. Nur Bilder nicht :/ Hätte ich gewusst, dass es notwendig ist direkt zusagen das auch Bilder inbegriffen sein sollen, hätte ich das ja direkt gesagt -.-

    Aber danke für deine Mühe 🙂

  17. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Das verstehe ich jetzt ehrlich gesagt nicht. Wenn du eine Seite öffnen möchtest, dann läuft das doch immer auf Links hinaus. Und ob der Link nun mit Text oder einer Grafik beschriftet ist, das ist ja egal.

    <a href=“about:addons“><img src=“deine-grafik.png“ /></a>

  18. Kevin
    schrieb am :

    Also ne einfache Grafik bekommt dann nur so einen blauen Rahmen, das man erkennt es Nix :/ ist angeklickt, mehr nicht 🙁 Hab jetzt auch mal alle Addons deaktiviert ob da etwas stört… Und so im Internet den Link angeben geht auch nicht mahr -.-

    Habe in HTML gerade auch ein Div gemacht und das ist bei rausgekommen:

    Wenn Du eine Lösung hast, kannst Du mir helfen, ist aber nicht mehr nötig… Ist mir jetzt ein bisschen die Lust vergangen 🙁

  19. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Ohne das komplette HTML des Panels kann ich nichts zu sagen. 😉

  20. Kevin
    schrieb am :

    1. Den selben HTML-Code wie Du ihn oben für ein Bild gepostet hast

    und

    2. <div style=“height:100px;width:100px;background:#FF0000″><a href=“about:addons“><img src=“addon.png“ /></a></div>

  21. Kevin
    schrieb am :

    Ups.. Nee… Sorry… die 2 ist irgendwie falsch o.O

    <a href=”about:addons”><div style=”height:100px;width:100px;background:#FF0000″>Beliebiger Text</div></a>

  22. Kevin
    schrieb am :

    Yipiiiiiiiiiiiiiii… Hab das Programm grade nach Strich und Faden (auf gut Deutsch) verarscht 😀 😀 Zwar war’s ne ganze Mühe das mit CSS zu definieren was der wann machen soll (wenn er bei dem drüberfährt soll sich dies und das ändern ect…). Aber es hat geklappt 🙂 Aber auch nur Dank deiner Hilfe 😉 Ohne Dich hät ich noch immer dieses Sicherheitsproblem 😛

  23. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Freut mich, wenn es nun läuft. 😉

  24. Kevin
    schrieb am :

    Gnaaarrrg -.-

    Jetzt bekomme ich von den Moderatoren dort gesagt, ich sollte besser auf SDK 1.15 hochstufen. Beim AddOn-Builder geht das jetzt nicht mehr. Wenn ich mir jetzt den Ordner herunterlade, kapier ich echt nicht was ich nun überspielen soll o.O Wenn ich einfach alles in mein AddOn einspiele, bekomme ich beim Upload ne Fehlermeldeung -.- und wenn ich nur addon-sdk-1.15libsdk einbaue, bekomme ich etwa 150 Nachrichten, null Fehler aber dafür bei den Nachrichten gesagt, es sei dennoch Version 1.14!?? Help me… 🙁

  25. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Jo, SDK 1.15 ist eine sehr gute Idee, denn dann ist dein Add-on viel, viel kleiner, weil du die ganzen APIs nicht mit deinem Add-on mitlieferst, die sind ja eh in Firefox schon vorhanden. Das ist zwar auch mit dem SDK 1.14 möglich, wird vom Add-on Builder allerdings nicht unterstützt. Der einzige Unterschied zwischen Version 1.14 und 1.15 ist die standardmäßige Einstellung hierfür, in Version 1.15 aktiviert.

    Du sollst überhaupt nichts überspielen. Du nutzt das cfx-Tool auf der Kommandozeile. Du musst dafür Python 2 (nicht Python 3!) installiert haben. Dann gehst du in den Ordner vom SDK, legst da am besten einen Ordner extensions oder so an und in diesem einen Ordner für dein Add-on. Gehe in der Kommandozeile in den Ordner des SDKs, gib bin\activate (wenn du Windows nutzt) ein, dann in den Ordner für dein Add-on, gib cfx init ein. Das Grundgerüst des Add-ons wird dann erstellt. Dort findest du dann deine main.js-Datei, die du bearbeiten kannst, und den data-Ordner. Wenn du fertig bist, gibst du in der Konsole cfx xpi ein. Das gibt beim ersten Mal einen Fehler, das ist okay so. Kontrolliere nun die Datei package.json und trage die Informationen zu deinem Add-on ein. Ich würde außerdem die JID auf etwas Lesbares ändern, das muss einfach nur irgendwas im Format einer E-Mail-Adresse sein (muss keine reale E-Mail-Adresse sein, aber ein eindeutiger Bezeichner, sprich es kann auf AMO keine zwei Add-ons mit identischer JID geben. Du kannst die JID nachträglich nicht mehr ändern. Willst du das ändern, musst du ein ganz neues Add-on auf AMO hochladen). Dann nochmal cfx xpi ausführen und du hast deine XPI-Datei. Mit cfx run kannst du übrigens dein Add-on testen ohne erst eine XPI-Datei zu generieren und selbst zu installieren.

    Steht aber auch eigentlich alles in der Dokumentation. 😉

  26. Sören Hentzschel Verfasser des Artikels
    schrieb am :

    Update 11.01.2014: Das Tutorial zur Erstellung SDK-basierter Add-ons für Firefox ohne Add-on Builder ist online.

Und jetzt du! Deine Meinung?

Erforderliche Felder sind mit einem Asterisk (*) gekennzeichnet. Die E-Mail-Adresse wird nicht veröffentlicht.
  1. Nach Absenden des Kommentar-Formulars erfolgt eine Verarbeitung der von Ihnen eingegebenen personenbezogenen Daten durch den datenschutzrechtlich Verantwortlichen zum Zweck der Bearbeitung Ihrer Anfrage auf Grundlage Ihrer durch das Absenden des Formulars erteilten Einwilligung.
    Weitere Informationen