Firefox 49 für Entwickler

Um die neuesten Entwicklerfunktionen von Firefox zu testen, installieren Sie die Firefox Developer Edition. Firefox 49 wurde am 20. September 2016 veröffentlicht. Dieser Artikel listet die wichtigsten Änderungen auf, die nicht nur für Webentwickler, sondern auch für Firefox- und Gecko-Entwickler sowie Add-on-Entwickler nützlich sind.

Änderungen für Webentwickler

Entwickler-Tools

HTML

CSS

JavaScript

Schnittstellen/APIs/DOM

DOM & HTML DOM

  • Die Methode DOMTokenList.supports() wurde hinzugefügt (Firefox bug 1257849).
  • Die DOMTokenList.replace()-Methode wurde hinzugefügt (Firefox bug 1224186).
  • Führende '?' Zeichen werden jetzt im Parameter des URLSearchParams() Konstruktors ignoriert (Firefox bug 1268361).
  • Der Wert, der durch URL.origin, HTMLAnchorElement.origin, und HTMLAreaElement.origin für URLs mit dem blob:-Schema zurückgegeben wird, ist nicht mehr fälschlicherweise null, sondern ist jetzt der Ursprung der URL, die durch Entfernen des führenden blob: gebildet wurde (Firefox bug 1270451).
  • Im Prerendering-Modus gibt die Eigenschaft Document.visibilityState jetzt 'prerender' zurück (Firefox bug 1069772).
  • Die Eigenschaft Window.isSecureContext wurde implementiert (Firefox bug 1162772).
  • Die DOM4 Methoden Element.before, Element.after, Element.replaceWith, Element.append und Element.prepend wurden implementiert (Firefox bug 911477).
  • Die Methode TouchList.identifiedTouch() wurde entfernt (Firefox bug 1188539).
  • Standardmäßig ist die scrollbars Window-Funktion beim Aufruf von Window.open() aktiviert. In der Vergangenheit wurde die Aktivierung zwar dringend empfohlen, war aber nicht der Standard (Firefox bug 1257887).
  • Die experimentelle und nicht standardmäßige Methode HTMLMediaElement.seekToNextFrame() wurde hinzugefügt, die es ermöglicht, frameweise durch Videoinhalte zu navigieren (Firefox bug 1235301). Während Sie ermutigt werden, mit dieser Methode zu experimentieren, um zu verstehen, wie nützlich sie ist, vermeiden Sie es, sie in Produktionscode zu verwenden.
  • Die HTMLLabelElement.form-Eigenschaft gibt jetzt das Formular zurück, mit dem das Steuerelement des Labels verknüpft ist, wenn es ein Steuerelement gibt (und wenn dieses Steuerelement mit einem Formular verknüpft ist). Zuvor waren Labels über diese Eigenschaft direkt mit Formularen verknüpft (Firefox bug 1268852).
  • Unterstützung für den dritten Parameter von EventTarget.addEventListener(), entweder ein Boolean oder ein EventListenerOptions wurde hinzugefügt (Firefox bug 1266164 und Firefox bug 1266066).
  • Die Audio-Lautstärkenwerte für KeyboardEvent.key wurden umbenannt. "VolumeDown" ist jetzt "AudioVolumeDown", "VolumeUp" ist jetzt "AudioVolumeUp", und "VolumeMute" ist jetzt "AudioVolumeMute". Dies bringt Firefox in Übereinstimmung mit dem neuesten Entwurf der UI-Events-Spezifikation (Firefox bug 1272578). Siehe Codewerte für Tastaturereignisse für eine vollständige Liste verfügbarer Tastencodes.
  • Die Tasten, die zuvor als "MozHomeScreen", "MozCameraFocusAdjust", und "MozPhoneCall" bezeichnet wurden, haben jetzt offizielle Namen in der UI-Events-Spezifikation: "GoHome", "CameraFocus", und "Call". Firefox 49 wurde aktualisiert, um die neuen Namen zu verwenden (Firefox bug 1272599). Siehe Codewerte für Tastaturereignisse für eine vollständige Liste verfügbarer Tastencodes.
  • Die Schlüsselwerte "Separator" und "MediaSkip" wurden entfernt, da sie veraltet und unbenutzt waren (Firefox bug 1232919).
  • Schlüsselwerte und die entsprechenden Tastencodes "Hyper" und "Super" wurden hinzugefügt, um diese Legacy-Modifikatorschlüssel darzustellen (Firefox bug 1232919).
  • Zwei Schlüsselwerte für Multimedia-Zifferntasten wurden hinzugefügt: "Key11" und "Key12" (Firefox bug 1232919).
  • Die folgenden neuen Schlüsselwerte wurden für Audiosteuerschlüssel hinzugefügt: "AudioBassBoostToggle", "AudioTrebleDown", und "AudioTrebleUp" (Firefox bug 123919).
  • Schlüsselwerte wurden für diese Mikrofonsteuerungstasten hinzugefügt: MicrophoneToggle, MicrophoneVolumeDown, MicrophoneVolumeUp, und MicrophoneVolumeMute (Firefox bug 123919).
  • Neue Schlüsselwerte wurden hinzugefügt, um Sprachsteuerungsgeräte zu unterstützen: SpeechCorrectionList und SpeechInputToggle (Firefox bug 1232919).
  • Neue Schlüsselwerte wurden hinzugefügt, um spezielle Tasten auf Telefonen zu unterstützen: AppSwitch, Call, CameraFocus, EndCall, GoBack, GoHome, HeadsetHook, LastNumberRedial, Notification, MannerMode, und VoiceDial (Firefox bug 1232919).
  • Diese neuen Anwendungsschlüsselwerte wurden hinzugefügt: LaunchContacts und LaunchPhone (Firefox bug 1232919).
  • Neue Schlüsselwerte wurden hinzugefügt, um Fernsehgeräte zu unterstützen: TV3DMode, TVAntennaCable, TVAudioDescription, TVAudioDescriptionMixDown, TVAudioDescriptionMixUp, TVContentsMenu, TVDataService, TVInput, TVInputComponent1, TVInputComponent2, TVInputComposite1, TVInputComposite2, TVInputHDMI1, TVInputHDMI2, TVInputHDMI3, TVInputHDMI4, TVInputVGA1, TVMediaContext, TVNetwork, TVNumberEntry, TVRadioService, TVSatellite, TVSatelliteBS, TVSatelliteCS, TVSatelliteToggle, TVTerrestrialAnalog, TVTerrestrialDigital, TVTimer, und DVR (Firefox bug 1232919).
  • Der Schlüsselwert MediaSelect wurde durch den Standard-LaunchMediaPlayer-Schlüsselwert ersetzt (Firefox bug 1272592).
  • Zusätzliche Medienschlüsselwerte wurden ebenfalls hinzugefügt. Diese sind MediaAudioTrack, MediaSkipBackward, MediaSkipForward, MediaStepBackward, MediaStepForward, MediaTopMenu, NavigateIn, NavigateNext, NavigateOut, und NavigatePrevious (Firefox bug 1232919).

