Aktualisieren von Erweiterungen für Firefox 3.6
Dieser Artikel bietet hilfreiche Informationen für Erweiterungsentwickler, die versuchen, ihre Erweiterungen so zu aktualisieren, dass sie ordnungsgemäß in Firefox 3.6 funktionieren.
Änderungen an der Benutzeroberfläche
Rechtsklick auf Elemente (einschließlich Links und Bilder) bietet kein "Eigenschaften"-Menü mehr an. Das Eigenschaften-Dialogfeld war für die meisten Benutzer nicht hilfreich und wurde entfernt. Wenn Ihre Erweiterung in irgendeiner Weise mit diesem Menüpunkt interagiert, müssen Sie Ihren Code überarbeiten, um ihn selbst hinzuzufügen, oder direkt einen eigenen Kontextmenüeintrag beisteuern.
Änderungen am Add-on-Paket
Um zu ermöglichen, dass die Symbole von Add-ons auch dann angezeigt werden, wenn sie deaktiviert sind, hat Gecko 1.9.2 die Unterstützung für die automatische Erkennung und Verwendung eines Symbols namens icon.png
, das sich im Stammverzeichnis des Add-ons befindet, hinzugefügt. Dies wird verwendet, wenn das Add-on deaktiviert ist oder wenn im Manifest ein iconURL
-Eintrag fehlt.
Verbesserungen der HTML-5-Konformität
Die DOM-Level-2-Ansichten für HTML- und XHTML-Dokumente sind nun gemäß HTML 5 vereinheitlicht.
- Die DOM-Eigenschaft
localName
gibt nun den Namen von HTML-Elementknoten in Kleinbuchstaben zurück. Zuvor gab sie in HTML-Dokumenten den Namen in Großbuchstaben zurück. (DOM-Level-1tagName
setzt dies in HTML-Dokumenten weiterhin in Großbuchstaben fort.) - Die DOM-Eigenschaft
namespaceURI
gibt nun"http://www.w3.org/1999/xhtml"
bei HTML-Elementknoten zurück. Früher gab sie in HTML-Dokumentennull
zurück. document.createElementNS(null, "FOO")
erstellt keinen HTML-Elementknoten mehr in HTML-Dokumenten. Sowohldocument.createElement("FOO")
als auchdocument.createElementNS("http://www.w3.org/1999/xhtml", "foo")
funktionieren weiterhin in HTML-Dokumenten.- Die Funktionen
name
undlocal-name
in XPath geben den Namen von HTML-Elementen in Kleinbuchstaben zurück. Zuvor gaben sie in HTML-Dokumenten den Namen in Großbuchstaben zurück.
Das wahrscheinlichste Upgrade-Problem ist das Muster if (elt.localName === "FOO")
.
Beispiel: Überprüfen, ob ein Element ein HTML-<img>
-Element ist
Firefox 3.6, sowohl text/html
als auch application/xhtml+xml
if (elt.localName === "img" && elt.namespaceURI === "http://www.w3.org/1999/xhtml")
Firefox 3.5 und 3.6, nur von der Erweiterung bereitgestelltes text/html
ohne fremde (z.B. SVG) skript-eingefügte Elemente
if (elt.tagName === "IMG")
Firefox 3.5 und 3.6, sowohl text/html
als auch application/xhtml+xml
if (elt instanceof HTMLImageElement)
contents.rdf
wird nicht mehr unterstützt
Die Unterstützung für die veraltete contents.rdf
-Methode zur Registrierung von Chrome wurde in Gecko 1.9.2 entfernt und wird von Firefox 3.6 nicht mehr unterstützt. Das bedeutet, dass Add-ons, die contents.rdf
verwenden, nicht mehr installiert werden können.
Stellen Sie sicher, dass Sie eine chrome.manifest in Ihrem XPI einfügen.
Hinweis: Add-ons, die bereits mit der alten contents.rdf
-Methode zum Registrieren von Chrome installiert sind, funktionieren weiterhin, wenn sie bereits installiert sind. Stellen Sie sicher, dass Sie Ihr Add-on tatsächlich durch Entfernen und erneutes Installieren testen, um sicherzustellen, dass die Installation nach der Aktualisierung auf die Verwendung eines Installations-Manifests funktioniert.