Nightly enthält ab jetzt keine XUL-Dateien mehr

  • Hallo,

    ab jetzt enthält das Nightly (Firefox 73) keine XUL-Dateien mehr. Das bedeutet, dass alle Dateien, die in CSS-Codes und Benutzerskripten mit Hilfe der @-moz-document-Regel referenziert werden ab jetzt die Dateiendung .xhtml statt .xul haben müssen, wie das zum Beispiel schon lange bei der Datei browser.xhtml (früher browser.xul) der Fall ist.

    Ich möchte besonders betonen, dass das nur die Nightly-Versionen betrifft. Für Firefox 71 und Firefox 72 (Beta) trifft das noch nicht zu. Da sind noch XUL-Dateien enthalten.

    Es ist mir noch nicht bekannt, inwieweit das die Namensraum-Angabe betrifft. Auf jeden Fall wird die alte Namensraum-Angabe für XUL-Dateien

    http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul

    durch die neue Namensraum-Angabe für XHTML-Angaben

    http://www.w3.org/1999/xhtml

    abgelöst werden.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • http://www.w3.org/1999/xhtml ist der Standard-Namensraum. Den in CSS-Dateien so anzugeben, hätte den gleichen Effekt wie gar keinen Namensraum anzugeben.

    In CSS-Dateien geben wir im allgemeinen gar keinen Namensraum mehr an. Aber in Skripten kommt der Namensraum noch vor.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Ich habe hier ein Beispiel, das ein Textfeld mit dem kompletten Useragenten in den About-Dialog einfügt. Mit dem ursprünglichen XUL-Namensraum und dem XUL-Element „textbox" wurde der Useragent nicht umbrochen. Irgendwie kam ich auf die Idee, stattdessen den XHTML-Namensraum zusammen mit dem Element „textarea“ zu verwenden und siehe da, der Useragent ließ sich umbrechen, siehe dazu Zeile 35.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

    Einmal editiert, zuletzt von milupo (15. Dezember 2019 um 00:05)

  • Mit dem ursprünglichen XUL-Namensraum und dem XUL-Element „textbox" wurde der Useragent nicht umbrochen. Irgendwie kam ich auf die Idee, stattdessen den XHTML-Namensraum zusammen mit dem Element „textarea“ zu verwenden und siehe da, der Useragent ließ sich umbrechen

    Du kannst statt document.createElementNS("http://www.w3.org/1999/xhtml", 'textarea') einfach document.createElement('textarea') schreiben. Wie gesagt ist der XHTML-Namensraum der Standard-Namensraum in (X)HTML-Dokumenten. document.createElement() erstellt in XUL-Dokumenten Elemente im XUL-Namensraum und in (X)HTML-Dokumenten Elemente im XHTML-Namensraum. Das kannst du ganz einfach über die Browserwerkzeuge testen:

    Öffne den "Über Firefox"-Dialog, dann die Browserwerkzeuge und wechsle in die aboutDialog.{xul|xhtml}-Datei, in einer älteren sowie in einer aktuellen Version. Führe in der Konsole den folgenden Code aus:

    JavaScript
    let el = document.createElement('div');
    el.namespaceURI;

    Als der Dialog noch eine XUL-Datei war, war der Rückgabewert der Folgende:

    Code
    http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul

    In Firefox Nightly ist der Rückgabewert:

    Code
    http://www.w3.org/1999/xhtml

    Ergo ist document.createElementNS("http://www.w3.org/1999/xhtml", 'textarea') völlig identisch zu document.createElement('textarea') in (X)HTML-Dokumenten. Vorher war das nicht möglich, da das Element dann im XUL-Namensraum gewesen wäre, was den von dir genannten Verhaltensunterschied bedeutet hätte.

  • die alte Namensraum-Angabe für XUL-Dateien


    http://www.mozilla.org/keymaster/gate…ere.is.only.xul


    durch die neue Namensraum-Angabe für XHTML-Angaben


    http://www.w3.org/1999/xhtml


    abgelöst werden.

    In diesem Script ist noch xul enthalten, funktioniert aber einwandfrei im aktuellem Nightyl:/

  • Es gibt auch kein toolbarbutton-Element in (X)HTML, das ist ein XUL-Element. Im XHTML-Namensraum wäre dieses Element unbekannt. Fügt man das im XHTML-Namensraum ein, zerstört das Script die Oberfläche von Firefox. In dem Fall wäre es also falsch, den Namensraum zu verändern. Firefox hat keine XUL-Dateien mehr. Aber XUL wird immer noch viel in Firefox verwendet. Man muss also immer den Kontext betrachten.

    Das passiert, wenn man den XHTML- statt den XUL-Namensraum verwendet:

  • Es gibt auch kein toolbarbutton-Element in (X)HTML, das ist ein XUL-Element. Im XHTML-Namensraum wäre dieses Element unbekannt. Fügt man das im XHTML-Namensraum ein, zerstört das Script die Oberfläche von Firefox.

    Darum habe ich in meinem Eingangsbeitrag nicht einfach geschrieben, den XUL-Namensraum durch den XHTML-Namensraum zu ersetzen und natürlich habe ich ebenfalls getestet.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Dann hast du dich unglücklich ausgedrückt. Du hast wörtlich geschrieben:

    Auf jeden Fall wird die alte Namensraum-Angabe für XUL-Dateien

    http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul

    durch die neue Namensraum-Angabe für XHTML-Angaben

    http://www.w3.org/1999/xhtml

    abgelöst werden.

    Und dann hast du im nächsten Beitrag den Zusammenhang zu Scripts hergestellt. Daraus würde ich, wenn ich nicht das wüsste, was ich geschrieben habe, ableiten, dass das in den Scripts zu ersetzen wäre. Für mich liest sich das genau so. Und den Beitrag von Andreas interpretiere ich so, dass er auch so verstanden hat.

  • document.createElement() erstellt in XUL-Dokumenten Elemente im XUL-Namensraum und in (X)HTML-Dokumenten Elemente im XHTML-Namensraum

    Zwischenzeitlich wurde ja mal document.createXULElement () eingeführt, ich habe gelesen, dass das wieder durch document.createElement () ersetzt wird, wenn XUL dann nicht mehr verwendet wird. Ich denke, dass da wohl ein Großteil der Skripte umgeschrieben werden muss, da viele Skripte ja Oberflächenelemente anlegen und sei es nur das eigene Symbol für die Symbolleiste.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress

  • Und dann hast du im nächsten Beitrag den Zusammenhang zu Scripts hergestellt. Daraus würde ich, wenn ich nicht das wüsste, was ich geschrieben habe, ableiten, dass das in den Scripts zu ersetzen wäre. Für mich liest sich das genau so. Und den Beitrag von Andreas interpretiere ich so, dass er auch so verstanden hat.

    Ich habe aber auch diesen Satz geschrieben:

    Es ist mir noch nicht bekannt, inwieweit das die Namensraum-Angabe betrifft

    Es ist doch wohl fakt, dass der Namensraum ausgetauscht werden muss, aber es war mir da klar, dass man das nicht so einfach machen kann, weil es Probleme geben könnte. Der zitierte Satz ist vielleicht etwas dünn, aber er sollte genau das ausdrücken.

    Übersetzer für Obersorbisch und Niedersorbisch auf pontoon.mozilla.org u.a. für Firefox, Firefox für Android, Firefox für iOS, Firefox Klar/Focus für iOS und Android, Thunderbird, Pootle, Django, LibreOffice, LibreOffice Onlinehilfe, WordPress