Canvas

WebGL

IndexedDB

Service Worker und verwandte

  • Das Response Objekt der Fetch-API implementiert jetzt die redirected Eigenschaft, die angibt, ob die Antwort auf eine weitergeleitete Anfrage erfolgt ist oder nicht. Bitte überprüfen Sie die sicherheitsbezogenen Hinweise in der Dokumentation, bevor Sie diese Eigenschaft verwenden (Firefox bug 1243792).
  • In der Permissions API unterstützt Firefox den 'push'-PermissionDescriptor-Wörterbuchtyp (im Standard als PushPermissionDescriptor bezeichnet) nicht mehr; dies liegt daran, dass Firefox stattdessen auf ein Quotasystem zum Steuern des userVisibleOnly-Status angewiesen ist und einen Fehler auslöste, wenn es auf eine PushPermissionDescriptor-Instanz stieß (Firefox bug 1266821). Mit diesem entfernten Wörterbuch ignoriert Firefox es jetzt.

Medienströme

  • In der Vergangenheit war es möglich, dass ein Aufruf von MediaDevices.getUserMedia(), der sowohl Audio als auch Video anforderte, erfolgreich war, wenn der Benutzer nur eine der beiden Hardwaretypen zur Verfügung hatte. Dies wurde behoben (Firefox bug 802326).
  • In früheren Versionen von Firefox war es möglich, dass ein Aufruf von MediaDevices.getUserMedia(), der sowohl Audio als auch Video anforderte, erfolgreich war, selbst wenn der Benutzer den Zugriff auf eines, aber nicht beide der passenden Geräte verweigerte. Dies wurde behoben (Firefox bug 802326). Dies beinhaltet geringfügige Benutzeroberflächenänderungen, um die Optionen "Kein Audio" oder "Kein Video" zu entfernen, wenn der Benutzer um Berechtigungen gebeten wird.
  • Die Methode MediaStream.getTrackById() wurde implementiert (Firefox bug 1208390).

