Firefox 7 Versionshinweise für Entwickler
Firefox 7 wurde am 27. September 2011 veröffentlicht. Dieser Artikel bietet Informationen über die Änderungen, die Entwickler betreffen — sowohl von Webinhalten als auch von Firefox-Add-ons.
Änderungen für Webentwickler
>HTML
- Die
HTMLHeadElementprofile-Eigenschaft wurde entfernt, diese Eigenschaft wurde seit Gecko 2.0 als veraltet betrachtet. - Die
HTMLImageElementEigenschaftenxundywurden entfernt. - Der
before-Parameter der Methodeadd()vonHTMLSelectElementist jetzt optional. - Das Attribut
backgrounddes<body>-Elements wird nicht mehr als URI aufgelöst; dies entspricht der aktuellen HTML-Spezifikation. - Das Attribut
labeldes<option>-Elements spiegelt nun den Wert des Textinhalts des Elements wider, wenn das Attribut nicht angegeben ist.
Canvas
- Im Rahmen des Azure-Projekts wurde das Direct2D-Azure-Backend implementiert, was die Leistung der 2D-Canvas erheblich verbessern wird.
- Das Angeben ungültiger Werte beim Aufruf von
setTransform(),bezierCurveTo()oderarcTo()wirft keine Ausnahme mehr; diese Aufrufe werden jetzt korrekt stillschweigend ignoriert. - Die Methode
isPointInPath()berücksichtigt nun korrekt die Transformationsmatrix beim Vergleich des angegebenen Punktes mit dem aktuellen Pfad. - Der Aufruf von
strokeRect()mit Breite und Höhe null macht jetzt korrekt nichts. - Der Aufruf von
drawImage()mit einer Breite oder Höhe null auf einem<canvas>wirft nunINVALID_STATE_ERR. - Der Aufruf von
drawImage()mit nicht-finiten Koordinaten wirft keine Ausnahme mehr. - Die Methode
toDataURL()akzeptiert jetzt ein zweites Argument zur Steuerung der JPEG-Qualität. - Unterstützung für die nicht-standardmäßigen
globalCompositeOperation-Operationenclearundoverwurde entfernt. - Schatten werden jetzt nur noch für
source-over-Compositing-Operationen gezeichnet. - Sie können nun die Füllregel konfigurieren, die von Canvas verwendet wird, indem Sie das
mozFillRule-Attribut am Kontext setzen. - Unterstützung für die experimentellen Attribute
mozDash,mozDashOffset,mozCurrentTransformundmozCurrentTransformInversewurde hinzugefügt. - Unterstützung für die nicht-standardmäßigen Methoden
mozDrawText(),mozMeasureText(),mozPathText()undmozTextAlongPath()wurde entfernt.
CSS
text-overflowwird jetzt unterstützt.- Die
-moz-orient-Eigenschaft wurde korrigiert, sodass<progress>-Elemente, die vertikal ausgerichtet sind, angemessene Standardmaße haben.
MathML
- XLink href wurde wiederhergestellt und das MathML3-
href-Attribut wird jetzt unterstützt. Entwickler werden ermutigt, zur letzteren Syntax zu wechseln. - Unterstützung für das
voffset-Attribut bei<mpadded>-Elementen wurde hinzugefügt und das Verhalten deslspace-Attributs wurde korrigiert. - Das oberste
<math>-Element akzeptiert jetzt alle Attribute des<mstyle>-Elements. - Unterstützung für Asana Math Schriften wurde hinzugefügt.
- Die Mitteldicke der Bruchstriche in
<mfrac>-Elementen wurde korrigiert, um der Standarddicke zu entsprechen. - Namen für negative Abstände werden jetzt unterstützt.
DOM
- Die nicht-standardmäßigen Methoden
getAsBinary(),getAsDataURL()undgetAsText()desFileInterface sowie die nicht-standardmäßigen EigenschaftenfileNameundfileSizewurden entfernt (Firefox Bug 661876). - Das
FormDataInterface meldet nun nicht mehr einen leeren Dateinamen beim Senden desContent-DispositionHTTP-Headers, wenn die Daten mit einemBlobgesetzt wurden. Dies behebt Fehler, die bei einigen Servern aufgetreten sind. - Die
HTMLelement.dir-Eigenschaft gibt ihr Ergebnis jetzt immer in Kleinbuchstaben zurück, wie es die HTML-Spezifikation verlangt. - Die Methode
FileReader.readAsArrayBuffer()ist jetzt implementiert. Document.createEntityReferencewurde entfernt. Es war nie korrekt implementiert und wird in den meisten anderen Browsern nicht implementiert.document.normalizeDocumentwurde entfernt. Verwenden Sie stattdessenNode.normalize.DOMTokenList.itemgibt jetztundefinedzurück, wenn derindexaußerhalb der Grenzen liegt; zuvor wurdenullzurückgegeben.Node.getFeaturewurde entfernt.- Die Schnittstellen
HTMLInsElementundHTMLDelElementwurden entfernt, da die<ins>- und<del>-Elemente tatsächlich dieHTMLModElement-Schnittstelle verwenden. - In einem Bestreben, der kommenden DOM4 Spezifikation zu entsprechen, in der
Attrnicht mehr vonNodeerben (wie in DOM Core 1, 2 und 3 der Fall war), melden vieleNode-Eigenschaften und -Methoden auf derAttr-Schnittstelle jetzt Warnungen, während wir uns darauf zubewegen, sie in einer späteren Version zu entfernen. - Unterstützung für die Eigenschaften
ondeviceorientationundondevicemotioninwindow-Objekten wurde hinzugefügt. window.resizeTo,window.resizeBy,window.moveToundwindow.moveBysind nicht länger auf das Hauptfenster anwendbar.
JavaScript
- Die Eigenschaft
Function.aritywurde entfernt; verwenden Sie stattdessenFunction.length.
WebSockets
- Die Einstellung
network.websocket.max-connectionswird verwendet, um die maximale Anzahl der gleichzeitig offenen WebSocket-Verbindungen zu bestimmen. Der Standardwert ist 200. - Das zugrundeliegende WebSocket-Protokoll Version 8 (wie im IETF-Draft 10 spezifiziert) wird jetzt anstelle des in Firefox 6 verwendeten Protokolls Version 7 verwendet.
- Die WebSocket-API ist jetzt auf Firefox Mobile verfügbar.
console API
- Nachrichten, die mit
console.logprotokolliert werden, während die Webkonsole nicht geöffnet ist, werden weiterhin protokolliert, obwohl sie nicht angezeigt werden, wenn die Webkonsole geöffnet wird.
Web-Timing
- Erste Implementierung der Navigation Timing Spezifikation, die Daten bereitstellt, die zur Messung der Leistung einer Website verwendet werden können.
XML
- Zusätzlich zum zuvor unterstützten
text/xslkönnen XSLT-Stile nun den offiziellen Internet-Media-Typeapplication/xslt+xmlverwenden (in der Stylesheet-Verarbeitungsanweisung oder dem HTTP-Link-Header-Feld).
Änderungen für Mozilla- und Add-On-Entwickler
Diese Änderungen betreffen sowohl Add-on-Entwickler als auch Entwickler, die an oder mit dem Mozilla-Code selbst arbeiten. Add-On-Entwickler sollten Erweiterungen für Firefox 7 aktualisieren für zusätzliche Informationen ansehen.
Hinweis: Firefox 7 erfordert, dass binäre Komponenten neu kompiliert werden, wie bei allen Hauptversionen von Firefox.
JavaScript-Code-Module
FileUtils.jsm
- Die neue Methode
openFileOutputStream()öffnet einen Dateiausgabestream, die unsichere Variante, zum Schreiben.
AddonManager.jsm
- Der Add-on-Manager hat neue Methoden zur Verwaltung von Add-on-Listen, die sich beim Anwendungsstart geändert haben:
AddonManager.addStartupChange(),AddonManager.removeStartupChange()undAddonManager.getStartupChanges().
XUL
<tree>-Elemente können jetzt den Zustand von Aufklappdreiecken speichern, wenn die durchdatasourcesreferenzierten Knoten alle eindeutige IDs haben, die durch "id"-Attribute angegeben sind.<panel>-Elemente können jetzt so konfiguriert werden, dass Benutzer sie ziehen können, indem sie irgendwo auf ihren Hintergrund klicken, indem das neuebackdrag-Attribut verwendet wird.
XPCOM
- Die neue Methode
Components.utils.schedulePreciseGC()ermöglicht es Ihnen, einen gründlichen Garbage-Collection-Zyklus zu einem Zeitpunkt in der Zukunft einzuplanen, wenn kein JavaScript-Code ausgeführt wird; ein Rückruf wird ausgeführt, sobald die Sammlung abgeschlossen ist. - Die Methode
Components.utils.unload()ermöglicht es Ihnen, zuvor mitComponents.utils.load()geladene JavaScript-Code-Module zu entladen.
Speicher-Reporter
Unterstützung für Multi-Reporter wurde hinzugefügt; das heißt, Speicher-Reporter, die auf Anfrage Daten sammeln und für jedes generierte Ergebnis einen Rückrufaufruf durchführen. Siehe nsIMemoryMultiReporter und nsIMemoryMultiReporterCallback für die relevanten Schnittstellen sowie die Methoden nsIMemoryReporterManager.registerMultiReporter() und nsIMemoryReporterManager.unregisterMultiReporter().
Änderungen an der Benutzererfahrung
- Erweiterungsoptionen können nun im Add-on-Manager sowohl für neustartlose als auch für traditionelle Erweiterungen angezeigt werden.
- Das Ziel von Downloads wird jetzt auf einer Site-für-Site-Basis gespeichert. Auf diese Daten kann mit
DownloadLastDir.jsmzugegriffen werden.
Änderungen am Build-System
- Die ActiveX-Einbettungs-API wird nicht mehr gebaut und der Support wurde aus dem Build-System entfernt. Unterstützende Schnittstellen wurden ebenfalls entfernt; siehe Entfernte Schnittstellen.
- Sie sollten nicht mehr
-Zc:wchar_t-beim Bauen auf Windows angeben.
Schnittstellenänderungen
nsISocketTransportbietet jetzt ein neues Verbindungs-Flag:DISABLE_IPV6; dies führt dazu, dass ein Socket nur versucht, nur IPV4-Adressen zu verbinden, und dabei alle verfügbaren IPv6-Adressen ignoriert. Zusätzlich bietetnsIDNSServicejetzt ein neues Auflösungs-Flag:RESOLVE_DISABLE_IPV6; dies führt dazu, dass die Domainnamenauflösung nur IPv4-Hosts berücksichtigt und alle verfügbaren IPv6-Adressen ignoriert. Diese Änderungen werden zur Umsetzung der "happy eyeballs" Strategie verwendet, um die Antwortzeit zu verbessern, wenn versucht wird, auf Hosts zuzugreifen, die sowohl IPv4 als auch IPv6 unterstützen (insbesondere solche, die beschädigte IPv6-Konnektivität haben).inIDOMUtilshat zwei neue Methoden,inIDOMUtils.getChildrenForNode(), die eine Liste von Kindknoten eines Knotens zurückgibt, undinIDOMUtils.getUsedFontFaces(), das eine Liste der in einem Bereich genutzten Schriftschnitte zurückgibt.- Die Schnittstelle
nsIMarkupDocumentViewer_MOZILLA_2_0_BRANCHwurde mit dernsIMarkupDocumentViewer-Schnittstelle zusammengeführt. - Die Schnittstelle
nsIDOMWindow2wurde mit dernsIDOMWindow-Schnittstelle zusammengeführt. - Die Schnittstelle
nsIDOMWindow_2_0_BRANCHwurde mit dernsIDOMWindowInternal-Schnittstelle zusammengeführt. nsINavHistoryObserver-Methoden mit URI-Parametern erfordern jetzt auch eine GUID.- Die Schnittstelle
nsISHistory_2_0_BRANCHwurde mit dernsISHistory-Schnittstelle zusammengeführt. nsITelemetryhat eine neue Methode,nsITelemetry.getHistogramById(), die ein Histogramm nach seiner ID zurückgibt, und ein neues AttributcanRecord, das bei Einstellung auffalsedas Aufzeichnen von Telemetriestatistiken deaktiviert. Telemetriestatistiken werden nicht mehr im privaten Browsing-Modus aufgezeichnet (siehe Firefox Bug 661574 und Firefox Bug 661573). Telemetrie-Histogramme, die mitnsITelemetry.newHistogram()definiert sind, werden nicht im Telemetrie-Ping gemeldet.- Die
nsIMemoryReporter-Schnittstelle wurde erheblich geändert; wenn Sie sie verwenden, müssen Sie einige Anpassungen an Ihrem Code vornehmen. - Bei
nsIXMLHttpRequestwerden die durchnsIXMLHttpRequest.setRequestHeader()gesetzten Header bei einem Redirect mit der Anfrage gesendet. Früher wurden diese Header nicht gesendet. nsIDocShellhat ein neuesallowWindowControl-Attribut. Wenntrue, darf der Inhalt derdocshelldas Fenster steuern (also das Fenster bewegen oder die Größe ändern).- Die Schnittstelle
nsIThreadInternal2wurde in diensIThreadInternal-Schnittstelle integriert.
Neue Schnittstellen
nsIDOMFontFace-
Beschreibt einen einzelnen Schriftschnitt.
nsIDOMFontFaceList-
Beschreibt eine Liste von Schriftschnitten, die jeweils durch
nsIDOMFontFacedargestellt werden.
Entfernte Schnittstellen
Die folgenden Schnittstellen waren Implementierungsdetails, die nicht mehr benötigt werden:
nsIDOM3AttrnsIDOM3NodensIDOM3TypeInfonsIDOM3TextnsIDOMDocumentStylensIDOMNSDocumentnsIDOMNSFeatureFactorynsIDOMNSHTMLDocumentnsIDOMNSHTMLFormElementnsIDOMNSHTMLHRElementnsIDOMNSHTMLTextAreaElement
Die folgenden Schnittstellen wurden im Rahmen der Entfernung der ActiveX-Einbettungs-API entfernt:
DITestScriptHelperDWebBrowserEventsDWebBrowserEvents2IDispatchIMozControlBridgeIMozPluginHostCtrlIWebBrowserIWebBrowser2IWebBrowserAppIXMLDocumentIXMLElementIXMLElementCollectionIXMLErrornsIActiveXSecurityPolicynsIDispatchSupportnsIMozAxPluginnsIScriptEventHandlernsIScriptEventManager
Sonstige Änderungen
- Die Struktur des Bibliotheksfensters (
places.xul) wurde bereinigt. Dies kann Erweiterungen und Themes beeinträchtigen. - Das Aussehen des Druckvorschaufensters wurde modernisiert und Theme-Autoren werden ermutigt, es mit den CSS-Pseudoelementen
::-moz-page,::-moz-page-sequenceund::-moz-scrolled-page-sequencezu stylen.