Firefox 65 für Entwickler
Dieser Artikel bietet Informationen über die Änderungen in Firefox 65, die Entwickler betreffen werden. Firefox 65 wurde am 29. Januar 2019 veröffentlicht.
Änderungen für Webentwickler
Entwicklerwerkzeuge
- Der Flexbox-Inspektor ist jetzt standardmäßig aktiviert.
- Es wurde Unterstützung zum JavaScript-Debugger für XHR-Breakpoints hinzugefügt (Firefox-Fehler 821610).
- Klicken Sie mit der rechten Maustaste auf ein Element im Zugänglichkeitsbaum im Zugänglichkeits-Viewer, um es als JSON zu drucken im JSON-Viewer.
- Die Anzeige des Farbkontrasts des Zugänglichkeits-Auswählers wurde so aktualisiert, dass bei komplexen Hintergründen (z. B. einem Verlauf oder einem komplexen Bild) eine Bandbreite von Farbkontrastwerten angezeigt wird.
- Der Kopfzeilen-Tab des Netzwerk-Monitors zeigt jetzt die Referrer-Richtlinie für die ausgewählte Anfrage an (Firefox-Fehler 1496742).
- Beim Anzeigen von Stapelverfolgungen (z. B. in Konsolenprotokollen oder im JavaScript-Debugger) werden Aufrufe an Framework-Methoden standardmäßig identifiziert und zusammengeklappt, was es einfacher macht, sich auf Ihren Code zu konzentrieren.
- Ähnlich wie bei nativen Terminals können Sie jetzt eine Rückwärtssuche verwenden, um Einträge in Ihrem JavaScript-Konsolenverlauf zu finden (
F9
unter Windows/Linux oderCtrl
+R
auf macOS, dann einen Suchbegriff eingeben, gefolgt vonCtrl
+R
/Ctrl
+S
, um durch die Ergebnisse zu wechseln). - Der
$0
-Shortcut der JavaScript-Konsole (verweist auf das aktuell inspizierte Element auf der Seite) hat jetzt eine Autovervollständigung, sodass Sie zum Beispiel$0.te
eingeben könnten, um Autovervollständigungsvorschläge für Eigenschaften wie$0.textContent
zu erhalten. - Die Bearbeitungen, die Sie in der Regelansicht des Inspektors vornehmen, werden jetzt im Änderungen-Panel aufgelistet (Firefox-Fehler 1503920).
HTML
- Ereignisse werden jetzt auf deaktivierten HTML-Elementen ausgelöst, d.h.
<button>
,<fieldset>
,<input>
,<select>
und<textarea>
-Elemente mit gesetztendisabled
-Attributen (Firefox-Fehler 329509). - Das Entfernen des
src
-Attributs eines<iframe>
-Elements bewirkt jetzt, dassabout:blank
darin geladen wird, wodurch es mit Chrome und Safari gleichgestellt wird (Firefox-Fehler 1507842). Früher hatte das Entfernen vonsrc
keinen Einfluss auf den Inhalt desiframe
. - Wir haben Unterstützung für das
referrerpolicy
-Attribut auf<script>
-Elementen hinzugefügt (Firefox-Fehler 1460920).
CSS
-
Der
crisp-edges
-Wert derimage-rendering
-Eigenschaft wurde jetzt unpräfixiert (Firefox-Fehler 1496617). -
Ein
scrollbar-color
-Wert vonauto
löst sich jetzt aufauto
auf, anstatt auf zwei Farben (Firefox-Fehler 1501418). -
Die
break-*
-Eigenschaften wurden implementiert, und die veraltetenpage-break-*
-Eigenschaften wurden auf sie aliasiert (Firefox-Fehler 775618):break-before
ist jetzt ein Alias fürpage-break-before
.break-after
ist jetzt ein Alias fürpage-break-after
.break-inside
ist jetzt ein Alias fürpage-break-inside
.
-
Der
anywhere
-Wert deroverflow-wrap
-Eigenschaft wurde implementiert (Firefox-Fehler 1505786). -
Die neuen Stufenpositionsschlüsselwörter
jump-start
,jump-end
,jump-none
, undjump-both
— nutzbar innerhalb dersteps()
-Timing-Funktion — wurden implementiert (Firefox-Fehler 1496619). Dies fällt auch mit der Entfernung derframes()
-Timing-Funktion zusammen, die die vorherige Methode zur Implementierung solcher Funktionalität war, nun veraltet. -
Einige neue
-webkit-appearance
-Werte wurden hinzugefügt, um die Kompatibilität mit anderen Browsern zu gewährleisten. Insbesondere:meter
, das jetzt als Standardwert für<meter>
-Elemente in UA-Stylesheets verwendet wird. Der bestehende Wertmeterbar
ist jetzt ein Alias fürmeter
(Firefox-Fehler 1501483).progress-bar
, das jetzt als Standardwert für<progress>
-Elemente in UA-Stylesheets verwendet wird. Der bestehende Wertprogressbar
ist jetzt ein Alias fürprogress-bar
(Firefox-Fehler 1501506).textarea
, das jetzt als Standardwert für<textarea>
-Elemente in UA-Stylesheets verwendet wird. Der bestehende Werttextfield-multiline
ist jetzt ein Alias fürtextarea
(Firefox-Fehler 1507905).
-
Das Verhalten der
user-select
-Eigenschaft wurde geändert, um es besser mit anderen Browsern abzustimmen (Firefox-Fehler 1506547). Insbesondere:-
user-select: all
auf ein Element gesetzt, überschreibt nicht mehr andere Werte vonuser-select
, die auf Kindern dieses Elements gesetzt sind. So wird im folgenden Ausschnitt:html<div style="-webkit-user-select: all"> All <div style="-webkit-user-select: none">None</div> </div>
Das
<div>
mitnone
darauf gesetzt, ist jetzt nicht mehr auswählbar. Bisher wäre dieser Wert vomall
-Wert auf dem übergeordneten Element überschrieben worden. -
nicht-
contenteditable
-Elemente, die incontenteditable
-Elementen geschachtelt sind, sind jetzt auswählbar. -
user-select
verhält sich nun konsistent innerhalb und außerhalb von Shadow-DOM. -
Der proprietäre
-moz-text
-Wert wurde entfernt.
-
-
CSS-Umgebungsvariablen (die
env()
-Funktion) wurden implementiert (Firefox-Fehler 1462233).
Entfernungen
- Die Voreinstellung
layout.css.shape-outside.enabled
wurde entfernt;shape-outside
,shape-margin
, undshape-image-threshold
können nicht mehr inabout:config
deaktiviert werden (Firefox-Fehler 1504387). - Mehrere ausschließlich in Firefox vorhandene Werte der
user-select
-Eigenschaft wurden entfernt —-moz-all
,-moz-text
,tri-state
,element
,elements
, undtoggle
. Siehe Firefox-Fehler 1492958 und Firefox-Fehler 1506547. - Wie oben erwähnt, wurde die
frames()
-Timing-Funktion entfernt (Firefox-Fehler 1496619).
SVG
Keine Änderungen.
JavaScript
Intl.RelativeTimeFormat
wird jetzt unterstützt (Firefox-Fehler 1504334).- Zeichenfolgen haben jetzt eine maximale length von
2**30 - 2
(~1GB) statt2**28 - 1
(~256MB) (Firefox-Fehler 1509542). - Die
globalThis
-Eigenschaft, die stets auf das oberste globale Objekt verweist, wurde implementiert (Firefox-Fehler 1317422).
APIs
Neue APIs
- Readable Streams wurden standardmäßig aktiviert (Firefox-Fehler 1505122).
- Die Storage Access API wurde standardmäßig aktiviert (Firefox-Fehler 1513021).
DOM
Performance.toJSON()
wurde für Web Worker verfügbar gemacht (Firefox-Fehler 1504958).- Anfragen zu
XMLHttpRequest
werfen jetzt einenNetworkError
, wenn der angeforderte Inhaltstyp einBlob
ist und die Anfragemethode nichtGET
ist (Firefox-Fehler 1502599). - Die mit
-moz-
voreingestellten Versionen vieler Funktionen der Fullscreen API wurden veraltet, und jetzt werden Deprecation-Warnungen in der JavaScript-Konsole angezeigt, wenn sie angetroffen werden (Firefox-Fehler 1504946). Window.createImageBitmap()
undWorkerGlobalScope.createImageBitmap()
unterstützen jetzt SVG-Bilder (SVGImageElement
) als Bildquelle (Firefox-Fehler 1500768).
DOM-Ereignisse
- Zukünftig ist pro Ereignis nur ein
Window.open()
-Aufruf erlaubt (Firefox-Fehler 675574). - Die
keyup
- undkeydown
-Ereignisse werden jetzt während der IME-Komposition ausgelöst, um die Browser-Kompatibilität für CJKT-Benutzer zu verbessern (Firefox-Fehler 354358).
Web Worker
- Das Ereignisobjekt von
SharedWorkerGlobalScope.connect
ist eine Instanz vonMessageEvent
— seinedata
-Eigenschaft ist jetzt ein leerer Zeichenfolgenwert anstelle vonnull
(Firefox-Fehler 1508824).
Fetch und Service Worker
- Die Methode
Response.redirect()
wirft jetzt korrekt einenTypeError
, wenn eine ungültige URL als erster Parameter angegeben wird (Firefox-Fehler 1503276). - Die Methoden
ServiceWorkerContainer.register()
undWorkerGlobalScope.importScripts()
(wenn sie von einem Service Worker verwendet werden) akzeptieren jetzt alle Dateien mit einem gültigen JavaScript MIME-Typ (Firefox-Fehler 1354577). - Die Eigenschaften
FetchEvent.replacesClientId
undFetchEvent.resultingClientId
werden jetzt unterstützt (Firefox-Fehler 1264177). - Die Handler-Eigenschaften
ServiceWorkerGlobalScope.onmessageerror
undServiceWorkerContainer.onmessageerror
wurden implementiert (Firefox-Fehler 1399446). - Der
Origin
-Header wird bei Fetch-Anfragen mit der MethodeHEAD
oderGET
nicht mehr gesetzt (Firefox-Fehler 1508661).
Medien, Web Audio und WebRTC
- Das WebRTC-Wörterbuch
RTCIceCandidateStats
wurde gemäß den neuesten Spezifikationsänderungen aktualisiert (Firefox-Fehler 1324788, Firefox-Fehler 1489040; RTCIceCandidateStats wurde auf die neueste Spezifikation aktualisiert, um genauere Informationen über die Änderungen zu erhalten). - Die Ereignisse
pause
undresume
(und ihre entsprechenden Ereignishandler-Eigenschaften) desMediaRecorder
waren zuvor nicht implementiert, obwohl die Kompatibilitätstabellen behaupteten, dass sie es schon waren. Sie wurden jetzt implementiert (Firefox-Fehler 1458538, Firefox-Fehler 1514016).
Canvas und WebGL
- Die WebGL-Texturkompressionserweiterungen
EXT_texture_compression_bptc
undEXT_texture_compression_rgtc
wurden für WebGL1- und WebGL2-Kontexte verfügbar gemacht (Firefox-Fehler 1507263).
Entfernungen
- Mutationsereignisse wurden in Shadow Trees deaktiviert (Firefox-Fehler 1489858).
- Die nicht standardmäßige
MediaStream
-EigenschaftcurrentTime
wurde entfernt (Firefox-Fehler 1502927). - Die Voreinstellungen
dom.webcomponents.shadowdom.enabled
unddom.webcomponents.customelements.enabled
wurden entfernt — Shadow DOM und benutzerdefinierte Elemente können nicht mehr inabout:config
deaktiviert werden (Firefox-Fehler 1503019). - Das nicht standardmäßige DOM-
text
-Ereignis — ausgelöst, um die Browser-Editor-UI über IME-Zusammensetzungsdaten und Auswahlbereiche zu informieren — wurde entfernt (Firefox-Fehler 1288640). - Das
keypress
-Ereignis wird nicht mehr für nicht druckbare Tasten ausgelöst (Firefox-Fehler 968056), außer für dieEnter
-Taste und dieShift
+Enter
- undCtrl
+Enter
-Tastenkombinationen (diese wurden aus Gründen der Browser-Kompatibilität beibehalten).
Sicherheit
- Zusätzliche CORS-Beschränkungen werden jetzt auf zulässige Anforderungsheader durchgesetzt (Firefox-Fehler 1483815, siehe auch whatwg fetch issue 382: CORS-safelisted request headers should be restricted according to RFC 7231 für weitere Details).
Netzwerk
Keine Änderungen.
Plugins
Keine Änderungen.
WebDriver-Konformität (Marionette)
API-Änderungen
WebDriver:ElementSendKeys
behandelt<input type=file>
jetzt entspannter für Interaktivitätsprüfungen und erlaubt es diesen Elementen, verborgen zu sein, ohne mehr einennot interactable
-Fehler zu verursachen. Wenn eine strikte Interaktivitätsprüfung gewünscht ist, kann die FähigkeitstrictFileInteractability
verwendet werden (Firefox-Fehler 1502864).
Fehlerbehebungen
- Die Fenster-Manipulationsbefehle
WebDriver:FullscreenWindow
,WebDriver:MinimizeWindow
,WebDriver:MaximizeWindow
, undWebDriver:SetWindowRect
wurden stabiler gemacht (Firefox-Fehler 1492499). Das bedeutet, dass sie unter besonderen Bedingungen keine unendliche Hängung mehr verursachen, sondern nach 5s auslaufen, wenn der angeforderte Fensterzustand nicht erreicht werden kann (Firefox-Fehler 1521527). WebDriver:ElementClick
berechnet jetzt korrekt den Mittelpunkt des Elements, das geklickt werden soll, was Interaktionen mit Dimensionen von 1x1 Pixeln ermöglicht (Firefox-Fehler 1499360).
Sonstiges
- Für
unexpected alert open
-Fehler werden informativere Nachrichten bereitgestellt (Firefox-Fehler 1502268).
Sonstiges
-
Unterstützung für WebP-Bilder wurde hinzugefügt (Firefox-Fehler 1294490).
- Zusätzlich wurde der WebP-MIME-Typ (
image/webp
) aus Gründen der Browser-Kompatibilität in bestimmten Situationen als Standard-HTTP-Anforderungs-Accept
-Header für HTML-Dateien hinzugefügt (Firefox-Fehler 1507691).
- Zusätzlich wurde der WebP-MIME-Typ (
-
Der AV1-Codec wird jetzt standardmäßig unter Windows unterstützt (Firefox-Fehler 1452146).
Änderungen für Add-on-Entwickler
API-Änderungen
Tabs
- Die tabs API wurde erweitert, um Tab-Nachfolger zu unterstützen — ein Tab kann einen Nachfolger zugewiesen bekommen, welcher die ID des Tabs ist, der aktiv wird, sobald er geschlossen wird (Firefox-Fehler 1500479, siehe auch diesen Blogbeitrag für mehr Informationen). Insbesondere:
- Der
tabs.Tab
Typ hat jetzt einesuccessorId
-Eigenschaft, die verwendet werden kann, um die ID des Tab-Nachfolgers zu speichern/abzurufen. - Der Rückruf des
tabs.onActivated
-Ereignislisteners hat einen neuen verfügbaren ParameterpreviousTabId
, der die ID des vorher aktivierten Tabs enthält, wenn er noch offen ist. - Das
updateProperties
-Objekt der Funktiontabs.update()
hat eine neue optionale verfügbare EigenschaftsuccessorTabId
, die verwendet werden kann, um es zu aktualisieren. successorTabId
wird auch von Funktionen wietabs.get()
undtabs.query()
zurückgegeben.- Die neue Funktion
tabs.moveInSuccession()
ermöglicht die Manipulation von Tab-Nachfolgern in großer Zahl.
- Der
Manifest-Änderungen
Keine Änderungen.
Sonstiges
- Die Eigenschaften
headerURL
/theme_frame
für WebExtension-Themen werden jetzt in Firefox für Android unterstützt (Firefox-Fehler 1429488).