X-Mozilla-Status(2) erklärt :: Mozilla-Features :: Mozilla gegen Antivirus :: Mozilla-Links :: Mozilla-Applikationen
Ich habe diese Seite „Mozilla-Applikationen“ genannt wobei „Applikation“ jede Applikation meint, die auf dem Mozilla.org-Framework beruht und läuft. Nicht daß ich größenwahnsinnig bin, aber ich weiß nicht, was ich in der Zukunft noch alles schreiben werde und möchte die Seite nicht irgendwann umbenennen müssen. Momentan geht's hier nur um Erweiterungen (oder genauer lächerliche drei Stück), die den Erweiterungsmechanismus von SeaMonkey, Firefox und Thunderbird nutzen.
Durch eine neue Sicherheitsfunktion (siehe Bug 378216) werden Erweiterungen die kein sicheres Update erlauben in Mozilla-Applikationen aus dem Trunk seit 2007-09-04 (d. h. auch in Firefox 3 sowie den kommenden Thunderbird 3 und Seamonkey 2) deaktiviert.
Seit 17. September 2007 steht ein Tool zur Verfügung, welches es Autoren von Erweiterungen ermöglicht, den kompletten Updatevorgang über Signaturen abzusichern. Somit ist ein „sicheres Update“ auch ohne SSL-gesicherte Website möglich. Um den neuen Mechanismus benutzen zu können ist es allerdings nötig, daß Sie einmalig per Hand (also deinstallieren und neu installieren) auf die jeweils aktuelle Version meiner Erweiterungen updaten. Bitte entschuldigen Sie diesen umständlichen Weg.
Sollten Sie eine Version von FF, TB oder SM verwenden, unter der Erweiterungen mit „unsicherem Update“ nicht mehr funktionieren, sie diese „unsichere Version“ jedoch weiterhin verwenden wollen (oder müssen), ist es nötig, das Pref "extensions.checkUpdateSecurity" auf "false" zu setzen – dieses Pref muß neu angelegt werden!
GetFileSize
GetFileSize ist eine Erweiterung für Mozilla und Firefox, die Dateigröße und weitere nützliche Infos zu Dateien hinter beliebigen Links liefert. Und es ist noch etwas anderes, nämlich geklaut – also zumindest die Idee. UnH Solutions bietet mit „Get File Size“ ein externes Programm, das vorgemacht hat was mein GetFileSize kann.
Und warum mach' ich das dann nochmal? Es gibt zwei Gründe:
1. Es ist eine nette Übung.
2. Das Original ist zwar Freeware, aber nur binär und nur für Windows verfügbar und läuft nur mit dem IE und Opera.
Die Grundlage bildet wie bei INFOCon-Status auch die Funktion XMLHttpRequest() (englisch), nur ist der Code und das UI hier dann doch aufwendiger.
Das einzige das GetFileSize im Netz tut ist einen HEAD-Request abzusetzen und die empfangenen Infos auszuwerten. Ein Beispielrequest sieht so aus:
HEAD /files/hhgttg4pdb.zip HTTP/1.1 Host: www.eyrich-net.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; de-DE; rv:1.8a5) Gecko/20041124 Accept-Language: de,en;q=0.5 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive
Die Parameter Keep-Alive, Accept-Charset sowie genutzte HTTP-Version sind dabei von den globalen Browsereinstellungen abhängig. Durch die Verwendung von HEAD statt GET werden nur diese Headerdaten übertragen, nicht das File selbst – auch nicht teilweise (zumindest wenn der Server dem HTTP-Standard entspricht).
Installation & Benutzung
Die Installation sollte sehr einfach sein. Sie können die Erweiterung downloaden oder direkt installieren: GetFileSize-0.2.4.xpi (zum Downloaden Rechtsklick und „Ziel speichern unter…“).
Benutzern der Suite wird sie im aktuellen Profil installiert. In Firefox wird der Erweiterungen-Manager benutzt – das sichert eine saubere Installation und Deinstallation und zumindest momentan eine Installation ins Profil.
Die Extension wird mit Strings in Englisch und Deutsch ausgeliefert. Sollten Sie Übersetzungen für weitere Sprachen anbieten können, würde ich mich über eine Mail freuen.
Die Benutzung ist ebenfalls einfach, aber da es sich um Version 0.2.4 handelt, gibt es sicher noch Anlaß zu Verbesserungen. Die Einstellungen möchte ich auch erklären. Erfolgt ein Rechtsklick auf einem Link, taucht im Kontextmenü der neue Eintrag „GetFileSize“ auf. Ein Klick darauf schickt dann die Anfrage zum aktuellen Link an den Server los und nach erfolgter Antwort sollte nebenstehender Dialog auftauchen.
Er enthält die Angaben zur gesamten URL, die auch geändert werden kann. Mit dem daneben befindlichen Button wird es später hoffentlich mal möglich, den Download der Datei direkt zu starten.
Die Informationen umfassen den Dateinamen, die Größe – umgerechnet in KiB und MiB –, MIME-Dateityp, das Datum der letzten Änderung und die ungefähre Downloaddauer. Letztere erscheint nur wenn die Angabe in den Einstellungen aktiviert wurde.
Einstellungssache
Die Einstellungen umfassen Änderungen bzw. Aktivierung der Ausgabe zur letzten Änderung sowie ungefähren Downloaddauer.
Letzte Änderung: Die Angabe im HTTP-Header „Last-Modified“ sieht normalerweise so aus „Sat, 01 Jan 2005 11:03:22 GMT“. Also erstens in Englisch (wobei das nur am Wochentag und manchmal dem Monat merkbar ist) und zweitens in der Zeitzone GMT (also UTC, siehe Wikipedia: Koordinierte Weltzeit), die mehr oder weniger von der Zeitzone des Benutzers abweicht.
Diese Einstellung bietet nun die Möglichkeit, die vom Server gelieferte Zeitangabe bei der Ausgabe um einen bestimmte Anzahl Stunden zu korrigieren. Zwar könnte die Extension auch selbständig auf die Zeitzone des Systems korrigieren, aber die manuelle Angabe bietet eine größere Flexibilität. Die Angabe kann im Bereich von -12 bis +12 Stunden liegen. In der Ausgabe wird die Korrektur dann beispielsweise als „GMT-0800“ (für Los Angeles) angezeigt.
ungefähre Downloaddauer: Manche Anwender bevorzugen es, die ungefähre Downloaddauer mitangegeben zu bekommen. Große Downloadseiten listen dann ein paar Zeiten für 14.400er Modem bis T1-Kabel auf. Mit der Angabe die Sie hier machen, zeigt GetFileSize dann auch sowas an. Wer sich also nicht vorstellen kann, wielange die Übertragung der 2,35 MiB-Datei wohl brauchen wird, stellt hier beispielsweise die mittleren „81920“ Bytes pro Sekunde, die der eigene 1000er-DSL-Anschluß so durchschnittlich schafft, ein und erhält gleich „30.08 Sekunden“ mit angezeigt.
Die Angabe kann als reine Zahl, aber auch mit dem Zusatz „k“ bzw. „m“ erfolgen. Das wird als Bytes/s, bzw. KiB/s und MiB/s aufgefasst. Die Ausgabe erfolgt aber immer in Bytes/s.
Es ist zu beachten, daß das Ergebnis rein rechnerisch gilt, je nach realer Verbindung also erheblich abweichen kann. Und selbst wenn die Angaben mit der Übertragungsrate Ihrer Anbindung übereinstimmen, kann natürlich ein langsamer Server die ganze schöne Rechnung zunichte machen.
Die gemachten Einstellungen werden im eigenen Zweig „getfilesize“ in den Prefs „doLmodAdj“, „lmodOffset“, „doDlSpeed“ und „dlSpeed“ gespeichert.
History
Version 0.2
- Seit Firefox 1.5 Beta 1 (aka Firefox 1.4) gibt es gContextMenu.linkURL() nicht mehr – das muß jetzt gContextMenu.linkURL heißen. Frühere Firefox und die Suite (SeaMonkey) benötigen noch die alte Form. Die 0.2 enthält jetzt eine Weiche, die das regelt.
Version 0.2.1
- GetFileSize ist jetzt auch mit SeaMonkey 2 – der die gleichen Mechanismen wie Firefox unterstützt – einsetzbar.
Version 0.2.2
- Diese Version unterstützt nun die neuen Mechanismen um den kompletten Updatevorgang per Signaturen abzusichern.
Version 0.2.3
- GFS hatte bisher eventuell kodierte Sonderzeichen (z. B. Umlaute wie %fc für ü) in einer URL dekodiert. Bei der Anfrage wurden diese gemäß HTTP-Standard vom Browser wieder kodiert aber je nach Browsereinstellung in einer anderen Kodierung (z. B. %c3%bc in UTF-8). In solchen Fällen konnte der Server die Datei dann nicht finden und gab 404 zurück. Jetzt wird nichts mehr dekodiert und alles sollte passen.
Version 0.2.4
- Nur eine Anhebung der Versionskompatibilität mit Firefox 3.5.*.
INFOCon-Status
INFOCon-Status ist eine Erweiterung die den INFOCon status des Internet Storm Centers in der Statuszeile des Browsers anzeigt.
Die Idee sie zu schreiben kam als ich heute die Website des ISC besuchte. Obwohl sie schon einige URL und Tools anbieten um Up-To-Date bezüglich es INFOcon-Status' zu bleiben, vermisste ich doch eine einfache und betriebssystemunabhängige Möglichkeit. Mir war die Tinderbox Status Extension des Mozilla-Projekts bekannt und ich dachte, es wäre eine nette Übung diese herzunehmen und daraus meine erste Erweiterung zu basteln.
Installation & Benutzung
Beides sollte sehr einfach sein, aber da es sich um Version 0.1.5 handelt, gibt es sicher noch Anlaß zu Verbesserungen. Sie können die Erweiterung downloaden oder direkt installieren: infoconstatus-0.1.5.xpi (zum Downloaden Rechtsklick und „Ziel speichern unter…“).
Benutzern der Suite wird sie im aktuellen Profil installiert. In Firefox wird der Erweiterungen-Manager benutzt – das sichert eine saubere Installation und Deinstallation und zumindest momentan eine Installation ins Profil.
Die Benutztung sollte auch klar sein. Ein neues Element das „ISC“ und eine von vier Farben im Hintergrund anzeigt wird zur Statuszeile hinzugefügt. Was die Farben bedeuten, können Sie auf der Seite zum INFOCon-Status nachlesen. Ein Klick auf das Element öffnet die ISC-Website im aktuellen Fenster (und Tab).
Der Status wird alle 10 Minuten neu abgefragt. Der Traffic dafür beträgt ca. 800 Bytes, sollte also nicht ins Gewicht fallen.
History
Wow, da ging ja gleich bei der 0.1 noch was schief. Man sollte wohl wirklich nicht auf den letzten Drücker noch die Funktionen umbenennen …
Version 0.1.1
- Eine bei der Umbenennung vergessene Funktion führte dazu, daß der Status nicht im Interval neu abgefragt wurde. Das habe ich in der 0.1.1 gefixt.
- Das Interval ist nicht mehr fünf sondern zehn Minuten. In der Praxis geht die Abfrage aber noch seltener raus da der Server bei der Antwort einen Expires-Header mit einem Datum 15 Minuten in der Zukunft sendet. Mozilla fragt also minimal alle 15 Minuten nach.
- Bei der Installation wird nun eine Update-URL angegeben. Darüber wird Firefox nun immer mit aktuellen Versionsinfos versorgt.
Version 0.1.2
- Das Gelb für Status Gelb war nicht unbedingt als Gelb zu erkennen.
Version 0.1.3
- Das ISC-Feld in der Statusbar wird jetzt in Seamonkey rechts statt links des Security-Icons angezeigt.
Version 0.1.4
- INFOCon-Status ist jetzt auch mit SeaMonkey 2 – der die gleichen Mechanismen wie Firefox unterstützt – einsetzbar.
Version 0.1.5
- Diese Version unterstützt nun die neuen Mechanismen um den kompletten Updatevorgang per Signaturen abzusichern.
Version 0.1.6
- Nur eine Anhebung der Versionskompatibilität mit Firefox 3.5.*.
toggleReplied
Diese Erweiterung fügt die beiden neuen Einträge „als beantwortet“ und „als weitergeleitet“ zu den Markieren-Submenüs hinzu. Dies erlaubt es, diese Status einfach zu setzen oder zu entfernen. Markieren-Submenüs finden sich an drei Stellen: Im Rechtsklick-Kontextmenü im Thread-Panel, im Rechtsklick-Kontextmenü im Mail-Panel und im Nachricht-Menü.
Installation & Benutzung
Sie können die Erweiterung downloaden oder direkt installieren: ToggleReplied-0.2.1.xpi (für < 3.0b2pre und SM < 2.0a3pre, siehe Update) bzw. ToggleReplied-0.3.2.xpi (zum Downloaden Rechtsklick und „Ziel speichern unter…“).
Aus dem Grunde der Einfachheit wird nur der Installationsmechanismus von SeaMonkey ab Version 2 (genauer 2.0a1pre) unterstützt. Seitdem verfügt nämlich auch er über einen AddOn-Manager und beherrscht somit die gleichen Mechanismen wie Firefox und Thunderbird. Thunderbird wird ab Version 1.5 unterstützt.
Die Benutztung sollte auch klar sein. Die beiden neuen Einträge funktionieren genauso wie vom Gelesen-Status gewohnt. Wenn die Mail schon als gelesen markiert ist, wird vor dem Menüeintrag ein Haken angezeigt und Auswählen des Eintrags führt zum Entfernen des Status. Ansonsten wird kein Haken gezeigt, das Auswählen führt zum Setzen des Status. Dabei richtet sich bei mehreren ausgewählten Mails die Interpretation des aktuellen und damit auch des neues Status jeweils nach der obersten ausgewählten Mail. Das mag nicht jedermanns Geschmack treffen, da es beim Lesen Status aber genauso implementiert ist, habe ich das konsequent beibehalten um keine Verwirrung aufkommen zu lassen.
History
Version 0.1.1
- Diese Version unterstützt nun die neuen Mechanismen um den kompletten Updatevorgang per Signaturen abzusichern.
Version 0.2
- Durch eine Codespende von Bob Triffles ist es mit ToggleReplied nun möglich, Flags für Mails auf IMAP-Servern ebenfalls umzuschalten.
- Beachten Sie bitte auch, daß wegen Änderung des internen Namens die alte Version bei einem Upgrade nicht automatisch gelöscht wird. Ich denke das ist ein Bug im Mozilla-Code (Bug 404968 ), auf jeden Fall ist es jedoch nötig, daß Sie die Version 0.1 oder 0.1.1 nach einem Upgrade manuell deinstallieren, auch wenn das Upgrade automatisch funktioniert.
Version 0.2.1
- Nur ein kleiner Fix als Folge der Änderung der Id in Version 0.2. Danke and Godai71 der das bemerkt hat.
Version 0.3
- Eigentlich kein so großes Update wie die Version zeigt. Aber durch eine Änderung interner Elementnamen in TB 3.0b2pre und SM 2.0a3pre wurde eine Anpassung dieser Extension nötig. Um die îderung einfach zu halten habe ich mich aber entschlossen die Kompatibilität zu vorherigen Applikationen (also vor allem Thunderbird 1.5 und 2.0) aufzugeben. Um das deutlicher zu machen heißt diese Version also nicht nur 0.2.1.
Version 0.3.1
- Und wieder einmal wurde eine Änderung nötig weil die Thunderbird-Entwickler intern einiges umgebaut haben. Diesmal konnte ich die Kompatibilität mit vorherigen Versionen und SeaMonkey mittels einer Abfrage halten.
Version 0.3.2
- Nur ein kleiner Fix als Folge der Änderung der Id in Version 0.2. Danke and Godai71 der das bemerkt hat.
DlmgrButtons

