Enterprise Policy Generator

  • Ja, bis auf diese Kleinigkeit in der Installationsbeschreibung (die ich persönlich auch gedanklich ergänzt habe :wink: ), sieht das richtig gut und komfortabel aus. :klasse:

  • Ja, schaut doch inzwischen so aus, als sei es bereits fertig.
    Übersichtlich und praktisch selbsterklärend.

    Freut mich zu hören! :)

    Und jetzt schaue ich mir deinen Quellcode an.

    Super. Lass mich wissen, wenn du dazu Anmerkungen hast. Dass es noch etwas viel Code-Duplizierung gibt, ist mir bekannt, für nach Version 1.0 steht ein bisschen Code-Refactoring an. Ich will die Veröffentlichung der ersten Version nicht damit aufhalten. Auch könnte der Code deutlich mehr Kommentare vertragen. Das wird dann auch im Rahmen des Refactorings passieren. ;)

    Ich habe mich nämlich gestern tatsächlich dazu aufraffen können, mal meine erste Webextension zu scripten. Nicht Wildes - eine Tab/History-Liste in der Sidebar und als Popup - und natürlich relativ stark an den Beispielen orientiert. Und dazu habe ich jetzt mehr Fragen als mir lieb sind... :P

    Gratulation zu den ersten Gehversuchen mit WebExtensions! Zöger nicht, deine Fragen zu stellen (in einem eigenen Thread dann natürlich :P ).


    Sieht gut aus. Da ist jedoch ein kleiner Stolperer im String explanation_intro_windows

    „erstellen Sie ein Verzeichnis mit dem Namen „distribution“ in dem Verzeichnis, in welchem sich die Datei firefox.exe befindet und platzieren sie Datei „policies.json“ dort.“

    Der fette Textteil soll sicherlich platzieren Sie die heißen. Hier hast du wohl zwei Wörter in eins „zusammengemoscht“, wie man hier in Sachsen sagt. :)

    Danke, wird korrigiert! :)

    In "explanation_intro_linux" ist der Fehler übrigens auch drin.

    In Linux ist der Fehler auch drin, weil Copy & Paste und nur der unterschiedliche Teil angepasst worden ist. :D


  • Super. Lass mich wissen, wenn du dazu Anmerkungen hast. Dass es noch etwas viel Code-Duplizierung gibt, ist mir bekannt, für nach Version 1.0 steht ein bisschen Code-Refactoring an. Ich will die Veröffentlichung der ersten Version nicht damit aufhalten. Auch könnte der Code deutlich mehr Kommentare vertragen. Das wird dann auch im Rahmen des Refactorings passieren. ;)


    Na, da werde ich dir sicher nicht viel zu sagen haben. Ich habe ganz bestimmt weniger Erfahrung mit reinem Javascript als du, da ich ja jQuery-verwöhnt bin und deshalb selten darauf zurückgreifen musste. Ich kenne die Basics, aber vieles ist mir auch relativ unbekannt. So Konstrukte wie

    Code
    [...el.querySelectorAll(':scope input')].forEach((el) => { });


    sind mir fremd und ich frage mich, was will der Author mir damit sagen... :-??
    Okay, querySelectorAll und forEach verstehe ich, aber was bedeutet :scope und überhaupt: was sollen die drei Punkte da... :P
    Du siehst, meine Schwierigkeiten fangen bereits an, bevor ich überhaupt eine manifest.json erstellt habe.


    Gratulation zu den ersten Gehversuchen mit WebExtensions! Zöger nicht, deine Fragen zu stellen (in einem eigenen Thread dann natürlich :P ).


    Dankeschön. :)
    Ich habe es lange vor mich hergeschoben (auch weil ich mich bissel vor dem reinen Javascript drücken wollte), aber das hat mich doch schon die ganze Zeit gereizt. Aller Anfang ist schwer, aber mit der Zeit werde ich mich da sicher auch reinfinden. Das Angebot nehme ich natürlich dankend an und werde bestimmt die nächsten Tage die ersten Fragen stellen. Momentan tue ich mir noch schwer mit den Strukturen. Ich habe z.B. heute das i18n eingebunden, aber es hat nicht sofort geklappt. Warum? Weil ich eine halbe Stunde gebraucht habe, um herauszufinden, dass man in der manifest eine default_locale vorgeben muss... :P

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)

  • Na, da werde ich dir sicher nicht viel zu sagen haben. Ich habe ganz bestimmt weniger Erfahrung mit reinem Javascript als du, da ich ja jQuery-verwöhnt bin und deshalb selten darauf zurückgreifen musste.

    jQuery macht einem das Leben wirklich einfach, hat aber auch viel Overhead, so dass ich es gerne vermeide. Bei Firefox-Erweiterungen kommt dazu, dass die Verwendung von Bibliotheken zwar möglich, aber bei den Reviews eine Hürde ist, auf die ich verzichten möchte.

    Ich kenne die Basics, aber vieles ist mir auch relativ unbekannt. So Konstrukte wie

    Code
    [...el.querySelectorAll(':scope input')].forEach((el) => { });


    sind mir fremd und ich frage mich, was will der Author mir damit sagen... :-??
    Okay, querySelectorAll und forEach verstehe ich, aber was bedeutet :scope und überhaupt: was sollen die drei Punkte da... :P

    Die drei Punkte sind der sogenannte Spread-Operator:
    https://developer.mozilla.org/de/docs/Web/Ja…Spread_operator

    Der Unterschied ist, dass Folgendes eine NodeList zurückliefert:
    el.querySelectorAll(':scope input')

    Und das liefert ein Array zurück:
    [...el.querySelectorAll(':scope input')]

    Hier findest du einen Artikel über den Unterschied zwischen NodeList und Array:
    https://toddmotto.com/a-comprehensiv…anding-the-dom/

    Eine Erklärung zu :scope findest du hier:
    https://developer.mozilla.org/de/docs/Web/AP…ectorAll#Quirks

    Momentan tue ich mir noch schwer mit den Strukturen. Ich habe z.B. heute das i18n eingebunden, aber es hat nicht sofort geklappt. Warum? Weil ich eine halbe Stunde gebraucht habe, um herauszufinden, dass man in der manifest eine default_locale vorgeben muss... :P

    Das passiert mir nicht, weil es in meinem Grundgerüst schon drin ist. ;) Wenn du dir von meinem Enterprise Policy Generator die ersten beiden Commits ansiehst, siehst du, womit ich eigentlich immer starte:

    https://github.com/cadeyrn/enterp…ba864ec1855a123
    https://github.com/cadeyrn/enterp…77d2eb17da454b9

    Der erste Commit ist reiner Nicht-Erweiterungs-Code, der zweite Commit ein absolutes Basis-Gerüst für die WebExtensions. Du kannst ja generell mal die Commits durchgehen, damit du ein Gefühl dafür bekommst, wie ich so eine Erweiterung schrittweise aufbaue:

    https://github.com/cadeyrn/enterp…a8708040cd3f+69

    Meine i18n-Bibliothek ist aber definitiv nicht die leichteste Koste zum Lernen, weil ich darin XPath verwende. Das ist nicht das größte Vergnügen, aber einfach extrem mächtig. ;)

  • Version 0.4 steht zum Download bereit:
    https://github.com/cadeyrn/enterp…rator-0.4.0.xpi

    Änderungen gegenüber Version 0.3:

    • Neues Feature: es kann nun eine Info-URL für jede Policy hinterlegt werden; drei Policies besitzen bislang einen solchen Info-Link
    • Neues Feature: bestimmte Policies können nun gesperrt werden, d.h. wenn die Option gesetzt ist, kann der Benutzer die getroffene Einstellung auch nicht verändern. Das ist für alle Policies implementiert, die das unterstützen.
    • weitere kleinere Verbesserungen der vorhandenen Policies

    Änderungen im Detail:
    https://github.com/cadeyrn/enterp…v0.3.0...v0.4.0

    Damit bleiben noch offen: SearchEngines-Policy und Validierung von Pflichtfeldern.

  • Ich habe mal noch eine Frage zum String policy_description_DisableFirefoxAccounts:

    Deaktiviere Firefox Account basierende Dienste, einschließlich Firefox Sync

    Muss es hier nicht Firefox Accounts heißen, so wie der Entity-Name es vermuten lässt? Ich würde davor auch noch ein auf einfügen, besser noch einen Relativsatz daraus machen: „Deaktiviere Dienste, die auf Firefox Accounts basieren, ...“. Ich finde, das ist stilistisch besser.

    Ü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 will es ja nicht übertreiben, aber ich habe noch einen Vorschlag zum String policy_description_DisablePrivateBrowsing:

    Deaktiviere den Private Browsing-Modus

    Dieser Modus heißt meines Erachtens im deutschen Firefox allgemein Privater Modus. Der Konsistenz wegen sollte man dabei bleiben.

    Ü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

  • Danke und keine Sorge, als Übertreibung werte ich das nicht. Ich habe ja sogar darum gebeten, dass selbst Kleinigkeiten gemeldet werden, die nicht unbedingt falsch sein müssen, sondern euch anders einfach besser gefallen würden. Letztlich entscheide ich dann, ob ich das auch so sehe oder nicht, aber mit diesen Vorschlägen bin ich in jedem Fall einverstanden. ;)


  • ...


    Vielen Dank für die Erklärung und die weiterführenden Links, Sören. :)

    Zitat

    This then introduces the black box scenario for many new JavaScript developers, jQuery “just works”. If you’re one of those people, you’re probably going to tread on a nail one day and realise you’d wished you learned how the DOM really works with JavaScript, so here’s a quick lesson for you if you’re in that boat.


    Eben mal kurz in den Todd Motto-Artikel geschaut: Meine Rede. So ähnlich geht es mir ja nun auch. Vielleicht nicht ganz so tragisch, weil ich immerhin die Basics kenne und nicht völlig unbedarft bin, aber ich musste schon schmunzeln. :P

    Zu deinen Commits stellen sich mir auch wieder Fragen, aber das würde hier zu weit führen. Das mache ich dann mal die Tage. :wink:

    Die neue Version schaue ich mir dann morgen auch noch an. :)

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)

  • Version 0.5 steht zum Download bereit:
    https://github.com/cadeyrn/enterp…rator-0.5.0.xpi

    Änderungen gegenüber Version 0.4:

    • Unterstützung für den letzten Policy-Typen und damit nun auch Unterstützung für die Policy "SearchEngines". "Ändere die Liste der in Firefox eingebauten Suchmaschinen" unter "Anpassung" ist also dazu gekommen.
    • Das Laden der Übersetzungen ist nun gefühlt wesentlich performanter, weil es nicht mehr zu einem deutlichen Flackern kommt (von "MSG_VARIABLENBEZEICHNUNG__" zum übersetzten Text).

    Änderungen im Detail:
    https://github.com/cadeyrn/enterp…v0.4.0...v0.5.0

  • Danke, ist korrigiert! Ich habe soeben die letzte Vorab-Version fertiggestellt. Wäre super, wenn da nochmal jemand drüber schauen könnte. Sollten keine Fehler mehr auffallen, wird die Version auf AMO veröffentlicht.

    https://github.com/cadeyrn/enterp…rator-0.6.0.xpi

    Änderungen gegenüber Version 0.5:

    • Design für Auswahlfelder implementiert
    • Pflichtfeld-Validierung hinzugefügt

    Änderungen im Detail:
    https://github.com/cadeyrn/enterp…v0.5.0...v0.6.0

  • Okay, das hätte ich vielleicht dazu schreiben sollen. Die Validierung erfolgt derzeit nur visuell, d.h. Pflichtfelder werden markiert und wenn du die Felder ausfüllst, verschwindet die entsprechende Markierung. Ich werte das mal als Feedback, dass ich das noch in Version 1.0 implementieren soll, dass das dann auch nicht zum JSON hinzugefügt wird, richtig? ;)

  • Okay. :klasse:
    Man könnte jetzt noch eine Validierung der Einträge vornehmen, aber ich denke, das kann man sich sparen. Wie ich schon vorher geschrieben habe, sollte ein User wissen, was er macht und in der Lage sein, dort eine gültige URL einzugeben. :)
    Was ist mit "URL für Vorschläge" gemeint?

    Windows 10 | FF 62.0 (64-Bit) / FF 61.0 (64-Bit) / FF 63.0 (64-Bit)

  • Ich habe da noch eine Verständnisfrage zu der Einstellung "Die Installation neuer Suchmaschinen verhindern":
    Was genau ist der Unterschied zwischen "keine Voreinstellung" und "Installation nicht verhindern"? Bewirken beide Einstellungen faktisch nicht dasselbe?