Aktualisierung 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
Das Rechtsklicken auf Elemente (einschließlich Links und Bilder) bietet keinen "Eigenschaften"-Menüeintrag mehr an. Der Eigenschaften-Dialog war für die meisten Benutzer nicht nützlich 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 Ihren eigenen Eintrag im Kontextmenü hinzufügen.
Änderungen am Add-on-Paket
Um zu ermöglichen, dass die Symbole von Add-ons auch angezeigt werden, wenn sie deaktiviert sind, wurde in 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. Dieses Symbol wird verwendet, wenn das Add-on deaktiviert ist oder wenn im Manifest kein iconURL
-Eintrag vorhanden ist.
Verbesserungen der HTML-5-Konformität
Die DOM-Level-2-Ansichten zu HTML- und XHTML-Dokumenten wurden nun gemäß HTML 5 vereinheitlicht.
- Die DOM-Eigenschaft
localName
gibt jetzt den Namen von HTML-Elementknoten in Kleinbuchstaben zurück. Zuvor gab sie ihn in HTML-Dokumenten in Großbuchstaben zurück. (DOM-Level-1tagName
gibt in HTML-Dokumenten weiterhin Großbuchstaben zurück.) - Die DOM-Eigenschaft
namespaceURI
gibt jetzt"http://www.w3.org/1999/xhtml"
für HTML-Elementknoten zurück. Zuvor gab sie in HTML-Dokumentennull
zurück. document.createElementNS(null, "FOO")
erstellt in HTML-Dokumenten keinen HTML-Elementknoten mehr.document.createElement("FOO")
oderdocument.createElementNS("http://www.w3.org/1999/xhtml", "foo")
funktionieren weiterhin in HTML-Dokumenten.- Die
name
- und dielocal-name
-Funktionen in XPath geben die Namen von HTML-Elementen in Kleinbuchstaben zurück. Zuvor gaben sie diese in HTML-Dokumenten in Großbuchstaben zurück.
Das wahrscheinlichste Update-Problem ist das Muster if (elt.localName === "FOO")
.
Beispiel: Prü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 geliefertes 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 Methode contents.rdf
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 ein chrome.manifest in Ihre XPI-Datei aufnehmen.
Hinweis:
Add-ons, die bereits mit der alten contents.rdf
-Methode zur Registrierung von Chrome installiert sind, werden weiterhin funktionieren, sofern sie bereits installiert sind. Stellen Sie sicher, dass Sie Ihr Add-on testen, indem Sie es tatsächlich entfernen und erneut installieren, um sicherzustellen, dass die Installation nach dem Aktualisieren auf ein Installationsmanifest funktioniert.