Meine bisher einfachte Erweiterung die aber eine – Bug 497382 nach zu urteilen nicht nur meiner Ansicht nach – blöde Neuerung von SeaMonkey 2 behebt. Denn mit SeaMonkey 2 wurde die Oberfläche des Download Managers überholt. Eine dabei gemachte Änderung ist die Entfernung der bisherigen Buttonleiste über die einfach und schnell ein Eintrag oder der enthaltende Ordner geöffnet werden konnte. Das geht im neuen Downloadmanager nur noch per Kontextmenü.

Meine Erweiterung rüstet zumindest die genannten beiden Funktionen wieder als Button nach. Vom Design her füge ich mich dem neuen UI und verwende das gleiche Aussehen wie das des Buttons zum löschen der Liste. Auch für die Beschriftungen der Buttons verwende ich die vorhandenen aus dem Kontextmenü, so wird die Extension auch ohne ausdrückliche Lokalisierung in jeder Sprachversion funktionieren, auch wenn die Strings vielleicht etwas lang geraten sind.
Sie können die Erweiterung downloaden oder direkt installieren: DlmgrButtons-0.1.xpi (zum Downloaden Rechtsklick und „Ziel speichern unter…“).
FxIF
Diese Erweiterung hat jetzt ihre eigene Seite.