Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Aktualisierung von Add-ons für Firefox 10

Obwohl sich in Firefox 10 viele Dinge geändert haben, die theoretisch die Kompatibilität von Add-ons beeinträchtigen können, sind die meisten Änderungen relativ unbedeutend, sodass sie wahrscheinlich keinen Einfluss auf Sie haben werden. Dieser Artikel soll Ihnen als Leitfaden dienen, während Sie Ihr Add-on aktualisieren.

Standardmäßig kompatibel

Das erste und wichtigste zu beachtende ist, dass Add-ons ab Firefox 10 standardmäßig als kompatibel angesehen werden. Sofern Sie nicht das <em:strictCompatibility>-Flag in Ihrem Manifest verwenden, wird Firefox Ihr Add-on nach einem Upgrade auf Firefox 10 oder höher nicht mehr als inkompatibel markieren. Sie können dieses Flag verwenden, um sicherzustellen, dass ein Add-on, das wahrscheinlich nicht funktioniert, nicht versucht, in aktualisierten Versionen von Firefox auszuführen. Es ist bemerkenswert, dass Add-ons, die binäre Komponenten enthalten, immer streng auf Kompatibilität geprüft werden müssen, da binäre Komponenten für jede Hauptversion von Firefox neu kompiliert werden müssen.

Hinweis: Sie sollten Ihr Add-on dennoch auf Firefox 10 testen, auch in einer Welt der Standardkompatibilität. Lesen Sie den Rest dieses Artikels, um zu sehen, ob es etwas gibt, das Sie ändern müssen.

DOM-Änderungen

Einige veraltete APIs wurden aus dem DOM entfernt:

Node.isSameNode()

Dies ist die Entfernung, die am ehesten Add-on-Entwickler betreffen könnte, da sie ziemlich häufig verwendet wurde. Sie können jetzt den JavaScript-Operator === verwenden, um Knoten zu vergleichen, anstatt dieser veralteten Methode. Diese Methode wurde durch die DOM4-Spezifikation veraltet gemacht.

text.isElementContentWhitespace, text.replaceWholeText()

Diese APIs wurden durch die DOM4-Spezifikation veraltet.

Document.xmlEncoding, Document.xmlStandalone, Document.xmlVersion

All diese APIs wurden durch die DOM4-Spezifikation veraltet. Sie wurden am häufigsten verwendet, um festzustellen, ob das angezeigte Dokument HTML oder XML war. Siehe den Artikel zu Document.xmlVersion für eine empfohlene Methode, um dies künftig zu testen.

XPCOM- und Schnittstellenänderungen

Die bedeutendste Änderung ist, dass überall dort, wo zuvor der Datentyp PRBool verwendet wurde, nun der standardmäßige C++-Typ bool verwendet wird.

Entfernte Schnittstellen

Die folgenden Schnittstellen wurden entfernt:

nsIDOMNSHTMLFrameElement

Diese Schnittstelle wurde in die nsIDOMHTMLFrameElement-Schnittstelle integriert.

nsIDOMNSHTMLElement

Diese Schnittstelle wurde in nsIDOMHTMLElement integriert.

nsIDocumentViewer

Diese Schnittstelle wurde in nsIContentViewer integriert.

Weitere Schnittstellenänderungen

  • nsNavHistory implementiert nicht mehr die nsICharsetResolver-Schnittstelle. Beachten Sie, dass nsICharsetResolver nicht mehr verwendet wird und in Firefox 11.0 entfernt wird.
  • Die Schnittstellen mozISpellCheckingEngine und nsIEditorSpellCheck wurden aktualisiert, um neustartlose Add-ons zu ermöglichen, Wörterbücher zum Rechtschreibprüfer hinzuzufügen. Siehe Using an external spell checker für Details (beachten Sie, dass dieser Artikel noch nicht aktualisiert wurde, aber bald wird).
  • Das Attribut nsIBrowserHistory.lastPageVisited wurde entfernt, da es seit einiger Zeit nicht mehr unterstützt wird.
  • Mehrere interne Schnittstellen von IndexedDB haben sich geändert, um überarbeitete APIs zu unterstützen. Dies sollte Sie nicht betreffen, ist jedoch erwähnenswert, falls Sie etwas Ungewöhnliches gemacht haben.

Weitere erwähnenswerte Änderungen

  • Alle binären Komponenten unter Windows sollten mit aktivierter ASLR-Unterstützung (Address Space Layout Randomization) kompiliert werden. Obwohl dies noch nicht erforderlich ist, könnte es in Zukunft notwendig werden, und das Nicht-Aktivieren führt zu einem Leistungsabfall.
  • Ein in Firefox 7 eingeführter Fehler in der Regulären-Ausdruck-Verarbeitung wurde behoben. Dies kann die Ergebnisse einiger regulärer Ausdrücke ändern, also seien Sie sich dessen bewusst.
  • Sie können jetzt chrome.manifest-Dateien in bootstrap-fähigen Add-ons dynamisch laden und entladen.
  • Die Ereignisse mouseenter und mouseleave werden nun unterstützt.