Cheatah: XUL: Firefox-Erweiterung mit Kontextmenü

Hi,

ich arbeite gerade an einer simplen Firefox-Erweiterung, die der Menubar einen Eintrag hinzufügen soll, was soweit auch kein Problem ist:

<?xml version="1.0"?>
<overlay [...]>
    <menubar id="main-menubar">
        <menu id="foo-menu" label="Foobar" insertafter="bookmarks-menu">
            <menupopup id="foo-menu-popup">
                <menuitem type="radio" label="Foo" checked="true"/>
                <menuitem type="radio" label="Bar" checked="false"/>
            </menupopup>
        </menu>
    </menubar>
</overlay>

(Dies, in einen XPI-Kontext gebracht, lässt sich wunderbar installieren und bringt nach einem Browser-Neustart ein "Foobar"-Menü mit zwei Einträgen hinter dem Bookmarks-Menü hervor.)

Nun möchte ich, dass die Menu-Items ein Kontextmenü besitzen. Nach meinen Recherchen benötige ich dazu innerhalb des <overlay>-Elements:

<popupset>
    <popup id="foo-context">
        <menuitem [...] />
    </popup>
</popupset>

und referenziere dies an geeigneter Stelle mittels context="foo-context". Je nach Quelle, die ich konsultiere, kann es auch mal ein contextmenu-Attribut und/oder ein <menupopup> statt <popup> sein. Meine Versuche, egal in welcher Kombination und egal, an welcher Stelle ich das Attribut unterbrachte (von <menubar> bis runter zu <menuitem>), blieben allerdings erfolgfrei.

Also habe ich mir als Beispiel die Bookmarks angesehen, die in Firefox per se über ein Kontextmenü verfügen. Dafür zuständig scheint mir die Datei browser.xul innerhalb chrome/browser.jar zu sein. Leider sind mir die Zusammenhänge nicht vollständig klar. Soweit ich es verstehe, ist die Basis das <menu id="bookmarks-menu">, in welchem a) ein <menupopup> mit contextmenu-Attribut besteht, das b) via template="bookmarks-template" befüllt wird. Das Element, welches vom contextmenu-Attribut referenziert wird, ist:

<menupopup id="bookmarks-context-menu"
           onpopupshowing="return BookmarksMenu.createContextMenu(event);"
           onpopuphidden ="BookmarksMenu.destroyContextMenu(event);"/>

Was BookmarksMenu.createContextMenu() macht, habe ich noch nicht ganz durchschaut. Leider ist es bei mir aber so, dass eine entsprechende, mit alert(1) gefüllte Funktion erst gar nicht aufgerufen wird (obwohl die JavaScript-Datei natürlich eingebunden ist ;-), egal wie ich meinen XUL-Code gestalte. Daher gehe ich davon aus, dass ich noch einen sehr grundlegenden Fehler mache. Fällt dieser jemandem hier auf? Welche XUL-helfenden Quellen außer XUL-Planet, dem Mozillazine-Forum und der Mozilla-XUL-Referenz gibt es? Und kann mir jemand eine Firefox-Erweiterung empfehlen, welche mir als Vorlage für mein Vorhaben dienen könnte?

Cheatah

P.S.: Es dürfte irrelevant sein, aber es geht um den aktuellsten Firefox unter Windows, Einsatz im Intranet.

