Und vergiss in dem Bugreport anders als hier nicht einen Beispiellink zu benennen, damit andere nachvollziehen können, wovon du sprichst.
Beiträge von Sören Hentzschel
-
-
Die AMD/ATI-Erfahrung ist aber wirklich Zufall / Pech. Mein Zweitcomputer läuft mit AMD-Karte und das seit Jahren ohne auch nur ein einziges Problem in diesem Zusammenhang, Apple ist bei den Macbooks nun auch von nVidia auf AMD umgestiegen. Und ich weiß, dass Firefox auch eine Zeit lang arge Probleme mit bestimmten Intel-Treibern hatte. Was Probleme macht, sind wirklich immer ganz bestimmte Kombinationen von Hard- und Software, es ist eigentlich nie pauschal alles von Chipsatzhersteller X.
Das Betriebssystem ist zumindest eine Variable, die in dem Ganzen mit drin hängt. Das Betriebssystem alleine wird die Probleme aber auch nicht verursachen.
-
Das sollte in der Tat etwas relativiert werden: ja, AMD-Karten bzw. deren Treiber haben ihre Probleme, aber das sieht mit nvidia und Intel nicht wirklich besser aus. Grafikkarten sind grundsätzlich ein elendiges Thema.
-
Den vermeintlichen Gesetzesverstoß belegst du uns bitte noch mit dem entsprechenden Paragraphen? Danke.
-
Zitat von Boersenfeger
Ein Bug ist bereits angelegt
https://bugzilla.mozilla.org/show_bug.cgi?id=1182147
Eigentlich sollte mit Firefox 40.0 dies gefixt sein..
https://bugzilla.mozilla.org/show_bug.cgi?id=1182147#c16Da steht exakt das Gegenteil. Nämlich, dass dies in Firefox 40 nicht behoben worden ist.
-
Innerhalb von actionbutton.ActionButton muss es weiterhin "icon" heißen, nicht "this.icon", die anderen Attribute haben ja auch kein "this". Nur im onClick-Handler benötigst du das.
-
Ja, der Teil ist nun richtig.
Zum anderen Teil, von der Syntax her wie folgt. Aber ich habe nicht überprüft, ob es funktioniert, nur die Syntax repariert.
Code
Alles anzeigenif (false === prefs.get(config1)) { prefs.set(config1, true); prefs.set(config2, true); icon: { '18': data.url('enabled-18.png'), } } else { prefs.set(config1, false); prefs.set(config2, false); icon: { '18': data.url('disabled-18.png'), } }
Wobei ich nicht glaube, dass das so funktionieren kann. Mach aus "icon" mal "this.icon", denn auf diese Weise hattest du es ja vorher bei Verwendung der alten API auch mit dem "contentURL"-Attribut umgesetzt.
-
Ich hab deinen Beitrag mal in das richtige Thema verschoben.
Ja, da ist tatsächlich ein Syntax-Fehler im Add-on. Nach dem icon-Attribut fehlt das Komma. Weiter unten stimmt auch was nicht:
Code
Alles anzeigenif (false === prefs.get(config1)) { prefs.set(config1, true); prefs.set(config2, true); icon: { '18': data.url('enabled-18.png'), } else { prefs.set(config1, false); prefs.set(config2, false); icon: { '18': data.url('disabled-18.png'), } } }
Ein "else" kann nur auf ein "if" folgen, nicht auf ein Objekt wie in dem Fall das "icon"-Attribut. -
Nicht unbedingt würde man dann mehr in diesem Forum lesen. Wie viele Menschen mit einem Windows 10-Tablet kennst du? Ich persönlich keinen einzigen.
Windows-Tablet (statt Android oder iOS wie die meisten Tablets), und dann auch noch das ganz neue Windows 10, außerdem grenzen wir weiter ein auf deutschsprachige Nutzer und Firefox-Nutzer müssen es sein, auch noch welche, die bei Problemen den Weg in dieses Forum suchen und auch finden. Ich denke, wir sprechen hier von einer eher überschaubaren Nutzergruppe. Ich kenne den Tabletmodus nicht. Aber selbst wenn er wirklich "unbenutzbar" wäre, würde das wohl nicht viele Anfragen in diesem Forum generieren.
-
Hm, denke nicht, dass das mit dem Add-on zu tun hat. Ich teste deinen Code mal, sobald ich wieder Zugriff auf meinen Entwicklungs-Computer habe.
-
Siehst du denn irgendwelche Fehler in der Browserkonsole (nicht Webkonsole!)?
-
'enabled-18.png' : 'disabled-18.png
und die folgenden drei Zeilen sind auch keine valide Syntax.
Wenn du in deine Zeile weiter oben schaust:
let icon = true === prefs.get('media.windows-media-foundation.enabled') ? 'enabled.png' : 'disabled.png';
Das ist allgemein formuliert:
let <variblenname> = <bedingung> ? <wenn erfüllt> : <wenn nicht erfüllt>
Ich denke, deswegen hast du 'enabled-18.png' : 'disabled-18.png' geschrieben, aber <wenn erfüllt> : <wenn nicht erfüllt> ist keine gültige Syntax, da das nur ein halbes Konstrukt ist und nicht ohne Bedingung und das Fragezeichen funktionieren kann.
Es wäre auch nicht schön, viermal die gleiche Bedingung abzufragen. Also schlage ich sowas vor:
Code
Alles anzeigenif (prefs.get('media.windows-media-foundation.enabled')) { let icon18 = 'enabled-18.png'; let icon32 = 'enabled-32.png'; let icon36 = 'enabled-36.png'; let icon64 = 'enabled-64.png'; } else { let icon18 = 'disabled-18.png'; let icon32 = 'disabled-32.png'; let icon36 = 'disabled-36.png'; let icon64 = 'disabled-64.png'; }
-
Das passt schon, dass du noch die alten about:config-Einträge verwendest. Eine Baustelle nach der anderen ist zielführender als alles auf einmal zu ändern und dann nicht zu wissen, welche Änderung nun das Problem ist, wenn etwas nicht geht.
Ich würde sagen, es liegt an deniem contentURL-Attribut, das gibt es in der Widget-API, aber der ActionButton kennt ein solches Attribut nicht. Siehe verlinktes Code-Beispiel, du benötigst ein Attribut mit dem Namen icon, dem du verschiedene Größen mitgibst. In meinem Beispiel siehst du 18px, 32px, 36px und 64px als Größen. 18px ist für die Symbolleiste, 36px entsprechendes für HiDPI-Bildschirme, 32px ist für das Menü und das Anpassen-Fenster, 64px entsprechendes für HiDPI-Bildschirme.
-
Zur Frage mit den bereits installierten Erweiterungen: nicht signierte Add-ons werden ab Firefox 41 standardmäßig und ab Firefox 42 ohne Möglichkeit zum Aktivieren deaktiviert, wenn diese schon installiert sind. Es wird also nicht nur die Installation neuer, nicht signierter Add-ons verhindert.
-
Schau mal hier rein:
http://git.agenedia.com/firefox-add-on…src/lib/main.jsDu findest dort ein solches Konstrukt:
Auf diese Weise hatte konnte ich ältere und neuere Firefox-Versionen unterstützen, im nächsten Update wird es nur noch den ActionButton-Code geben. Aber du siehst an dem Beispielcode die Unterschiede zwischen beiden APIs, beide Blöcke machen das Gleiche, aber in dem einen Fall ist es die Widget-API, in dem anderen der ActionButton. Der ActionButton integriert sich halt wesentlich besser in Firefox 29 aufwärts. Daran kannst du dich orientieren. Du brauchst nicht beide Blöcke, auch das try und das catch kannst du weglassen, du brauchst nur den Teil innerhalb von try { }.
require('sdk/ui/button/action').ActionButton({
// Code
});kannst du natürlich auch wie die anderen Modulimporte so schreiben:
const actionbutton = require('sdk/ui/button/action');
und dann:
actionbutton.ActionButton({
// Code
});Ich hatte das an dieser Stelle so geschrieben, weil ich nur den relevanten Teil importieren wollte. Aber wenn du dann eh nur die ActionButton-API nutzt, ist das ja kein Thema. Kannst es aber auch genauso schreiben wie es in dem Beispiel ist, ist eine Geschmacksfrage, das funktioniert weder besser noch schlechter.
Nachtrag: ich sehe gerade, dass in meinem Add-on in beiden Blöcken eine vollkommen unterschiedliche ID steht. Schön, dass mir dieser Fehler nach über einem Jahr auch mal auffällt.
Aber nicht schlimm, das hat keine Auswirkungen auf die Funktionalität.
-
Diese Option sollte plattformunabhängig sein, jap.
Weißt du, wie du das Add-on umschreiben musst, damit es wieder funktioniert?Der Weg über Python zum Kompilieren des Add-ons ("cfx") ist übrigens auch nicht mehr der bevorzugte Weg, stattdessen ist JPM der neue bevorzugte Weg. Aber darum kann man sich später auch noch kümmern. Erst einmal sollte das Add-on wieder laufen.
-
Die Widgets-API wurde entfernt zugunsten der mit Firefox 29 und Australis eingeführten UI-APIs. Seit dem war die Widgets-API deprecated und wurde nun vor kurzem entfernt. Der ActionButton ist vermutlich das, was du jetzt nehmen würdest:
https://developer.mozilla.org/en-US/Add-ons/…h-Level_APIs/ui
Ein anderes Problem ist, dass es den Schalter media.windows-media-foundation.enabled ab Firefox 42 überhaupt nicht mehr gibt. Hintergrund dazu:
-
Und es gibt auch Anwendungen, die intern quasi den Internet Explorer nutzen. Vor vielen Jahren war das beispielsweise bei ICQ der Fall. Das ist so lange her, dass es gut möglich ist, dass das nicht mehr zutrifft, ich nutze außerdem eh einen anderen Client, ich will nur sagen, dieses Szenario gibt es und auch dafür empfiehlt es sich, dass der Internet Explorer aktuell ist. Man sollte grundsätzlich *alles* aktuell halten, was auf dem System installiert ist, auch wenn man meint, es nicht zu nutzen. Alleine die Existenz auf dem System ist bereits Grund genug, die Updates mitzunehmen.
-
Aktuell immer hier:
https://wiki.mozilla.org/Electrolysis#ScheduleAktuellster Stand bezüglich Beta 42 ist, dass es noch keine Entscheidung gibt, wie das gehandhabt werden wird. Aber ich vermute mal, dass es auch wieder zunächst einen Opt-in geben wird, ehe man e10s standardmäßig aktiviert. Auf jeden Fall kann man nicht wirklich e10s aktivieren, bevor es das nicht in den entsprechenden Release-Zweigen gelandet ist. Ich weiß nicht, ob man es über about:config-Schalter teilweise aktivieren kann (was de facto eine unvollständige und damit fehlerhafte Aktivierung wäre), aber es gibt Codepfade, die sind per Compile-Flag auf Nightly und Developer Edition beschränkt. Nicht zuletzt auch, weil Abhängigkeiten von anderen Plattform-Features bestehen, die auch in der Betaversion vorhanden sein müssen.
-
// Zumindest freuen die sich gemeinsam mit mir.