Inkompatibilitäten zwischen Addons und UserChromeJS-Skripten

  • Ich setze das Folgende mal in ein eigenes Thema, so dass andere Leute eventuelle Beobachtungen ergänzen können. Ich habe das neue Thema in „Anpassungen“ erstellt, weil ich denke, dass es im Zweifelsfall leichter wäre, die Skripte anzupassen statt die Autoren zu einer Änderung zu bewegen.

    Ich musste feststellen, dass einige userChrome.js-Skripte nicht (mehr) mit einigen Addons kompatibel sind. Sind die Addons deaktiviert, funktionieren die Skripte noch.

    In meinem Fall sind es die Skripte animationtogglebutton_movable (Version v. 31.10.2014) und clearcachebuttonmovable (Version v. 25.10.2014) (möglicherweise wäre auch clearcache in derselben Version betroffen?) sowie die Addons Print Edit und Tab Scope. Während ich zur Not auf Print Edit verzichten könnte (aber andere vielleicht nicht …), ist Tab Scope für mich essentielle, täglich genutzte Funktionalität.

    Ich weiß leider überhaupt nicht, wo ich da ansetzen soll, meine Javascript-Kenntnisse sind bestenfalls als rudimentär zu bezeichnen, und so wäre es schön, wenn jemand helfen könnte.

  • Teste zum Cache leeren dieses Skript:

  • Zitat von aborix

    Teste zum Cache leeren dieses Skript:

    Ja, das funktioniert. Also, es ist ein Symbol zu finden – witzigerweise nicht im Einstellungsfenster, sondern gleich an der Stelle, wo ich es ursprünglich bereits hingesetzt hatte. Und … kurz mal testen … ja, der Cache wird auch gelöscht. DANKE! Wäre das Skript schon mal repariert. Kannst Du erkennen, ob Clearcache auch betroffen wäre?

    Eine Lösung für den AnimationToggleButton zu finden ist wohl nicht so leicht?

  • Ich habe ClearCache bisher nicht mit den betreffenden Erweiterungen getestet und ohne Test kann ich nichts sagen. Hast du es mal getestet?

    Teste für den Animations-Button dieses Skript:

  • Zitat von aborix

    Ich habe ClearCache bisher nicht mit den betreffenden Erweiterungen getestet und ohne Test kann ich nichts sagen. Hast du es mal getestet?

    Nein, hatte ich nicht. Ich hatte gehofft/gedacht, dass Du das evtl. relativ schnell erkennen kannst, wenn Du dir die anderen Skripte ansiehst.

    Zitat

    Teste für den Animations-Button dieses Skript:

    Nachdem ich erst herausfinden musste, dass zwischendurch das Problem auf dem Stuhl vor dem Bildschirm saß (deswegen stundenlanges vergebliches Testen der vermeintlichen Erweiterung, die nun schuld sein musste, und erst heute eine Antwort), funktioniert das Skript nun auch! Cooool!!!11 Nochmal allerherzlichsten Dank!

  • Gern geschehen!

    Die Buttons in AnimationToggleButtonMovable und ClearCacheButtonMovable werden auf gleiche Art erzeugt, in ClearCache ist es etwas anders. Darum konnte ich das Funktionieren schwer einschätzen.

    Ich habe nun die Skripte mit aktivem Print Edit und Tab Scope getestet. Bei mir funktionieren allerdings alle drei.

    Die beiden neuen Skripte sind wieder anders aufgebaut, Details stehen in
    MDN - CustomizableUI.jsm.

  • Hallo aborix,

    magst du clearcachebuttonmovable aus Beitrag #2 noch so anpassen, dass auch das Menü unter "Extras" noch erscheint? Und dann fände ich es super, wenn du clearcachebuttonmovable sowie animationtogglebutton_movable wieder irgendwo hochlädst, sodass ich nicht mit den Leerzeichen am Anfang der Zeilen zu kämpfen habe.

    Die anderen Anpassungen lade ich nun hoch (wetterfuchsbutton und saveuserchrome).

  • Ja, mache ich gerne.

    http://www.xup.in/dl,75225265/AnimationToggleButton.uc.js/

    http://www.xup.in/dl,65884740/ClearCacheButton.uc.js/

    Der Cache ist seit Fx 32 anders aufgebaut, das Skript funktioniert dennoch auch in Fx 31esr.

    Ich finde, das "Movable" in den Namen könnten wir auch weglassen.
    Wir haben sonst noch mehrere bewegliche Buttons, die das auch nicht im Namen haben.
    Wenn im Readme steht, dass der Button frei positionierbar ist, sollte das reichen.

  • Danke, ich hoffe, dass ich jetzt alle erwischt habe, die Steffen auf GitHub vermisste.

    Umbenennen ist ein wenig schwieirg, bzw. ich weiß nicht, wie ich die Historie dann von Datei A auf Datei B übertragen kann (ich bin eben kein ausgefuchster Git-Benutzer).

  • Danke, das (git mv Ordneralt Ordnerneu und dann im Ordnerneu noch git mv DateiAlt DateiNeu) habe ich jetzt probiert und anscheinend doch falsch gemacht. Ist aber auch egal, müssen wir hier nicht weiter erläutern.

  • InspectElementModY ist nicht kompatibel mit InspectorWidget.

    Das ist insofern schade, weil in der jüngsten Version von InspectorWidget die Möglichkeit eingeführt wurde, per Tastenkombination+Mausklick auch dort den DOM-Inspector zu öffnen, wo kein (weiteres) Popupmenü geöffnet werden kann. Auf das Addon könnte allerdings verzichtet werden, wenn man diese Möglichkeit in das Skript Contexpector einbauen könnte. Der Sinn wäre dann, dass man mit InspectElementModY, das ja nur per Tastenkombi gestartet wird, Firebug oder den internen Inspector öffnet, mit Contexpector den DOM-Inspector. Derzeit ist es sinnvoll, beide Varianten nutzen zu können, sie ergänzen sich.

    Oder man baut, wenn möglich, in InspectElementModY die Möglichkeit für zwei verschieden Tastenkombinationen ein …

  • Zitat von Speravir


    [...] per Tastenkombination+Mausklick auch dort den DOM-Inspector zu öffnen, wo kein (weiteres) Popupmenü geöffnet werden kann.


    Für Einträge von Popupmenüs geht das mit dem Skript Popup Inspect.

    Wenn ich am Ende des Skripts noch diese Zeile hinzufüge:

    Code
    document.addEventListener("click", EventListener, true);


    funktioniert es anscheinend überall, insbes. auch in der Adress- und Suchleiste und beim Vor- und Zurück-Button.

    Die Tastenkombination können wir auch ändern.

    Einmal editiert, zuletzt von aborix (1. Juni 2015 um 06:36)

  • Zitat von aborix

    Für Einträge von Popupmenüs geht das mit dem Skript Popup Inspect.

    Wenn ich am Ende des Skripts noch diese Zeile hinzufüge:
    […]

    Aah, stimmt. Dann teste ich das mal ein wenig.

    Funktioniert bestens! Jetzt müsste nur noch eine andere Tastenkombination gefunden werden, um es gemeinsam mit InspectElementModY einsetzen zu können. Vielleicht dieselbe wie bei InspectorWidget? Das wäre dann STRG+SHIFT+<linker Mausklick>. Oder nur SHIFT, so dass PopupInspect mit linker Maustaste und InspectElementModY mit rechter Maustaste?

  • Eine Tastenkombination mit Linksklick ist insofern schlecht, als die beim jeweiligen Element übliche Funktion des Linksklicks sich nicht immer verhindern lässt. Das ist z.B. bei den Einträgen im Datei-Menü so.
    Auch InspectorWidget hat diese Schwachstelle.

    Da das Skript jetzt nicht mehr zu unterscheiden braucht, ob man in einem Popupmenü oder anderswo klickt, konnte ich es vereinfachen.
    Die Tastenkombination ist jetzt mal Strg+Rechtsklick.

    Code
    (function() {
    	addEventListener('click', function(event) {
    		if (event.button == 2 && event.ctrlKey) {
    			event.preventDefault();
    			event.stopPropagation();
    			openDialog('chrome://inspector/content/', '_blank', 'chrome, all, dialog=no', event.originalTarget);
    		};
    	}, true);
    })();


    Nachtrag:
    Ich sehe gerade, in der Skriptsammlung gibt es bereits ein Skript mit genau der gleichen Funktion:
    Inspect Element

  • Zitat von aborix

    Eine Tastenkombination mit Linksklick ist insofern schlecht, als die beim jeweiligen Element übliche Funktion des Linksklicks sich nicht immer verhindern lässt. Das ist z.B. bei den Einträgen im Datei-Menü so.
    Auch InspectorWidget hat diese Schwachstelle.

    Ach so.

    Zitat

    Da das Skript jetzt nicht mehr zu unterscheiden braucht, ob man in einem Popupmenü oder anderswo klickt, konnte ich es vereinfachen.


    (Bin noch nicht zum Testen gekommen.)

    Siehe Update am Ende.

    Zitat

    Nachtrag:
    Ich sehe gerade, in der Skriptsammlung gibt es bereits ein Skript mit genau der gleichen Funktion:
    Inspect Element

    Boah, da habe ich den Wald vor lauter Bäumen (sprich Skripten mit sehr ähnlicher Funktion) nicht mehr gesehen *). InspectElementModY ist ja, wie der Name sagt, eine modifizierte, weiterentwickelte Version von InspectElement. Es müsste also in einem vom beiden Skripten die Tastenkombi geändert werden.

    *) Oder hier eher: die einzelnen Bäume vor lauter Wald.

    Apropos: Hast Du zufällig eine Idee zu meinem Punkt 1 in Re: userChrome.js Scripte für den Fuchs (Diskussion), Beitrag Nr. 33?

    Update:
    Ich habe den Code in eine neue Datei hineinkopiert, diese ClickInspect genannt, da ja nix mehr mit Popup ist und …

    funktioniert ebenfalls prima!

    Edit: Tippfehler korrigiert.