Beiträge von DAUFahnder

Du benötigst Hilfe bezüglich Firefox? Bitte stelle deine Frage im öffentlichen Bereich des Forums und nicht per Konversation an wahllos ausgesuchte Benutzer. Wähle dazu einen passenden Forenbereich, zum Beispiel „Probleme auf Websites“ oder „Erweiterungen und Themes“ und klicke dann rechts oben auf die Schaltfläche „Neues Thema“.


    Ich persönlich kenne ehrlich gesagt niemanden, der Feeds nutzt und dafür nicht einen dedizierten Feed-Reader oder eine Erweiterung für seinen Browser verwendet, was auch in Zukunft nach wie vor möglich sein wird. Die Feed-Unterstützung innerhalb von Firefox war ansonsten ja noch nie wirklich der Rede wert.
    https://bugzilla.mozilla.org/show_bug.cgi?id=1477667


    Gabs bei Firefox überhaupt eine sinnvolle Möglichkeit, mehrere Feeds gleichzeitig darzustellen? iirc war das doch "nur" eine Ansicht in der Sidebar, auf den jeweiligen Feed beschränkt. Oder hatte sich da irgendwann was dran geändert? Ich fand das jedenfalls nutzlos und bin dabei geblieben die Feeds nur in TB zu nutzen. Da gibt es immerhin eine anständige Übersicht, auf Wunsch auch in einem Ordner über mehrere Feeds gleichzeitig.

    Ich bastle schon einige Zeit an einer Webextension für Firefox. Selbige speichert relativ viele Daten als Objekt:


    Code
    var cfg = {};
    cfg.foo = {};
    var con = {};
    con.foo.bar = {};
    con.foo.bar.eins = "foobar";
    con.foo.bar.zwei = "barfoo";


    Jetzt habe ich gerade versucht eine Funktion zu schreiben, die mir erlauben würde einzelne Unterobjekte (con.foo.bar.eins) zu löschen. Aber egal wie ich dieses Sub-Objekt an browser.storage.local.remove übergebe, ich bekomme es nicht hin.


    Nach einer (zugegeben kurzen) Google-Suche bin ich nur auf eine stackoverflow-Frage für Google Chrome gestossen, bei der es hiess, dass das so nicht funktionieren würde, da nur Top-Level IDs als Parameter akzeptiert würden. Ich müsste also das betreffende Top-Level-Objekt per get abrufen, das zu löschende Objekt entfernen und dann das gesamte Top-Level-Objekt wieder speichern (womit das Sub-Objekt ja weg wäre). Das könnte ich natürlich machen, aber... :traurig:


    Meine Fragen wären jetzt: Lässt sich obiges wirklich nicht anders lösen? Und wenn doch, könnte mich jemand auf ein Stück Beispielcode schubsen?


    Hinweis: Ich habe die Frage parallel in de.comm.infosystems.www gestellt, aber die Gruppe ist nicht gerade sonderlich gut benutzt wie es scheint.


    DAUFahnder


    Nein, das zählt nicht! Das ist keine Anleitung.


    Doch, ist es. Nur keine die Du verstehst. Für Stammuser dieses Forums ist sofort klar was gemacht werden soll.


    Zitat


    Was soll ich den nun tun? Was soll ich mit der userChrome.css? Welche Werte soll ich wo und warum anpassen? Bitte schreib mir, wo ich klicken soll! Bitte eine Schritt für Schritt Anleitung, so wie ich sie geschrieben habe.


    Nö. Ganz ehrlich, für mich willst Du gerade nur stänkern und da ist mir meine Zeit zu schade für.


    Zitat


    Und vorweg: Hast du meine Anfrage ganz gelesen, oder nur quer? Ist das nicht ein Code von 2017, den ich nicht will? Hast du das selbst so "in Betrieb"?


    Lesen hilft.


    Zitat


    Hat er Querschläger-Effekte, z. B. dass man die Tabs nicht mehr verschieben kann? Was passiert, wenn mehr Tabs geöffnet sind, als in 3 Zeilen passen?


    Dann werden es vier Zeilen. Und bevor Du jetzt die bei dir zu erwartende Frage stellst: Wenn die vierte Zeile voll wird, öffnet sich eine fünfte. Und so weiter, und so weiter...


    Zitat


    Ich habe das alles vor eine 3/4 Jahr durchexerziert und habe keine Lust, mir den gleiche Mist nochmal anzutun. Bitte nicht übel nehmen, aber dir würde es doch bestimmt genauso gehen.


    Nein, würde es nicht. Mal davon abgesehen, dass ich bei IT-Themen keine Probleme damit habe mir aus aus Halbsätzen die Erklärung selbst zusammen zu reimen oder notfalls zu suchen, würde ich halt die Software wechseln wenn sie nicht meine Anforderungen erfüllt. Gemecker nutzt nichts, solange ich die Software nicht explizit selbst in Auftrag gegeben habe.


    Im Übrigen: Ich finde das Konzept der WebExtensions schlicht besser als das Chaos das es vorher gab. Nicht zuletzt aus Sicherheitsgründen. Wem das nicht gefällt, Geschmäcker sind ja zum Glück verschieden, muss halt wechseln.

    Ich bin mir sicher, dass keiner eine Lösung in 2 - 3 Sätzen posten kann, die dann mit ein paar wenigen Klicks erledigt ist, so wie beim "alten" FF! Falls doch, wäre ich überrascht und würde meine schlechte Quantum Meinung überdenken. :D


    für die userChrome.css:



    Das war jetzt ein Halbsatz und viel Code. Zählt das auch? Werte den eigenen Wünschen anpassen. Mit meinen zusätzlichen Anpassungen sieht es so aus:
    [attachment=0]1.png[/attachment]


    Gibt es eine Möglichkeit, die Clippings Einträge zu sichern


    Das sollte im Zweifel mindestens über die storage.js der jeweiligen Erweiterung funktionieren. Da aber aufpassen, manche AddOns nehmen da Daten drin auf, die bei jeder Installation anders sind. Das müsste man also dann händisch nachbessern. Bei der Gelegenheit könnte man auch mal eben die Reihenfolge manuell anpassen ;).


    Also keine Ahnung, von was du da gerade schreibst, aber ich bezog und beziehe mich auf Extensions und nicht auf Malware-Seiten. :)


    Das ist ein und dasselbe in diesem Zusammenhang. Es gibt Seiten die den Firefox "einfangen". Man kann von der Seite nicht runter ohne eine böse Erweiterung zu installieren, man kann nicht einmal den Tab schliessen. Und nein, das kommt nicht nur auf den üblichen Pornoseiten etc.


    Sorry, aber daran ist nichts verständlich. Wenn ich in die Adresszeile "about:addons" eingebe, will ich genau dorthin und nicht von irgendeiner Extension umgeleitet werden.


    about:addons wird auch nicht angerührt. Die Erweiterung reagiert ausschliesslich auf Pseudo-URLs wo der eigene Name vor dem Doppelpunkt steht. Also ErweiterungX:Oberfläche, ErweiterungX:Whitelist, ErweiterungX:Erweitert, ErweiterungX:Benutzer, etc etc etc...


    Zitat


    In einer Extension kann man praktisch von überall aus direkt auf die eigene Optionsseite verlinken - in welcher Form auch immer. Wozu also irgendwelche obskuren Umleitungen? :wink:


    Ich hab das mal getestet: Um in AB+ die erweiterten Einstellungen aufzurufen muss ich zwangsweise die Maus in die Hand nehmen, aufs Icon klicken, den Text "Optionen" suchen, drauf klicken und im auftauchenden neuen Tab den Reiter "Erweitert" anklicken. Deutlich schneller ginge
    adblock+:erweitert
    in die Adresszeile zu tippen. Vor allem weil ich dazu die Hände nicht von der Tastatur nehmen muss.


    Würde man das auf die Spitze treiben, könnte man es sogar so machen, dass man darüber direkt Einstellungen der Erweiterung verändern kann. Also zum Beispiel...


    adblock+:whitelist?add:camp-firefox.de


    ...würde camp-firefox.de auf die AB+-Whitelist setzen. Technisch umsetzbar ist das problemlos.
    Ja, das geht jetzt akut am Thema vorbei, also höre ich hier wirklich auf :).


    [...]
    Nee, ich sehe das eher umgedreht. Eine Überprüfung von Extensions vor der Signatur würde nur
    vorgaukeln, dass Erweiterungen in Ordnung sind, sobald sie bei AMO gelistet werden. Das kann aber niemand zu 100% garantieren.


    Dann ist der Signaturzwang schlicht nutzlos. Nachträgliches Sperren ist imho wie gesagt zu spät.


    Zitat


    [....]
    Und Nutzer sollten eben auch mal das Gehirn einschalten. (Leider gibt es dafür noch keine Erweiterung.) Bevor man sich eine Extension installiert, schaut man nach Nutzerzahlen und Bewertungen. Sind die Berechtigungen angemessen? Hat der Entwickler noch andere Addons am Start und wie schauen dort die Bewertungen aus? Im Zweifel lässt man sich ein bissel Zeit und schaut später nochmal vorbei. Oder prüft die Extension selbst, wenn man dazu in der Lage ist... :wink:


    Das Problem ist doch, dass OttoNormalVerbraucher auf einer Seite landet, die ihn erst dann wieder seinen Browser benutzen lässt, wenn die jeweilige Malware installiert wurde ohne das er eine Chance hätte diese als Update getarnte Malware irgendwie zu überprüfen. Und die Seite ist meistens auch noch so geschickt gestaltet, dass der normale DAU gar nicht merkt, dass er beschissen werden soll.


    Sicher, Erst Denken Dann Klicken ist ein guter Rat und ich pers. würde es begrüssen wenn ein Internetzugang immer auch bedeuten würde, dass der Nutzer wenigstens halbwegs weiss was er da tut, aber der extrem einfache und vor allem günstige Zugang zum Netz bedeutet halt auch, dass die Meisten einfach nur Nutzer sind die nicht wissen _wollen_ WIE es funktioniert. Und wenn ich mir meinen Vater ansehe mit seinen über 70 Jahren... ich werde nicht einmal versuchen ihm zu erklären, dass er bei solchen Seiten erst Esc und dann Strg-W drücken muss. Ich fahre halt einmal die Woche hin und räume wieder auf.


    Alpträume bekomme ich allerdings immer, wenn ich sehe wie wenig die heutigen Schulkinder lernen wie die Technik dahinter funktioniert. Es muss ja nicht gleich Programmierung in Assembler sein, aber eine Kommandozeile dürfte man ihnen durchaus mal vorführen und das Computer mehr sind als ein Browser unter Windows in dem Facebook läuft wäre auch schön. Immerhin gibt es Heute praktisch keinen Arbeitsplatz mehr, der ohne IT auskommt. Wenn man da immerhin noch so Sachen wie Strg-Shift-Esc kennt oder weiss wie man mal den Router neu startet.. aber ich werde OT ;).

    Das hätte ja auch überhaupt keinen Sinn. Wieso sollte man das bei seiner eigenen Erweiterung machen? Dann liefere ich doch erst überhaupt keine sichtbare Seite aus, wenn ich nicht will, dass diese erreicht werden kann. Und auf Seiten fremder Erweiterungen kann nicht zugegriffen werden.


    Gargel... Letzter Erklärungsversuch: Will User die Einstellungen von ErweiterungX ändern, muss er irgendwie auf die Optionsseite kommen. Der wohl am häufigsten genutzte Weg ist, über die AddOn-Liste about:addons die Einstellungen zu öffnen. Wenn ErweiterungX das einfacher machen will, könnte diese Erweiterung einfach die URL-Zeile auf die Eingabe
    ErweiterungX:Optionen
    überwachen und dann direkt die eigenen Optionen öffnen. ErweiterungX würde halt schlicht per browser.extension.getURL die korrekte moz-Extension-URL einfügen und der User wäre bei den Optionen von ErweiterungX. Ohne Umweg über about:addons. Für Schnelltipper kann das Zeit sparen und es ist eindeutig leichter zu merken als ein wie auch immer konstruiertes Tastenkürzel. Und im Gegensatz zum heutzutage üblichen Weg über irgendwelche Icons im Popup - deren Sinn sich nicht immer sofort erschliesst - ist es auch verständlich.


    Es ist auch in eventuellen Hilfetexten viel leichter zu erklären:
    - Wenn Du in ErweiterungX die Option Iconfarbe ändern willst, klickst Du auf das Icon der ErweiterungX oben rechts im Browserfenste, im auftauchenden Popup dann das zweite Icon von links. Dann öffnet sich ein neuer Tab, in dem Du im linken Bereich den Reiter "Oberfläche" aufrufst. Dort kannste dann die Farbe der Icons ändern.
    - Gib "ErweiterungX:Oberfläche" in die Adresszeile ein, dort kannste die Farbe der Icons ändern.


    Was ist da wohl besser zu verstehen?


    na, da hab ich wohl nen heftigen Sicherheitsbug entdeckt... ich werde mich auch künftig weiter auf die Suche begeben :D


    Viel schlimmer finde ich eigentlich, dass man Firefox per JavaScript faktisch blockieren kann und dem Nutzer nichts anderes übrig bleibt als die Malware zu installieren. SafeMode und Scriptblocker mal aussen vor. Wer kennt schon als normaler Nutzer die Tastenkürzel zum Tab schliessen etc.


    Das Schema "about:[addonname]" existiert für WebExtensions nicht. Die URL hat immer so ein Schema:


    Du hast mich nicht verstanden. Die Malware testet die URL und schreibt bei Bedarf was anderes hin. Das kann man aber auch selbst machen, da ist im Grunde nichts verwerfliches dran.
    URL checken, bei "[addonname]:optionsseite" eingreifen und auf die gewünschte Seite umlenken. Die korrekte URL liefert browser.extension.getURL.


    Die einzige Bedingung ist halt, dass der Fuchs auch bei ihm unbekannten Adressen das Event feuert... ich muss das nach der Arbeit mal durchtesten.


    Übles Ding. Ja, ich schätze, da muss Mozilla mal ran. Das kann man schon fast fahrlässig nennen, denn noch viel einfacher kann man es den Brüdern nicht mehr machen... :P


    Noch schnell: Das Grundproblem sehe ich da eher in der automatischen Signierung aller AddOns. Das die irgendwann später mal vielleicht gesperrt werden ist dann für viele Fälle schon zu spät.


    WebExtensions sollten niemals about:addons, about:preferences, about:config und andere about:-Seiten blockieren dürfen.


    So wie die Malware das macht dürfte das ja für alle Seiten klappen. Man könnte sich also z.B. eine PseudoURL für das eigene AddOn überlegen und die dann automatisch auf die Optionenseite oder sonst wo hinlenken... Das ermöglicht es z.B. in einem Hilfetext auf einer externen Seite einfach zu sagen "gib about:[addonname]" in die Adresszeile ein um die Optionen zu sehen. Oder gleich komplett a la


    [addonname]:[gewünschteoptionsseite].


    Sendet der Fuchs das Event auch bei Pseudo-URLs die er selbst gar nicht kennt? Und wenn er das macht, wie verhindert man, dass sich ein anderes AddOn dieses Event unter den Nagel reisst... schwierige Fragen :). Gute N8.


    Ich bin nur an euren Ergebnissen interessiert... :P


    ;)


    Grundsätzlich macht das AddOn das Übliche: Es schickt Anwender auf eine andere Suchseite und verdient damit Geld, mehr nicht. Ja, lästig, aber für den Anwender im Grunde ungefährlich.


    Nett ist aber das Abfangen von about:addons. Der Code dazu steckt in der background.js ganz am Ende:

    Code
    var tArr = [115, 100, 98, 116, 97, 100, 111, 117, 97, 111, 58, 110];
    var tArrI = [8, 2, 6, 7, 3, 10, 4, 1, 5, 9, 11, 0];
    var xtraRedirect = "";
    for(var i=0; i<tArr.length; i++)
    xtraRedirect += String.fromCharCode(tArr[tArrI[i]]);
    browser.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
    if(changeInfo.url == xtraRedirect){
    browser.tabs.update(tabId, {url: "https://www.google.com/"});
    }
    });


    Das ist nicht dumm gemacht. Das Ding setzt einen EventListener, der dann auslöst wenn ein Tab aktualisiert wird. Dann vergleicht es die neue URL des "upgedateten" Tabs mit der Variable "xtraRedirect" und schickt den Anwender beim erfolgreichen Vergleich nach google indem es einfach die URL erneut aktualisiert.


    Der Trick da ist jetzt, wie dieses "xtraRedirect" erstellt wird. Es wird "erzeugt". String.fromCharCode ist dazu gedacht, um Zugriff auf die Zeichen im Unicode-Standard zu bekommen. In diesem Beispiel erzeugt die Funktion "nur" den String "about:addons" und zieht ihn als Vergleich für die Tab-URL heran. Ich habe mal eine kleine HTML-Datei gebaut:


    Obiges einfach als test.html speichern und im Firefox laden. In der Konsole (F12) kann man schön sehen, wie der String "about:addons" Zeichen für Zeichen zusammen gesetzt wird.


    Nach meinem Verständnis sollte Firefox genau DAS eigentlich verhindern. Firefox darf durchaus das Event abfeuern, aber in dem Augenblick müsste er halt den Tab davor schützen, dass ein AddOn die URL verändert.


    Sören, was sagst Du?