WebRTC

  • Die Methode RTCPeerConnection.addTrack() wurde aktualisiert, um es zu ermöglichen, dass Tracks, die nicht Komponenten der angegebenen Streams sind, zur Verbindung hinzugefügt werden können. Stattdessen werden die Streams verwendet, um Tracks am empfangenden Ende der Verbindung zu gruppieren (Firefox bug 1271669).

Neue APIs

Sonstiges

MathML

Keine Änderungen.

SVG

  • Unterstützung für die veralteten <altGlyph>, <altGlyphDef> und <altGlyphItem> Elemente entfernt (Firefox bug 1260032).

Audio/Video

Keine Änderungen.

Plugins und Flash

Ab Firefox 49 blockiert Firefox standardmäßig bestimmte Arten von Flash-Inhalten, die für ein gutes Funktionieren von Websites nicht notwendig sind. Dieses Verhalten, das durch die Präferenz browser.safebrowsing.blockedURIs.enabled gesteuert wird, trägt dazu bei, die Leistung von Websites und Firefox im Allgemeinen zu verbessern, ohne die Benutzerfreundlichkeit der Websites erheblich zu beeinträchtigen. Es trägt auch dazu bei, die Stabilität des Browsing-Erlebnisses zu verbessern, indem eine Hauptursache für Abstürze eliminiert wird. Zu den blockierten Flash-Modulen gehören mehrere, die nur zu Fingerabdruckzwecken verwendet werden, sowie eine Reihe von "Supercookie"-Modulen, und in Zukunft kann dies um weitere Arten von blockierten Modulen erweitert werden. Weitere Details finden Sie im Firefox bug 1275591.

Dies markiert den nächsten Schritt auf dem Weg zu einer zukunft ohne Plugins. HTML ist sehr nah an dem Punkt, an dem Plugins nicht mehr notwendig sein werden, um die Arbeit zu erledigen.

HTTP

Netzwerk

  • Die Implementierung der Proxy Auto-Configuration (PAC) wurde aktualisiert. weekdayRange, dateRange und timeRange unterstützen jetzt "umgekehrte Bereiche", zum Beispiel wird weekdayRange("SAT", "MON") als true ausgewertet, wenn der aktuelle Tag Samstag, Sonntag oder Montag ist (Firefox bug 1251332).

Sicherheit

Kompatibilität

