Benötige Hilfe beim erstellen einer Erweiterung

  • Hallo community,

    ich hab mich mal selbst daran gemacht ein Forum Menu als Erweiterung zu programmieren. Die xul datei hab ich im xul editor getestet und die funktioniert auch ohne Fehlermeldung. Die Erweiterung ist noch nicht fertig ich wollte jetzt mal testen ob sie aber schon so funktioniert wie ich mir das vorstell. Es soll ein Menü zur Main Menübar hinzugefügt werden über die man dann links zu dem Forum aufrufen kann.

    Dann fingen die Probleme an. Da ich das zum ersten mal mache hab ich natürlich noch nicht die Erfahrung die man vieleicht braucht. Ich hab dann die contents.rdf und die intstall.rdf von einer extention genommen die eigentlich das selbe macht wie das meine machen soll und hab sie dementsprechend modifiziert. Xpi datei erstellt und dann das erste mal installiert. Die extention hat sich auch installieren lassen allerdings gibt es das menü nicht. Ich sehe im unteren viertel von firefox eine gelbe leiste mit einem"^" zeichen darin. Aber keine fehlermeldung.

    Meine frage ist jetzt:

    Muß man immer eine Skin datei programmieren um eine extention installieren zu können? Oder kann man irgendwie sagen benutze das skin das firefox benutzt?

    Ich denke es muß irgendwas mit den overlays zu tun haben bin mir aber nicht sicher.

    Welche Dateien sind unbedingt notwendig damit man eine extention zum laufen bekommt?
    Ich wollte so vorgehen das ich die extention erst mal programmier und mir dann gedanken über das skin und aussehen mache.

    Wenn mir jemand einen tip geben könnte wäre ich sehr dankbar.

    Viele grüße c_ozmik

  • Hallo Dr.Evil,

    Ich habe meine Erweiterung wie folgt aufgebaut:

    WU
    -chrome.manifest
    -install.rdf
    +chrome
    +content
    -wu.xul
    -script.js
    -content.rdf

    hier mein code:

    install.rdf:

    chrome.manifest:

    Code
    overlay	chrome://browser/content/browser.xul	chrome://wu/content/wu.xul
    content	wu	jar:chrome/wu.jar!/content/

    contents.rdf:

    script.js:

    Code
    function wu_open(event, url)
    {
    	if (event && event.button != 0)
    	{
    		getBrowser().addTab(url);
    	} else {
    		loadURI(url);
    	}
    }

    wu.xul:

    Die xpi Datei hab ich hier mal zum download bereit gestellt:

    Code
    http://www.4shared.com/dir/221071/c9d3a218/Erweiterung.html

    Einmal editiert, zuletzt von c_ozmik (4. Februar 2006 um 13:35)

  • ich weiß nicht, ob es daran liegt, aber in der install.rdf sollte beim ersten <em:id> die ID der Erweiterung und nicht die von Firefox stehen. Als eigene ID kannst du eine (Fake)-Email-Adresse verwenden oder dir beim GUID Generator Web Service eine GUID erstellen lassen.

    Wenn du nur Firefox 1.5 und später unterstützen willst kannst du übrigens die contents.rdf und den <em:file>-Abschnitt in der install.rdf weglassen, da das jetzt von der chrome.manifest übernommen wird.

  • Daran lags nicht. Aber danke für den tip.

    Ich hätte noch eine frage was macht es für ein unterschied wenn ich in der wu.xul anstelle von <overlay id...> <window id ....> hinschreibe?

    Erzeugt man mit window immer ein fenster?

  • Zitat von c_ozmik

    Daran lags nicht. Aber danke für den tip.

    Du MUSST eine eigene GUID benutzen! Google einfach nach
    guidgen.exe, oder verfahre so, wie es Dr. Evil beschrieben hat.
    Die "install.rdf" ist falsch!

    Und außerdem ist "wu.jar" reichlich leer. (!)

  • Zitat von 4711

    Du MUSST eine eigene GUID benutzen! Google einfach nach
    guidgen.exe, oder verfahre so, wie es Dr. Evil beschrieben hat.
    Die "install.rdf" ist falsch!

    Und außerdem ist "wu.jar" reichlich leer. (!)

    Gut hab mir ne eigene GUID besorgt s.o.

    Was heißt wu.jar ist reichlich leer? Ich wollte noch kein skin programmieren da ich erst mal wissen wollte ob sich die Erweiterung überhaupt installieren läßt. Die wu.xul Datei ist ja auch noch nicht fertig. Da fehlt noch ne menge. Ich wollte nur jetzt schon mal testen ob ich auf dem richtigen Weg bin.

  • Was du in "install.rdf" und/oder "chrome.manifest" versprichst, muss auch
    tatsächlich vorhanden sein. (in diesem Fall "wu.jar")