Anzahl der Dateien pro Erweiterung

  • Jeder fortgeschritten FX-User hat sich vielleicht schon bei dem Gedanken ertappt, selber eine Erweiterung zu schreiben. Abgesehen davon, daß Material zu diesem Thema meistens in Englisch ist, beschert einem der erste Blick in den Ordner einer beliebigen Erweiterung im Profil Gedankengänge solcher Art:
    -Ach du je..so viele Dateien?
    -und das alles für eine klitzekleine Zusatzfunktion?
    -oh je, das haut mich um
    -ach ne, das lass ich lieber.

    Beispiel BookmarkBackup:
    diese wertvolle Erweiterung macht ja eigentlich "nur":
    Kopiere folgende (einmal vorher festgelegte) Dateien in einen (einmal vorher festgelegten) Ordner und das zu einem bestimmten Zeitpunkt (wenn FX geschlossen wird)
    Trotz fehlender Programmierkenntnisse wage ich zu behaupten:
    eine kleine Batchdatei unter Windows braucht dafür, sagen wir, 10 Zeilen.
    Sollte ich falsch liegen, dann eben 20 - vielleicht aber auch nur 3 Zeilen.

    Schaue ich nun in den zugehörigen Ordner im Profil, finde ich:
    -install.rdf
    -install.js
    -chrome.manifest
    und einen Ordner mit der JAR.
    Diese entpackt:
    -viele "Locale"Sachen mit jeweils 3 Dateien.
    (viele werden andere multilinguale Programme kennen: german.ini, french.ini etc....eben die komplette Übersetzung in 1! Datei)
    -bookmarkbackup.js
    -bookmarkbackupOverlay.xul
    -bookmarkbackupSettings.js
    -bookmarkbackupSettings.xul
    -contents.rdf
    So, und bei diesem Beispiel habe ich keine PNG dabei, die einem neben dem Ordner der Symbole noch eine Handvoll Dateien mitbringen.

    Der Laie fragt sich nun:
    Ist das nicht kompletter Irrsinn?
    Bei komplizierteren Erweiterungen kommen ja noch viele andere Dateien dazu.

    Also: warum um alles in der Welt ist das soooo aufwendig?
    Zwingt der Corecode des FX die Autoren dazu, alles einzeln ablegen zu müssen?

    Warum kann man nicht alles in eine Datei schreiben, die der Firefox "versteht"?

    Lieber einmal zuviel paranoid als einmal zu wenig!

  • Nunja, install.rdf und chrome.manifest (bzw contents.rdf für ältere Firefox-Versionen) braucht man auf jeden Fall. Install.rdf enthält grundlegende Informationen wie den Namen der Erweiterung und contents.rdf bzw. chrome.manifest enthält Informationen, was Firefox mit den restlichen Dateien machen soll, und wo die zu finden sind. Die contents.rdf-Dateien sind übrigens seit Firefox 1.5 unnötig geworden, wenn man die manifest-Datei benutzt.

    Den Rest könnte man rein theoretisch ein eine einzelne Datei packen, dadurch wird der Code aber ziemlich unübersichtlich und das ist auch nicht wirklich sinn der Sache. Normalerweise hat man eine XUL Datei für die Benutzeroberfläche der neuen Funktionen, eine js-Datei für den Code der neuen Funktionen, sowie vielleicht noch jeweils eine xul und eine js für den Einstellungsdialog sofern vorhanden. Außerdem nich Sprachdateien falls die Erweiterung in mehreren Sprachen laufen soll und vielleicht noch zusätzliche Bilder usw.

    Außerdem können größere Erweiterungen wie Adblock schonmal den Code auf mehrere Dateien aufsplitten, damit nicht alles so unübersichtlich wird.

    Das die Übersetzung in 2 (bei alten Firefox-Versionen 3) Dateien aufgesplittet ist, ist natürlich auch nicht wirklich toll. Allerdings ist das die einzige Methode, wie sowas zur Zeit technisch realisierbar ist, und so schlimm ist es doch auch nicht?

  • Trotzdem finde ich das sich der ein oder andere der das sieht den Versuch aufgibt weil es so viel ist.

    Mozilla/5.0 (X11; U; Linux x86_64; de-DE; rv:1.9.1.1) Gecko/20090702 Firefox/3.5

  • Kann schon sein.
    Durch das einführen der Manifest-Dateien mot Firefox 1.5 hat sich das Erweiterungsentwickeln ja schon extrem vereinfacht. Auf die .jar kann man verzichen, d.h. man kann die Dateien auch unkomprimiert abspeichern, was zwar einen lleinen Geschwindigkeitsverlust beim Benutzen verursacht, dafür aber das entwickeln vereinfacht und das benutzen von Sprachdateien ist nun sehr sinnvoll wegen der einfachen Übersetzung. Für übersetzer ist es normalerweise nicht zumutbar, sich auch noch duch den ganzen Quellcode zu wühlen.