Um die Kompatibilität mit bestehenden Inhalten zu verbessern, akzeptiert Firefox jetzt einige WebKit-präfixierte Eigenschaften und Attribute.

  • Die folgenden Eigenschaften funktionieren jetzt auch mit dem Präfix -webkit:

    • -webkit-align-items
    • -webkit-align-content
    • -webkit-align-self
    • -webkit-animation
    • -webkit-animation-delay
    • -webkit-animation-direction
    • -webkit-animation-duration
    • -webkit-animation-fill-mode
    • -webkit-animation-iteration-count
    • -webkit-animation-name
    • -webkit-animation-play-state
    • -webkit-animation-timing-function
    • -webkit-backface-visibility
    • -webkit-background-clip
    • -webkit-background-origin
    • -webkit-background-size
    • -webkit-border-bottom-left-radius
    • -webkit-border-bottom-right-radius
    • -webkit-border-image
    • -webkit-border-top-left-radius
    • -webkit-border-top-right-radius
    • -webkit-border-radius
    • -webkit-box-shadow
    • -webkit-filter
    • -webkit-flex
    • -webkit-flex-basis
    • -webkit-flex-direction
    • -webkit-flex-flow
    • -webkit-flex-grow
    • -webkit-flex-shrink
    • -webkit-flex-wrap
    • -webkit-justify-content
    • -webkit-order
    • -webkit-perspective
    • -webkit-perspective-origin
    • -webkit-text-size-adjust
    • -webkit-transform
    • -webkit-transform-origin
    • -webkit-transform-style
    • -webkit-transition
    • -webkit-transition-delay
    • -webkit-transition-duration
    • -webkit-transition-property
    • -webkit-transition-timing-function
    • -webkit-user-select
  • Die folgenden Eigenschaften werden auf die äquivalente präfixierte Eigenschaft abgebildet:

    • -webkit-box-flex
    • -webkit-box-ordinal-group
    • -webkit-box-orient
    • -webkit-box-align
    • -webkit-box-pack
  • Für <image> Werte:

    • Die folgenden Funktionen werden auf ihre nicht prefixierten Äquivalente abgebildet: -webkit-linear-gradient(), -webkit-radial-gradient(), -webkit-repeating-linear-gradient(), und -webkit-repeating-radial-gradient().
    • Das veraltete -webkit-gradient wird unterstützt (und in ein reguläres Gradient umgewandelt)
  • Die folgenden display Werte werden übersetzt:

    • -webkit-box zu -moz-box
    • -webkit-flex zu flex
    • -webkit-inline-box zu inline-flex
    • -webkit-inline-flex zu -moz-inline-flex
  • Die folgenden Eigenschaften werden unterstützt (und werden nicht in ein nicht prefixed Pendant abgebildet):

  • Die WebKitCSSMatrix Schnittstelle ist ein Alias von DOMMatrix

  • Die folgenden Media Query Features wurden implementiert:

    • -webkit-min-device-pixel-ratio als Alias von min-resolution mit dem gleichen Wert (in dppx), obwohl dieses Feature standardmäßig deaktiviert ist (hinter der about:config Präferenz layout.css.prefixes.device-pixel-ratio-webkit)
    • -webkit-max-device-pixel-ratio als Alias von max-resolution mit demselben Wert (in dppx); dieses Feature ist ebenfalls standardmäßig deaktiviert, hinter derselben about:config Präferenz.
    • -webkit-transform-3d passt immer, was 3D-Transform-Unterstützung anzeigt.

Änderungen für Add-on und Mozilla Entwickler

WebExtensions

  • Unterstützung für die history wurde hinzugefügt. Dies bietet Zugriff auf den Browserverlauf, mit Methoden zur Suche im Verlauf, Abrufen von Informationen über bereits besuchte Seiten sowie zum Hinzufügen und Entfernen von Verlaufseinträgen.
  • Die Methode tabs.removeCSS() wurde der tabs API hinzugefügt. Diese Methode erlaubt das Entfernen von CSS, das zuvor durch den Aufruf von tabs.insertCSS() eingefügt wurde.

Schnittstellen

Sonstiges

Keine Änderungen.

Ältere Versionen