Aktualisieren von Erweiterungen für Firefox 3.6

Dieser Artikel bietet hilfreiche Informationen für Entwickler von Erweiterungen, die versuchen, ihre Erweiterungen so zu aktualisieren, dass sie ordnungsgemäß in Firefox 3.6 funktionieren.

Änderungen der Benutzeroberfläche

Das Rechtsklicken auf Elemente (einschließlich Links und Bilder) bietet nicht mehr den Menüpunkt "Eigenschaften" an. Das Eigenschaften-Dialogfeld war für die meisten Benutzer nicht nützlich und wurde entfernt. Wenn Ihre Erweiterung auf irgendeine Weise mit diesem Menüpunkt interagiert, müssen Sie Ihren Code überarbeiten, um ihn selbst hinzuzufügen, oder direkt einen eigenen Eintrag im Kontextmenü bereitstellen.

Änderungen im Add-on-Paket

Um zu ermöglichen, dass Icons von Add-ons auch dann angezeigt werden, wenn sie deaktiviert sind, hat Gecko 1.9.2 die Unterstützung für das automatische Erkennen und Verwenden eines Icons namens icon.png, das sich im Root-Verzeichnis 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 localName DOM-Eigenschaft gibt jetzt den Namen der HTML-Elementknoten in Kleinbuchstaben zurück. Zuvor wurde in HTML-Dokumenten der Name in Großbuchstaben zurückgegeben. (Die DOM Level 1 tagName bleibt in HTML-Dokumenten weiterhin in Großbuchstaben.)
  • Die namespaceURI DOM-Eigenschaft gibt jetzt "http://www.w3.org/1999/xhtml" auf HTML-Elementknoten zurück. Zuvor wurde in HTML-Dokumenten null zurückgegeben.
  • document.createElementNS(null, "FOO") erstellt keinen HTML-Elementknoten mehr in HTML-Dokumenten. document.createElement("FOO") oder document.createElementNS("http://www.w3.org/1999/xhtml", "foo") funktionieren weiterhin in HTML-Dokumenten.
  • Die Funktionen name und local-name in XPath geben den Namen von HTML-Elementen in Kleinbuchstaben zurück. Zuvor wurde in HTML-Dokumenten der Name in Großbuchstaben zurückgegeben.

Das wahrscheinlichste Aktualisierungsproblem ist das Muster if (elt.localName === "FOO").

Beispiel: Testen, 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) skripteingefü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 eine chrome.manifest in Ihr XPI einfügen.

Hinweis: Add-ons, die bereits mit der alten Methode contents.rdf zur Registrierung von Chrome installiert wurden, 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 Installationsmanifests funktioniert.