Firefox 70 CSS / Pfad gesucht

  • Funktional in/bis Firefox 69

    Code
    #main-window #navigator-toolbox #nav-bar #nav-bar-customization-target #personal-bookmarks #PlacesToolbar hbox #PlacesToolbarItems .bookmark-item menupopup .bookmark-item[label="HotList"] menupopup .popup-internal-box > .arrowscrollbox-scrollbox

    Ab v70 komplett für die Tonne. Und ich bin seit 2 Wochen am Suchen und Probieren - alles, was ich im Inspektor eintrage, funktioniert. Trage ich das in die userChrome.css ein, nichts - fast nichts. Im Bild zu sehen - bis rot alles gut, grün klappt auch noch, siehe auch

    CSS
    .bookmark-item[label="HotList"] .menuitem-with-favicon .menu-iconic-text,
    .bookmark-item[label="HotList"] .menuitem-with-favicon .menu-accel-container,
    .bookmark-item[label="HotList"] .openintabs-menuitem,
    .bookmark-item[label="HotList"] menupopup menuseparator
    {display: none !important;}

    Blau komplette Fehlanzeige, zu violett will ich hin, auch Fehlanzeige:

    Code
    .bookmark-item[label="HotList"] menupopup hbox arrowscrollbox.popup-internal-box scrollbox,
    .bookmark-item[label="HotList"] hbox arrowscrollbox .popup-internal-box,
    .bookmark-item[label="HotList"] arrowscrollbox.popup-internal-box,
    .bookmark-item[label="HotList"] .popup-internal-box

    Das hier funktioniert, allerdings auch dort, wo nicht gewünscht

    Code
    hbox arrowscrollbox .popup-internal-box

    In der Kombination mit dem Ziel-Ordner (siehe vorherige Box) - fail.

    Falls sich jemand fragt, was das sein soll. Die Lesezeichen-Symbolleiste steckt bei den Buttons in der #nav-bar, lässt sich ja so einrichten. Angezeigt wird ein Unterordner darin und der enthält die "Hotlist". Da ich nur die Symbole/Favicons benötige, wird das Popup mittels display: block und width/height formatiert und halt Text entfernt.

    Die Frage: wie lautet der genaue Pfad zum gewünschten, Firefox ist nicht in der Lage, mir was nutzbares anzubieten, allenfalls in der Form wie in der ersten Box. X/

    PS noch ein Bild wie es sein soll, das Popup ist insgesamt voll, geht euch nur nix an ;)

  • Und genau das ist der Unterschied, bin grad wieder mit v69 unterwegs, da gibt es kein DOM ShadowRoot bzw #shadow-root, es gibt auch nicht html:slot mit den Platzhaltern für die Lesezeichen. Das hatte ich neulich schon im Thema zu Pentomino geschrieben, dass viel auf xhtml umgebaut wird und da hatte ich schon so eine Ahnung. In den nightlies davor funktioniert das noch.

    ShadowRoot bzw #shadow-root konnte ich nicht nutzbringend einbauen.

    Ich könnte das auch als Erweiterung mit Button nutzen, wäre auch ein Ordner in den Lesezeichen. Nur mit der Erweiterung komme ich über so ein Lesezeichen nicht mehr auf meinen Router, das verweigert der. Mit dem gewöhnlichen Ordner klappt das, also benötige ich eine Erweiterung weniger, hat auch was. Lesezeichenleiste ist keine Option, falls die Frage aufkommen sollte, bin ich schon seit Jahren von weg.

    Danke für deine Arbeit, es brennt nicht unter den Nägeln, weil nightly. Wobei, mir fällt ein, dass manch einer hier auch ähnliche Styles verwendet, mal schauen, wer sich noch so meldet ;)

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

  • Das betrifft definitiv bereits ein paar Bereiche von Firefox, alles im Rahmen der Umstellung von XBL-Bindings auf Webtechnologie. Es gibt ein paar verschiedene technologische Ansätze, die XBL-Bindings zu ersetzen, und nicht für jedes XBL-Binding ist jeder Ansatz gleich gut geeignet. Entsprechend betrifft das manche, aber längst nicht alle Stellen, wo XBL-Bindings entfernt worden sind.

    Wenn ich Zeit finde, werde ich mal ein paar Zeilen darüber schreiben, wie man das CSS in einem solchen Fall von außen überschreibt.

  • Ich habe mich gestern Abend nochmal damit befasst. Während der entsprechende Standard bereits für Browser-Stylesheets funktioniert und es dementsprechend möglich wäre, das fehlende Puzzle-Teil in CSS zu verwenden, ist die Datei userChrome.css ein User-Stylesheet und dafür wird das bislang noch nicht unterstützt.

    Nach meiner Nachfrage wurde https://bugzilla.mozilla.org/show_bug.cgi?id=1575507 vor wenigen Minuten von dem Entwickler eröffnet, welcher die Shadow Parts implementiert. Darauf wirst du also warten müssen.

  • 10 Tage weiter, Emilio hat was gepostet, was ich nicht wirklich verstehe. Inzwischen stosse ich auf immer mehr von diesen Shadow-Tags. Was mich irritiert sind die shadow tags:

    ::port (oder ähnlich)

    Wären die so nutzbar?

    zB .- aus dem 1. Bild entnommen: menupopup::open

    Zu einfach?

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

  • Ich hab das Problem zurück in den Launcher geschoben, bis ich die Shadow nutzen kann. Code entrümpelt und angepasst. Hintergrund der Änderung auf Firefox war, dass ich mich nicht mehr bei meinem Router anmelden konnte bzw nach Login immer abgewiesen wurde. Ich denke nicht, dass es in der v70 ankommen wird, mit dev beta2 geht es auch noch nicht, auch wenn 6 Wochen viel sind.

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

  • Emilio hat was gepostet, was ich nicht wirklich verstehe.

    Sein Punkt ist, dass Elemente innerhalb eines Shadow DOM durchaus via userChrome.css ansprechbar sind, indem man einfach einen Selektor innerhalb des Shadow DOMs wählt. Das Problem, welches ich an dieser Stelle sehe, ist, dass damit nicht ermöglich, spezifisch zu werden, weil die entsprechende Regel dann für alle Elemente gelten würde, welche diesen dadurch sehr allgemeinen Selektor haben.

    Ich habe auf Bugzilla gerade ein Beispiel hinterlassen:

    https://bugzilla.mozilla.org/show_bug.cgi?id=1575507#c2

    Mal sehen, was Emilio dazu sagt.

  • Zitat

    That’s working as intended because pseudo‑elements are leaf nodes.

    Das funktioniert wie beabsichtigt, da Pseudoelemente Blattknoten sind.

    Was bitte?:?:

    Wenn du weinen möchtest, bist du falsch hier. Hier gibt es nur Lösungen!
    Oh Herr, wirf Hirn, oder Steine - Hauptsache, du triffst endlich.
    Zu viele Goofies und Dulleks vom Dienst. Schlabokka!

  • Du kannst dir die DOM-Struktur als einen Baum vorstellen. Es gibt mit dem body einen Stamm, darunter viele Äste, die einzelnen Elemente. Und Pseudoelemente (erkennbar am ::) sind sozusagen Blätter, darunter gibt es keine weitere Ebene. Daher die Bezeichnung Leaf Node.

    Das war tatsächlich ein Denkfehler in meinem Beispiel. Tiefer als #BMB_bookmarksPopup::part(arrowcontent) kann man nicht gehen, #BMB_bookmarksPopup::part(arrowcontent) .panel-arrowcontent ergibt keinen Sinn. Es ist stattdessen also zu prüfen, ob zumindest ::part grundsätzlich in userChrome.css funktioniert oder nicht, dafür fehlt mir gerade die Zeit. Jedenfalls, falls das nicht geht, ist eine Limitierung seitens Firefox vorhanden. Falls (oder sobald, je nachdem) das klappen sollte, dann geht es nicht ohne JavaScript, weil du dann den Elementen, die du im Shadow DOM ansprechen möchtest, das part-Attribut geben musst, damit du das via CSS erreichst. Oder du bleibst mit dem Selektor allgemein, auf die Gefahr hin, dass der Selektor an unterschiedlichen Stellen wirkt. In meinem Beispiel funktioniert beispielsweise einfach  .panel-arrowcontent ja, nur die Eingrenzung auf das Lesezeichen-Menü geht dadurch flöten.

    Jedenfalls macht es für mich das Testen schwierig, weil die hier im Forum beschriebene Methode, Scripts zu verwenden, auf macOS offensichtlich nicht mehr funktioniert.