--
X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes
  1. Hi,

    tja, meine Geschaeftsunterlagen habe ich wohl peinlich genau gebackuped, da fehlt kein Byte, nur bei meinem privatem Kram klaffen etliche Luecken. Ich habe das Gleich wie Du naemlich schonmal probiert und kann mich ganz genau entsinnen ebenfalls verzeifelt zu haben ;-}

    Was BookmarksMenu.createContextMenu() macht, habe ich noch nicht ganz durchschaut.

    Das ist in $MOZILLA_SOURCEDIR/browser/components/bookmarks/content/bookmarksMenu.js definiert als createContextMenu(aEvent), das die noetigen Geraetschaften fuer  createContextMenu(aEvent, aSelection, aDS) in $MOZILLA_SOURCEDIR/browser/components/bookmarks/content/bookmarks.js zusammensammelt. Beides Namespace-sicher, dsa kannst Du nur mit den Bookmarks zusammen benutzen.
    Wenn Du in letztere Funktion reinschaust wirst Du aber mit leidlich erwartetem Erstaunen feststellen, das die das Dingen auch nur von Hand zusammenbauen.
    Tja ... ;-\

    Daher gehe ich davon aus, dass ich noch einen sehr grundlegenden Fehler mache.

    Nein, ich glaube hier bist Du ausnahmsweise einmal unschuldig (Vertipper habe ich auch keinen gefunden, aber das hattest Du wahrscheinlich eh als erstes geprueft nehme ich an )

    Fällt dieser jemandem hier auf? Welche XUL-helfenden Quellen außer XUL-Planet, dem Mozillazine-Forum und der Mozilla-XUL-Referenz gibt es?

    Du kennst die Antwort, Herr Kollege, Du kennst sie >;->

    Und kann mir jemand eine Firefox-Erweiterung empfehlen, welche mir als Vorlage für mein Vorhaben dienen könnte?

    Ich kenne Dein gesamtes Vorhaben nicht, aber als Vorlage kann natuerlich alles dienen, was das Kontextmenue erweitert. Diese komische Tab-Erweiterung, na, wie heisst sie jetzt, egal, macht das, wenn ich mich recht entsinne.

    so short

    Christoph Zurnieden

    1. Hi,

      erst mal vielen Dank für Deine Antwort!

      tja, meine Geschaeftsunterlagen habe ich wohl peinlich genau gebackuped, da fehlt kein Byte, nur bei meinem privatem Kram klaffen etliche Luecken. Ich habe das Gleich wie Du naemlich schonmal probiert und kann mich ganz genau entsinnen ebenfalls verzeifelt zu haben ;-}

      Na, das stimmt mich ja jetzt fröhlich *seufz* :-)

      Was BookmarksMenu.createContextMenu() macht, habe ich noch nicht ganz durchschaut.
      Das ist in $MOZILLA_SOURCEDIR/browser/components/bookmarks/content/bookmarksMenu.js definiert als createContextMenu(aEvent), das die noetigen Geraetschaften fuer  createContextMenu(aEvent, aSelection, aDS) in $MOZILLA_SOURCEDIR/browser/components/bookmarks/content/bookmarks.js zusammensammelt.

      Soweit war ich schon, trotzdem danke. Ich habe lediglich noch nicht versucht, den Code näher zu verstehen, weil a) ziemlich viele sonstwo erzeugte Objekte und Variablen verwendet werden und b) bei mir nicht mal _irgend_ ein JavaScript-Code aufgerufen wird, so dass es reichlich wurscht ist, was er denn nun tut.

      Beides Namespace-sicher, dsa kannst Du nur mit den Bookmarks zusammen benutzen.

      Ehrlich? Ich kann die Objekte nicht an anderer Stelle instanziieren oder gar direkt nutzen?

      Wenn Du in letztere Funktion reinschaust wirst Du aber mit leidlich erwartetem Erstaunen feststellen, das die das Dingen auch nur von Hand zusammenbauen.

      Das erschreckt mich nicht weiter. Ich arbeite nebenher an ein paar Methödchen, die das ganze vereinfachen. XML und Objektorientierung schreien schließlich danach, vereinigt zu werden :-)

      Daher gehe ich davon aus, dass ich noch einen sehr grundlegenden Fehler mache.
      Nein, ich glaube hier bist Du ausnahmsweise einmal unschuldig

      Aha, danke ... denke ich ;-)

      (Vertipper habe ich auch keinen gefunden, aber das hattest Du wahrscheinlich eh als erstes geprueft nehme ich an )

      Sicher doch. Mehrfach sichtgeprüft, per Copy&Paste ausgeschlossen, das volle Programm. Einen Tippfehler hatte ich sogar: Ich wollte eine nicht existierende JavaScript-Funktion aufrufen. Es gab keinen Fehler in der Konsole.

      Welche XUL-helfenden Quellen [...] gibt es?
      Du kennst die Antwort, Herr Kollege, Du kennst sie >;->

      Ab einem gewissen Verzweifelungsgrad suche ich auch die Bestätigung ...

      Und kann mir jemand eine Firefox-Erweiterung empfehlen, welche mir als Vorlage für mein Vorhaben dienen könnte?
      Ich kenne Dein gesamtes Vorhaben nicht, aber als Vorlage kann natuerlich alles dienen, was das Kontextmenue erweitert.

      Ich glaube (ohne es getestet zu haben), dass es kein Problem ist, das "Haupt-Kontextmenü" des Browsers zu manipulieren. Grund: Dafür findet man massig Codes, Erklärungen und Extensions. Ich habe aber nichts gefunden, das in der Menüzeile ein _eigenes_ Kontextmenü implementiert - und genau darum geht es mir ...

      Diese komische Tab-Erweiterung, na, wie heisst sie jetzt, egal, macht das, wenn ich mich recht entsinne.

      Ich gehe soweit zu mutmaßen, dass in der Menüzeile keine zusätzlichen Kontextmenüs akzeptiert werden. Begründen kann ich das nur durch wiederholtes Versagen ;-) denn letztlich fehlt mir einfach jede Erklärung, woran es wirklich liegt. Möglicherweise am <overlay> als Root-Element? Wo sind die Implikationen von <overlay>, <window> etc. gegenüber gestellt?

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hi Cheatah,

        Ich glaube (ohne es getestet zu haben), dass es kein Problem ist, das "Haupt-Kontextmenü" des Browsers zu manipulieren. Grund: Dafür findet man massig Codes, Erklärungen und Extensions. Ich habe aber nichts gefunden, das in der Menüzeile ein _eigenes_ Kontextmenü implementiert - und genau darum geht es mir ...

        Unter einem Kontextmenü in der Menüzeile verstehst du so etwas wie Datei, Bearbeiten, Ansicht usw.? Doch, so was muss irgendwie gehen, denn die Tabbrowser Extensions schafft es dort einen eigenen Punkt/eigenes Menü „Tab” zwischen Lesenzeichen und Extras anzulegen.

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
        .htpasswd Datei mit PHP erzeugen
        Immer wenn man etwas anders macht, wird man wieder Leute gegen sich haben. (Jürgen Kliensmann)
        1. Hallo Dennis,

          Unter einem Kontextmenü in der Menüzeile verstehst du so etwas wie Datei, Bearbeiten, Ansicht usw.?

          nein, das glaube ich nicht. Unter einem Kontextmenü in der Menüzeile verstehe ich sowas, wie es in Windows z.B. mit einem Rechtsklick auf Einträge im Startmenü passiert. Also ein Kontextmenü, das beispielsweise Befehle zur Bearbeitung der Menüeinträge anbietet.

          So long,

          Martin

        2. Hi,

          Unter einem Kontextmenü in der Menüzeile verstehst du so etwas wie Datei, Bearbeiten, Ansicht usw.?

          nein, das wäre ein Menüpunkt, und soweit haben wir es schon geschafft (war sogar recht leicht - siehe Code im Ausgangsposting). Unter dem Menüpunkt öffnet sich ein Menü ;-) mit mehreren Einträgen. Auf diesen soll dann tatsächlich das aufrufbar sein, was man gemeinhin unter Kontextmenü versteht. Bis auf den letzten Punkt haben wir alles hinbekommen:

          Der Menüpunkt ist an der richtigen Stelle, beim Anwählen wird er dynamisch gefüllt (der von mir genannte Code füllt es statisch, das tut aber nichts zur Sache - wenn es statisch klappt, kriege ich es auch dynamisch hin), die einzelnen Unterpunkte lassen sich ebenfalls anwählen (durch das type="radio" kann man den Erfolg sogar sehen). Ich kriege lediglich keine Beziehung der Punkte zu einem Kontextmenü hin.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
      2. Hi,

        Soweit war ich schon, trotzdem danke.

        Ich hab's auch nur sicherheitshalber nochmal erwaehnt. Haette ja auch Betriebsblindheit sein koennen.

        Ich habe lediglich noch nicht versucht, den Code näher zu verstehen, weil a) ziemlich viele sonstwo erzeugte Objekte und Variablen verwendet werden und

        Sei froh, das es nur der JS-Teil ist. Ich muss regelmaessig in den C++-Teil eintauchen, da hast Du mitunter Stammbaeume, die laufen ueber 10 Dateien und mehr. Dabei mach ich nichts anders, als Funktionen, die nicht genutzt werden bzw nicht genutzt werden sollen zu entfernen/stillzulegen. Netterweise scheint aber immer an genau den Funktionen der halbe Mozilla dranzuhaengen. Bin ich nicht ein Glueckspilz? ;-)
        Aber ich schweife mal wieder ab.

        b) bei mir nicht mal _irgend_ ein JavaScript-Code aufgerufen wird, so dass es reichlich wurscht ist, was er denn nun tut.

        Aus irgendwelchen Gruenden bastelt er aber das Menue haendisch zusammen, obwohl das theoretisch nicht noetig waere, wie Du ja ganz richtig festgestellt hast.

        Beides Namespace-sicher, dsa kannst Du nur mit den Bookmarks zusammen benutzen.

        Ehrlich? Ich kann die Objekte nicht an anderer Stelle instanziieren oder gar direkt nutzen?

        So, wie ich das verstanden habe nicht, genau. Aber ich bin auch genau wie Du nicht die ganze bucklichte Verwandschaft durchgegangen und habe den Code auch nur eben ueberflogen.
        Ich befuerchte, das muss auf altmodische Art und Weise debugged werden: zu Fuss.

        BTW: hatte sich Dein XUL eigentlich ueberhaupt in den Baum eingeklinkt und wenn ja: in die richtige Position; hast Du mal ganz unverbindlich nachgeschaut?
        Ja, ich weiss, aber mitunter vergisst man das Naheliegendste, ich spreche da aus jahrzehntelanger Erfahrung ;-)

        (Vertipper habe ich auch keinen gefunden, aber das hattest Du wahrscheinlich eh als erstes geprueft nehme ich an )

        Sicher doch. Mehrfach sichtgeprüft, per Copy&Paste ausgeschlossen, das volle Programm. Einen Tippfehler hatte ich sogar: Ich wollte eine nicht existierende JavaScript-Funktion aufrufen. Es gab keinen Fehler in der Konsole.

        Das ist merkwuerdig. Allerdings sollte bi ernsthaften Angelegenheiten bezueglich Javascript in Mozilla eh mindestens der Venkman ausgepackt werden.

        Welche XUL-helfenden Quellen [...] gibt es?
        Du kennst die Antwort, Herr Kollege, Du kennst sie >;->

        Ab einem gewissen Verzweifelungsgrad suche ich auch die Bestätigung ...

        Ich wollt' es ja vermeiden, aber wenn Du es unbedingt moechtest:
        "May the SOURCE be with thou, young padavan!"

        Ich glaube (ohne es getestet zu haben), dass es kein Problem ist, das "Haupt-Kontextmenü" des Browsers zu manipulieren. Grund: Dafür findet man massig Codes, Erklärungen und Extensions. Ich habe aber nichts gefunden, das in der Menüzeile ein _eigenes_ Kontextmenü implementiert - und genau darum geht es mir ...

        Um auch anderen das Verstaendnis zu erleichtern: hast Du ein visuelles Beispiel, sprich: Screenshot eines solchen Kontextmenues?
        Damit auch meine Wenigkeit Sicherheit bezueglich des Verstaendnis des Problems bekommt? Eigentlich dachte ich mit es mit Hilfe des Stichwortes "Bookmarks" verstanden zu haben, aber aus irgendwelchen Gruenden bin ich jetzt verunsichert.
        Kann natuerlich auch an dem "Sidecar" liegen, von dem ich schon ein Viertel intus habe ;-)

        Ich gehe soweit zu mutmaßen, dass in der Menüzeile keine zusätzlichen Kontextmenüs akzeptiert werden.

        Es mag Gruende geben etwas nicht weiterzuverfolgen, aber ein "Geht nicht" gibt's bei mir nicht so schnell.

        Begründen kann ich das nur durch wiederholtes Versagen ;-) denn letztlich fehlt mir einfach jede Erklärung, woran es wirklich liegt. Möglicherweise am <overlay> als Root-Element? Wo sind die Implikationen von <overlay>, <window> etc. gegenüber gestellt?

        Ja, das sind doch schonmal recht praezise Fragen. Mal schauen, was 'find', 'grep' und Konsorten fuer Antworten bereit haben.

        so short

        Christoph Zurnieden

        PS:
        Opera-8.5-static troepfelt?
        CZ

        1. Hi,

          Soweit war ich schon, trotzdem danke.
          Ich hab's auch nur sicherheitshalber nochmal erwaehnt. Haette ja auch Betriebsblindheit sein koennen.

          dem ist oft genug so :-) Jeder Schubser kann helfen; im schlimmsten Fall halte ich das Gleichgewicht.

          Sei froh, das es nur der JS-Teil ist. Ich muss regelmaessig in den C++-Teil eintauchen, da hast Du mitunter Stammbaeume, die laufen ueber 10 Dateien und mehr.

          Ich will's eigentlich gar nicht wissen ;-)

          Ich befuerchte, das muss auf altmodische Art und Weise debugged werden: zu Fuss.

          Hast Du Tipps, wie man das Debugging vereinfachen kann? Der bisherige Weg (raten, möglichst geschicktes JavaScript-alert() einbauen, deployen, Firefox neu starten) ist nicht wirklich befriedigend.

          BTW: hatte sich Dein XUL eigentlich ueberhaupt in den Baum eingeklinkt und wenn ja: in die richtige Position; hast Du mal ganz unverbindlich nachgeschaut?

          Ich kann sehen, dass das Menü an der gewünschten Stelle in der GUI erscheint. Wie der umgebende Baum aussieht, habe ich nicht näher untersucht - ich vermute, er zeichnet sich durch eine beträchtliche Größe und Komplexität aus, die zu debuggen ich mit o.g. Verfahren nicht unbedingt vorhabe. Gibt es eine konkrete Fragestellung, die ich untersuchen sollte?

          Ja, ich weiss, aber mitunter vergisst man das Naheliegendste, ich spreche da aus jahrzehntelanger Erfahrung ;-)

          <Loriot> Ach. Ach was. </Loriot> ;-)

          Welche XUL-helfenden Quellen [...] gibt es?
          Du kennst die Antwort, Herr Kollege, Du kennst sie >;->
          "May the SOURCE be with thou, young padavan!"

          Yes, master. Das Problem ist: Ich kann kein C++, gehe daher vorsichsthalber nicht über den JavaScript-, XUL- und XBL-Code hinaus.

          Um auch anderen das Verstaendnis zu erleichtern: hast Du ein visuelles Beispiel, sprich: Screenshot eines solchen Kontextmenues?
          Damit auch meine Wenigkeit Sicherheit bezueglich des Verstaendnis des Problems bekommt? Eigentlich dachte ich mit es mit Hilfe des Stichwortes "Bookmarks" verstanden zu haben, aber aus irgendwelchen Gruenden bin ich jetzt verunsichert.

          In Windows-Terminologie: Ich möchte mit der rechten Maustaste auf einen Eintrag des von mir erstellten Menüs klicken, und es soll dann ein kleines, graues Fenster erscheinen, in dem ich Funktionen aufrufen kann, welche auf den angeklickten Eintrag ausgeführt werden. Wäre es ein Bookmarks-Menü, das ich baue (und gäbe es ein solches noch nicht), wären es z.B. Funktionen wie "Open in new Window", "Open in new Tab" oder "Delete Bookmark".

          Da es sich um etwas handelt, das ich für meinen Arbeitgeber baue, darf ich leider nicht mehr ins Detail gehen. Ich hoffe aber, ich konnte eventuelle Unklarheiten ausräumen. Wenn nicht, versuche ich gerne, ein ausführlicheres Beispiel zu erfinden.

          Ich gehe soweit zu mutmaßen, dass in der Menüzeile keine zusätzlichen Kontextmenüs akzeptiert werden.
          Es mag Gruende geben etwas nicht weiterzuverfolgen, aber ein "Geht nicht" gibt's bei mir nicht so schnell.

          Ich habe noch nicht aufgegeben ;-)

          Begründen kann ich das nur durch wiederholtes Versagen ;-) denn letztlich fehlt mir einfach jede Erklärung, woran es wirklich liegt. Möglicherweise am <overlay> als Root-Element? Wo sind die Implikationen von <overlay>, <window> etc. gegenüber gestellt?
          Ja, das sind doch schonmal recht praezise Fragen. Mal schauen, was 'find', 'grep' und Konsorten fuer Antworten bereit haben.

          Das wäre super!

          Opera-8.5-static troepfelt?

          Hm?

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Hi,

            Jeder Schubser kann helfen; im schlimmsten Fall halte ich das Gleichgewicht.

            Seitdem ich das Zigarettenrauchen aufgegeben habe, komme ich der drei-Zentner-Marke immer naeher, ob Du da das Gleichgewicht halten kannst ... ;-)

            Ich befuerchte, das muss auf altmodische Art und Weise debugged werden: zu Fuss.

            Hast Du Tipps, wie man das Debugging vereinfachen kann? Der bisherige Weg (raten, möglichst geschicktes JavaScript-alert() einbauen, deployen, Firefox neu starten) ist nicht wirklich befriedigend.

            Nein, ich meinte wirklich zu Fuss, also den Firefox im Debugger laufen lassen.

            Ich kann sehen, dass das Menü an der gewünschten Stelle in der GUI erscheint. Wie der umgebende Baum aussieht, habe ich nicht näher untersucht - ich vermute, er zeichnet sich durch eine beträchtliche Größe und Komplexität aus, die zu debuggen ich mit o.g. Verfahren nicht unbedingt vorhabe. Gibt es eine konkrete Fragestellung, die ich untersuchen sollte?

            Ja, genau die, die ich frug.
            Beim Mozilla gibt es dafuer ein Tool (DOM-Inspector, wenn ich mich nicht irre), gibt es das beim FF nicht? Im Tarball ist der Code aber mit drin!

            Ja, ich weiss, aber mitunter vergisst man das Naheliegendste, ich spreche da aus jahrzehntelanger Erfahrung ;-)

            <Loriot> Ach. Ach was. </Loriot> ;-)

            Und selten hat sowas groessere Auswirkungen, wenn das Naheliegende die Bremse oder ein Praeservativ sind ;-)

            In Windows-Terminologie:

            Ich wage es ernsthaft zu bezweifeln, das sowas ein guter Erklaerungsansatz ist, wenn die Zielperson alleine schon vom aeusserem Erscheinungsbild eindeutig dem Unixlager zuzuordnen ist ;-)

            Ich möchte mit der rechten Maustaste auf einen Eintrag des von mir erstellten Menüs klicken, und es soll dann ein kleines, graues Fenster erscheinen, in dem ich Funktionen aufrufen kann, welche auf den angeklickten Eintrag ausgeführt werden. Wäre es ein Bookmarks-Menü, das ich baue (und gäbe es ein solches noch nicht), wären es z.B. Funktionen wie "Open in new Window", "Open in new Tab" oder "Delete Bookmark".

            Ja, dann habe ich es doch richtig verstanden: statt eines Abzweiges ((Unter)*menue) ein RBM (Right (mouse)Button Menu)?

            Begründen kann ich das nur durch wiederholtes Versagen ;-) denn letztlich fehlt mir einfach jede Erklärung, woran es wirklich liegt. Möglicherweise am <overlay> als Root-Element? Wo sind die Implikationen von <overlay>, <window> etc. gegenüber gestellt?
            Ja, das sind doch schonmal recht praezise Fragen. Mal schauen, was 'find', 'grep' und Konsorten fuer Antworten bereit haben.

            Das wäre super!

            Das war doch irgendwie eine bloede Idee von mir ;-\
            Au Mann, ist das ein Chaos. Wollen hoffen, das die in 1.5 zumindest etwas davon aufraeumen. Ein bischen was habe ich gefunden (vid. z.B. $FIREFOX/browser/base/content/browser.js), aber als ich etwas ausprobieren wollte, sagte mir mein Kernel beim Bauen vom Firefox:
            "No space left on device /dev/hda2, clean up your mess!"
            Na, das werd' ich dann auch mal tun ;-)

            Opera-8.5-static troepfelt?

            Hm?

            Kuenstlerische Umschreibung fuer "kleiner Memoryleak". Ein grosser waere "datt is' undicht" und eine ganz kleiner "Ist das jetzt nur Kondeswasser?".
            Scheint aber der "static"-Teil zu sein, also QT.

            so short

            Christoph Zurnieden

            1. Hi,

              Jeder Schubser kann helfen; im schlimmsten Fall halte ich das Gleichgewicht.
              Seitdem ich das Zigarettenrauchen aufgegeben habe, komme ich der drei-Zentner-Marke immer naeher, ob Du da das Gleichgewicht halten kannst ... ;-)

              das Risiko ist es mir wert ;-)

              Nein, ich meinte wirklich zu Fuss, also den Firefox im Debugger laufen lassen.

              Firefox _im_ Debugger laufen lassen? Mir ist neu, das sowas ginge. Kannst Du mir Details (z.B. Links) nennen?

              Beim Mozilla gibt es dafuer ein Tool (DOM-Inspector, wenn ich mich nicht irre), gibt es das beim FF nicht? Im Tarball ist der Code aber mit drin!

              Gibt es, nur bezieht sich der meines Wissens auf Dokumente im Content-Fenster. Die GUI selbst kann man AFAIK damit nicht debuggen.

              In Windows-Terminologie:
              Ich wage es ernsthaft zu bezweifeln, das sowas ein guter Erklaerungsansatz ist, wenn die Zielperson alleine schon vom aeusserem Erscheinungsbild eindeutig dem Unixlager zuzuordnen ist ;-)

              Unixoide Personen sind i.a.R. in der Lage, sich auf das Windows-Niveau herunter zu denken. Anders herum wird es schwieriger ;-)

              Ja, dann habe ich es doch richtig verstanden: statt eines Abzweiges ((Unter)*menue) ein RBM (Right (mouse)Button Menu)?

              Exakt.

              Das war doch irgendwie eine bloede Idee von mir ;-\

              Na hurra ... :-)

              Au Mann, ist das ein Chaos. Wollen hoffen, das die in 1.5 zumindest etwas davon aufraeumen. Ein bischen was habe ich gefunden (vid. z.B. $FIREFOX/browser/base/content/browser.js), aber als ich etwas ausprobieren wollte, sagte mir mein Kernel beim Bauen vom Firefox:

              Ärgerlich. Was versprichst Du Dir von Änderungen an der browser.js?

              "No space left on device /dev/hda2, clean up your mess!"

              "Kein Weltraum links vom Gerät /dev/hda2, fehlerfrei auf Deiner Messe!" - soso :-)

              Opera-8.5-static troepfelt?
              Hm?
              Kuenstlerische Umschreibung fuer "kleiner Memoryleak".

              Ah so. Ich dachte, der Download sei langsam oder so.

              Cheatah

              --
              X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
              X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
              X-Will-Answer-Email: No
              X-Please-Search-Archive-First: Absolutely Yes
              1. Hi,

                Nein, ich meinte wirklich zu Fuss, also den Firefox im Debugger laufen lassen.

                Firefox _im_ Debugger laufen lassen? Mir ist neu, das sowas ginge. Kannst Du mir Details (z.B. Links) nennen?

                Oh, mein Fehler, 'tschuldigung.
                Ich meinte den Firefox in einem "richtigem" Debugger laufen lassen, unter Unix ist das meist GDB bzw, wenn's um extensives Multithreading geht und es auf ein paar tausend Euro mehr oder weniger nicht ankommt auch gerne eines der kommerziellen Angebote.

                Beim Mozilla gibt es dafuer ein Tool (DOM-Inspector, wenn ich mich nicht irre), gibt es das beim FF nicht? Im Tarball ist der Code aber mit drin!

                Gibt es, nur bezieht sich der meines Wissens auf Dokumente im Content-Fenster. Die GUI selbst kann man AFAIK damit nicht debuggen.

                Das wundert mich sehr. Ich habe mich immer aufgeregt, das ich mich dort (allerdings die Mozilla-Suite) jedesmal durch den ganzen Baum wurschteln musste, bevor ich den eigentlichen Content begutachten konnte.
                Entweder haben sie das geaendert (wuerde mich aber wundern) oder die Tiefe ist einstellbar.

                Unixoide Personen sind i.a.R. in der Lage, sich auf das Windows-Niveau herunter zu denken.

                Dabei besteht aber ernsthafte Gefahr sich auf den Bart zu treten!
                Ein weiteres Sicherheitsmanko von Windows!

                :->

                Das war doch irgendwie eine bloede Idee von mir ;-\

                Na hurra ... :-)

                Nu, Einsicht ist der erste Weg zur Besserung, oder? ;-)

                Ärgerlich. Was versprichst Du Dir von Änderungen an der browser.js?

                Nein nur "vid." also "vide", zu deutsch "siehe!".
                Aendern sollte man da um der geistigen Gesundheit Willen besser nix ;-)

                Aber ich hatte heute Morgen etwas Zeit, ich glaube ich komme der Sache naeher. Wann hast Du denn Deadline?

                Ich weiss nicht, wie weit Du eingetaucht bist, deshalb einfach mal ...

                Das in $FIREFOX/xpfe/communicator/resources/content/nsContextMenu.js vorbereitete Kontextmenu wird in $FIREFOX/xpfe/communicator/resources/content/contentAreaContextOverlay.xul benutzt, um das Kontextmenu zu erstellen, das die rechte Maustaste ueber dem Contentbereich aufruft. Das ist zwar alles viel Text aber im Prinzip relativ(!) einfach. Genauso, wie Du das auch schon probiert hattest. Es koennte also tatsaechlich sein, das ein Menuepunkt kein Kontextmenue zulaesst.
                Ich moechte mich da aber nicht festlegen, bevor ich das nicht selber probiert habe. Ein paar Aspirin habe ich ja noch ;-}

                "No space left on device /dev/hda2, clean up your mess!"

                "Kein Weltraum links vom Gerät /dev/hda2, fehlerfrei auf Deiner Messe!" - soso :-)

                Ja, ich verstehe das auch nicht, auf dem Messestand hat es noch einwandfrei funktioniert --  sagt ja schon die Meldung -- und bestellt war auch all-seitiger Weltraum! Vielleicht haette ich mein Betriebsystem doch besser nicht bei Ikea gekauft?

                Opera-8.5-static troepfelt?
                Hm?
                Kuenstlerische Umschreibung fuer "kleiner Memoryleak".

                Ah so. Ich dachte, der Download sei langsam oder so.

                Das ist bei einem 56k-Modem nur sehr selten signifikant ;-)

                so short

                Christoph Zurnieden

          2. Hallo, Cheatah!

            Hast Du Tipps, wie man das Debugging vereinfachen kann? Der bisherige Weg (raten, möglichst geschicktes JavaScript-alert() einbauen, deployen, Firefox neu starten) ist nicht wirklich befriedigend.

            im fx1.5.0rc1 kannst du mit extension developer die erweiterungen neu laden, ohne ihn neu zu starten ("reload all crome").

            In Windows-Terminologie: Ich möchte mit der rechten Maustaste auf einen Eintrag des von mir erstellten Menüs klicken, und es soll dann ein kleines, graues Fenster erscheinen, in dem ich Funktionen aufrufen kann, welche auf den angeklickten Eintrag ausgeführt werden.

            so, wie beim lesezeichen-menü (nicht auf die ersten 2 einträge)?

            ... (DOM-Inspector, wenn ich mich nicht irre) ...
            Gibt es, nur bezieht sich der meines Wissens auf Dokumente im Content-Fenster. Die GUI selbst kann man AFAIK damit nicht debuggen.

            doch, einfach unter "datei" -> "ein fenster inspizieren" das gewünschte fenster auswählen.
            geh damal auf "suche" -> "knoten suchen" und gib ein:
            attr: "class"
            wert: "menu-iconic bookmark-item"

            dann kommst du zu den bookmarkmenüs.
            und mit:
            attr: "contextmenu"
            wert: "boomarks-context-menu"
            kommst du zum "bookmarkscontextmenu" und das hört sich doch schon mal gut an, oder?

            ich hoffe, es hilft etwas ...

            freundl. Grüsse aus Berlin, Raik

            --
            Der IE ist wichtig. Man benötigt ihn, um sich einen Browser zu besorgen.
            Resizeable Textarea 0.1a