Firefox 41 für Entwickler
Um die neuesten Entwicklerfunktionen von Firefox zu testen, installieren Sie die Firefox Developer Edition. Firefox 41 wurde am 22. September 2015 veröffentlicht. Dieser Artikel listet wichtige Änderungen auf, die nicht nur für Webentwickler nützlich sind, sondern auch für Firefox- und Gecko-Entwickler sowie für Add-on-Entwickler.
Änderungen für Webentwickler
>Entwickler-Tools
Highlights:
- Einen Screenshot eines DOM-Knotens erstellen
- Als HAR speichern/kopieren
- "Regel hinzufügen"-Schaltfläche in der Regelansicht
- Quelltext in einem Tab anzeigen (standardmäßig deaktiviert)
- Mehr Optionen zum Kopieren von CSS-Regeln
- Bild als data: URL in der Regelansicht kopieren
- Neuer Befehl in GCLI zur Anzeige von CSP-Informationen hinzugefügt
Alle zwischen Firefox 40 und Firefox 41 behobenen Entwicklerwerkzeuge-Fehler: Beachten Sie, dass viele dieser Fehler, insbesondere diejenigen, die mit den Performance-Tools zusammenhängen, auf Firefox 40 aktualisiert wurden.
CSS
-
Die Unterstützung für vertikale Skriptlayouts wurde standardmäßig aktiviert (Firefox Bug 1138384). Das bedeutet, dass die folgenden CSS-Eigenschaften jetzt verfügbar sind:
- Auswahl der Schreibrichtung:
writing-mode
. - Ausrichtung der Zeichen kontrollieren:
text-orientation
. - Richtungsunabhängige Entsprechungen von
width
undheight
:block-size
undinline-size
. - Richtungsunabhängige Entsprechungen von
min-width
undmin-height
:min-block-size
undmin-inline-size
. - Richtungsunabhängige Entsprechungen von
max-width
undmax-height
:max-block-size
undmax-block-size
. - Richtungsunabhängige Entsprechungen von
margin-top
,margin-right
,margin-bottom
undmargin-left
:margin-block-start
,margin-block-end
,margin-inline-start
undmargin-inline-end
. - Richtungsunabhängige Entsprechungen von
padding-top
,padding-right
,padding-bottom
undpadding-left
:padding-block-start
,padding-block-end
,padding-inline-start
undpadding-inline-end
. - Richtungsunabhängige Entsprechungen von
border-top
,border-right
,border-bottom
undborder-left
und deren Langformen für Breite, Stil und Farbe:border-block-start
,border-block-start-width
,border-block-start-style
,border-block-start-color
,border-block-end
,border-block-end-width
,border-block-end-style
,border-block-end-color
,border-inline-start
,border-inline-start-width
,border-inline-start-style
,border-inline-start-color
,border-inline-end
,border-inline-end-width
,border-inline-end-style
undborder-inline-end-color
. - Richtungsunabhängige Entsprechungen von
top
,right
,bottom
undleft
:offset-block-start
,offset-block-end
,offset-inline-start
undoffset-inline-end
.
- Auswahl der Schreibrichtung:
-
Unterstützung für die Eigenschaft
transform-origin
in SVG und Implementierung der Eigenschafttransform-box
(Firefox Bug 923193).
HTML
<a>
ohnehref
-Attribut wird nicht mehr als interaktiver Inhalt klassifiziert. Wird es innerhalb eines<label>
angeklickt, aktiviert es den gekennzeichneten Inhalt (Firefox Bug 1167816).- SVG-Icons werden jetzt für Website-Icons, also Favicons und Shortcut-Icons, unterstützt (Firefox Bug 366324).
- Das Attribut
crossorigin
wird jetzt für <link rel='preconnect'> unterstützt (Firefox Bug 1174152). - Das
picture
-Element reagiert nicht auf Größenänderungen/Viewport-Änderungen (Firefox Bug 1135812).
JavaScript
Date.prototype
ist jetzt ein gewöhnliches Objekt und keineDate
-Instanz mehr (Firefox Bug 861219).Date.prototype.toString
ist jetzt eine generische Methode (Firefox Bug 861219).Symbol.species
wurde hinzugefügt (Firefox Bug 1131043).- Getter für
Map[Symbol.species]
undSet[Symbol.species]
wurden hinzugefügt (Firefox Bug 1131043). - Die nicht-standardmäßige Unterstützung für let-Ausdrücke wurde entfernt (Firefox Bug 1023609).
- Destrukturierte Parameter mit Standardwertzuweisung werden jetzt unterstützt (Firefox Bug 1018628).
- Gemäß ES2015 sind geschweifte Klammern für Methodendefinitionen erforderlich. Die Syntax ohne sie wird künftig fehlschlagen (Firefox Bug 1150855).
- Methodendefinitionen (außer Generator-Methoden) sind nicht mehr instanziierbar (Firefox Bug 1059908 und Firefox Bug 1166950).
- Im Rahmen der ES2015-Spezifikationskonformität gelten geklammerte Destrukturierungsmuster, wie
([a, b]) = [1, 2]
oder({a, b}) = { a: 1, b: 2 }
, jetzt als ungültig und werfen einenSyntaxError
aus. Weitere Details finden Sie in Jeff Waldens Blogbeitrag. - Die Syntax
new.target
wurde hinzugefügt (Firefox Bug 1141865).
Schnittstellen/APIs/DOM
HTML Editing API
- Die Befehlsbearbeitung für Ausschneiden, Kopieren und Einfügen wurde überarbeitet und erlaubt jetzt das programmatische Kopieren und Ausschneiden von JS für Webinhalte:
- Mit dem Argument
'paste'
gibtDocument.queryCommandSupported()
nunfalse
zurück, wenn unzureichende Berechtigungen vorliegen, um die Aktion tatsächlich auszuführen (Firefox Bug 1161721). - Mit den Argumenten
'cut'
oder'copy'
gibtDocument.queryCommandSupported()
nuntrue
zurück, wenn es im Kontext von benutzerinitiiertem oder privilegiertem Code aufgerufen wird (Firefox Bug 1162952). - Mit den Argumenten
'cut'
oder'copy'
funktioniertDocument.execCommand()
nun, aber nur im Kontext von benutzerinitiiertem oder privilegiertem Code (Firefox Bug 1012662). - Anstatt eine Ausnahme zu werfen, wenn der Befehl nicht unterstützt oder aktiviert ist, verarbeitet
Document.execCommand()
Fehler intern (Firefox Bug 1027560).
- Mit dem Argument
Ereignisse
- Die nicht-standardisierte Methode
initCloseEvent()
desCloseEvent
und die Möglichkeit, einCloseEvent
mit der Methodedocument.createEvent('CloseEvent')
zu erstellen, wurden entfernt; verwenden Sie stattdessen den Standard-KonstruktorCloseEvent()
(Firefox Bug 1161950). - Auf Desktop ist
PointerEvent
jetzt standardmäßig in Nightly aktiviert; es ist nicht in Developer Edition, Beta oder Release aktiviert und wird es für mindestens einige Versionen nicht sein (Firefox Bug 1166347). - Die nicht-präfiksierte Version von
MouseEvent.movementX
undMouseEvent.movementY
wurde hinzugefügt; die präfiksierte Version wird veraltet und wird in Zukunft entfernt (Firefox Bug 1164981).
Web Crypto
SubtleCrypto.importKey()
undSubtleCrypto.exportKey()
unterstützen jetztECDH
-Schlüssel (Firefox Bug 1050175).
Canvas-API
HTMLCanvasElement.captureStream()
undCanvasCaptureMediaStream
wurden hinzugefügt und ermöglichen das Echtzeit-Streaming der Anzeige eines<canvas>
(Firefox Bug 1032848).MediaStream.id
gibt jetzt die eindeutige ID eines Streams zurück (Firefox Bug 1089798).- Der Initialwert von
CanvasRenderingContext2D.filter
ist nun korrekt aufnone
gesetzt (Firefox Bug 1163124).
Service Workers
-
Verbesserung unserer experimentellen Service Worker-Implementierung:
ServiceWorkerGlobalScope.skipWaiting()
wurde implementiert (Firefox Bug 1131352).Clients.claim()
wurde hinzugefügt (Firefox Bug 1130684).- Die anderen funktionalen Ereignisse der Service Workers erben jetzt von
ExtendableEvent
und haben somit Zugriff auf die MethodewaitUntil()
(Firefox Bug 1160527).
-
Die Schnittstellen
CacheStorage
undCache
werden jetzt unterstützt (Firefox Bug 1110144).
WebGL
- Das
failIfMajorPerformanceCaveat
WebGL-Kontextattribut wurde hinzugefügt und kann beim Erstellen eines WebGL-Kontextes mitHTMLCanvasElement.getContext()
angegeben werden, um zu kennzeichnen, ob ein Kontext nicht erstellt werden soll, wenn die Systemleistung niedrig ist (Firefox Bug 1164970).
WebRTC
- Firefox bietet keinen Standard-STUN-Server mehr an, der verwendet werden kann, wenn keiner beim Erstellen einer neuen
RTCPeerConnection
angegeben wird. Es muss einer angegeben werden, um eine WebRTC-Verbindung erfolgreich herzustellen.
Verschiedenes
- Auf OS X und Windows ändert sich
Navigator.onLine
jetzt in Bezug auf die Netzwerkkonnektivität (es gab vorher immertrue
zurück, es sei denn, der "Offline arbeiten"-Modus war ausgewählt) (Firefox Bug 654579). MessagePort
undMessageChannel
sind jetzt in Web Workern verfügbar und in allen Kontexten standardmäßig aktiviert (Firefox Bug 952139 und Firefox Bug 911972).- Die User Timing API ist jetzt in Web Workern verfügbar (Firefox Bug 1155761).
- Die Notifications API ist jetzt in Web Workern verfügbar (Firefox Bug 916893).
DOMRequest
undDOMCursor
sind jetzt in Web Workern verfügbar (Firefox Bug 1167650).- Die CSS Font Loading API wurde vollständig implementiert und ist jetzt standardmäßig aktiviert (Firefox Bug 1149381).
- Geteilte Worker können nicht mehr zwischen privaten (z. B. in einem privaten Fenster surfen) und nicht-privaten Dokumenten geteilt werden (siehe Firefox Bug 1177621).
- Die Eigenschaft
URL.searchParams
ist jetzt schreibgeschützt (Firefox Bug 1174731). - Die Eigenschaft
HTMLAnchorElement.hash
dekodiert keine URL-Fragmente mehr (Firefox Bug 1093611).
MathML
Neue Standard- und Fallback-Schriftartenverwaltung
Mathematische Formeln erfordern spezielle Schriftarten. Bisher waren diese Schriftarten im mathml.css
Benutzeragenten-Stylesheet (das die Schriftart-Familie auf dem <math>
-Tag setzt) und in der Präferenzoption font.mathfont-family
(die die Fallback-Schriftarten für Streck- und große Operatoren festlegt) hartkodiert. Firefox 41 führt eine interne x-math
-Sprache ein, die automatisch auf dem <math>
-Tag gesetzt wird, sowie entsprechende Präferenzoptionen (z. B. font.name.serif.x-math
). Das Benutzeragenten-Stylesheet setzt nun die Schriftart-Familie auf Serif auf dem <math>
-Tag und die Präferenzoption font.mathfont-family
wird durch font.name.serif.x-math
ersetzt. Alle Plattformen verwenden nun im Wesentlichen dieselbe Liste von Fallback-Schriftarten, wobei "Latin Modern Math" als erste kommt. Die Standard-/Fallback-Schriftarten können über das Standard-Schriftartpräferenzmenü pro Sprache konfiguriert werden. Weitere Details finden Sie unter Firefox Bug 947654 und Firefox Bug 1160456.
SVG
- Website-Icons (Favicons, Shortcut-Icons) unterstützen jetzt SVG (Firefox Bug 366324).
Audio/Video
- Die Präferenz
media.autoplay.enabled
gilt jetzt auch für nicht vertrauenswürdige Aufrufe der MethodeHTMLMediaElement.play()
, d.h. für Aufrufe von nicht benutzeraktivierten Skripten (Firefox Bug 659285).
Netzwerk
- Der
X-Content-Duration
-Header wird nicht mehr unterstützt (Firefox Bug 1160695). - Entwürfe des HTTP/2-Protokolls werden nicht mehr unterstützt (Firefox Bug 1132357).
Sicherheit
- Die CSP 1.1
manifest-src
Direktive wird jetzt unterstützt (Firefox Bug 1089255). - Frühere Versionen von Firefox erwarteten fälschlicherweise, dass der Wert
origin-when-cross-origin
der Referrer-Direktive der Content Security Policy alsorigin-when-crossorigin
buchstabiert wird. Dies wurde korrigiert, um das fehlende Bindestrichzeichen einzuschließen.
Änderungen für Add-on- und Mozilla-Entwickler
>XUL
Keine Änderung.
JavaScript-Code-Module
Keine Änderung.
XPCOM
>Schnittstellen
Keine Änderung.
Sonstige
- Eine neue, interne und nur für Chrome-Kontexte zugängliche API zum Rendern des Root-Widgets eines Fensters in ein
<canvas>
wurde hinzugefügt:CanvasRenderingContext2D.drawWidgetAsOnScreen()
. Diese API verwendet das Betriebssystem, um das Widget auf dem Bildschirm zu erfassen. Weitere Details finden Sie unter Firefox Bug 1167477.