Wo finde ich die API um Firefox Extensions zu entwickeln?

  • Suche schon den ganzen Nachmittag verzweifelt nach einer Beschreibung der API für FF Extensions. Oder einem Tutorial in dem direkt erklärt wird, wie eine einfache Erweiterung gebaut wird.
    Scheine mich dabei irgendwie ein wenig dämlich anzustellen, denn ich finde absolut nicht. Hat jemand einen passenden Link für mich?

    Danke!

  • Schau mal hier nach ...

    http://xulplanet.com/

    ...:AOD:...

    HP Chromebook 15a-nb0225ng, i3N-305, 8 GB LPDDR5-4800 MHz RAM (integriert), 256GB UFS, - chromeOS 126 (Stable Channel) - Linux Debian Bookworm: Firefox Nightly, Beta und Main Release (Mozilla PPA), Android 13: Firefox Nightly und Firefox (Main Release)

    Smartphone - Firefox Main Release, Firefox Nightly, Firefox Klar (Main Release)

  • Die Grundlegenden Sachen kannst du hier durchlesen http://www.orablogs.com/duffblog/archives/000536.html

    Alles andere fidnest du auf dem genannten xulplanet, das ist dann sowas wie dein Nachschlagewerk. Programmiert wird grundsätzlich mit JavaScript, aber dafür gibt's ja etliche Tutorials. Bevor du eine Erweiterung schreibst, sollte JavaScript also wenigstens etwas sitzen, sonst tust du dich nur unnötig schwer damit.

    Ansonsten empfehle ich dir einfach eine Extension zu suchen die einen Grundstock bietet, der in etwa deinem Vorhaben entspricht. Dann änderst du erstmal die grundlegenden Sachen wie diese komische ellenlange ID, Name der Erweiterung, Autor, Version und die ganzen Dateinamen (rebranding) etc.

    Dann schauste ob's immer noch geht und dann veränderst du eben Stück für Stück.

    Hast du sonst noch Fragen kannst du dich entweder an die Autoren selbst wenden, die allermeisten sind hilfsbereit oder du fragst auf mozillazine.org im "Extensions" Forum nach - auf Englisch versteht sich. Es gibt zwar auch einige Deutsche Entwickler, aber Englisch ist nunmal das A und O. Die Sprache sollte sitzen sonst hast du wirklich ein Problem weil es eigentlich so gut wie keine deutschsprachigen Entwickler Inhalte zu diesem Thema gibt.

    Grüße

  • Sowohl JavaScript (leider) als auch Englisch sind jetzt nicht die Herausforderung... Denke am schwierigsten wird am Anfang das finden der passenden Funktionalitäten werden.
    Solle ja auch nur eine "einfache"erweiterung werden, die inhalt einer webseite analysiert und entsprechende informationen an einen server schickt.

  • schau dir mal die seite an: http://kb.mozillazine.org/Dev_:_Extensio…e_:_On_Tab_Load

    Dort wird erklärt wie man Code jedes Mal ausführt, wenn ein Tab lädt.


    doc.document wäre dann der Inhalt des Tabs, den kannst du dann analysieren. Das JavaScript muss logischerweise in dein Overlay eingebunden werden, aber dazu siehe am besten bei dem Tutorial das ich vorhind gepostet habe - dort ist das ja alles erklärt. Die Hello Wolrd einträge kannste dir ja dann sparen./

    Grüße

  • mmmh. brav alles aus dem "hello word" nachgebaut. tat nicht. die fertigen sourcen runtergeladen, tut sich auch nichts.

    nicht so wirklich motivierend. der link zu dem "on tab load" gefällt mir hingegen sehr gut. :)

    werde mal weiterschrauben. damit, dass ich den ff "auf deutsch" installiert habe sollte das nichtfunktionieren aber nicht zusammenhängen, oder?

  • Mit der deutschen Version sollte es nix zu tun haben, aber möglicherweise(waage vermutung) ist der Code den du nachgebaut hast veraltet und funktioniert nicht mehr bei deiner Version?

  • also langsam dreh ich echt am rad...

    ein einziges mal habe ich es jetzt geschafft, die hello world-erweiterung zu installieren.
    dafür habe ich ff komplett gelöscht und neu installiert...
    dann wollte ich die optionen ändern und nüscht gint mehr.
    nach dem öffnen des xpi-files unter erweiterungen wird angezeigt, dass nach einem neustart die erweiterung installiert wird.
    neustart ->anzeige dass nach neustart die erweiterung deinstalliert wird.

    gibts es irgendeine möglichkeit festzustellen, was exakt schief läuft?

  • Seltsam, seltsam. Normalerweise müsste die Erweiterung gehen für 1.0.6. Ich habs jetzt nicht ausprobiert (weil ich zu faul bin), aber ansonsten such dir eben eine "Hello World" Erweiterung. Bei dem Beispiel in der Mozillazine Knowledgebase ist ja auch eine funktionierende Beispielerweiterung genannt: URLId. (Lin krecht weit unten).

    Nimm die doch grad als Basis und ändere eben nur das, was du brauchst. Das wichtigste mit der GUID steht ja auch im Helloworld Tutorial und der Rest ist ja sowieso eindeutig.

  • So, nach ungefähr einer Millionen Versuchen bin ich endlich ein wenig weiter...

    hatte versucht die einstellung bei dem link von dr. evil direkt in pref.js zu speichern. verursachte zwar keine fehlermeldungen, lief aber irgendwie trotzdem alles schief.


    irgendwann fand ich dann folgende seite:
    http://roachfiend.com/archives/2004/…fox-extensions/

    hier fand ich eine erweiterung die ziemlich einfach aussah und auch funktionierte. nachdem ich mein profil gelöscht hatte (und folglich wieder eine saubere pref.js hatte).

    ok, also weiter mit dem spielchen und herausfinden, warum das noch einfachere helloworld nicht ging. am ende bin ich dann darauf gekommen, dass nicht das gesamte chrome-verzeichnis gezippt werden darf sondern nur die inhalte in dem verzeichnis.

    jetzt hätte ich also den einfachen teil gepackt und fange mit dem schwierigen an. :)

    soweit erstmal danke für eure hile. denke ich werde mich noch des öfteren hier melden...

  • thx. langsam überschneidet sich das mit denen, die ich (mittlerweile) selber gefunden habe... das mit der toolbar hatte ich als erstes schon gefunden, war mir dann aber doch zu komplex. aber auch da steht drin, dass das chrome-verzeichnis die jars enthält und nicht, (wie ich falsch verstanden/gefunden) hatte, dass das chrome-verzeichnis gepackt wird.
    muss mal schauen ob ich die seite wiederfinde, von der ich diese idee habe.

    was mich aktuell noch stört ist, dass ich den ff jedesmal neustarten muss, wenn ich eine neue version testen will.
    ich habe aber den key nglayout.debug.disable_xul_cache erstellt und auf true gesetzt...