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 wichtige Ä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

Entwicklerwerkzeuge

HTML

CSS

JavaScript

Schnittstellen/APIs/DOM

DOM & HTML DOM

  • Die Methode DOMTokenList.supports() wurde hinzugefügt (Firefox-Bug 1257849).
  • Die Methode DOMTokenList.replace() wurde hinzugefügt (Firefox-Bug 1224186).
  • Führende '?' Zeichen werden jetzt im Parameter des URLSearchParams() Konstruktors ignoriert (Firefox-Bug 1268361).
  • Der Wert, denURL.origin, HTMLAnchorElement.origin, und HTMLAreaElement.origin für URLs mit dem blob: Schema zurückgeben, ist nicht mehr fälschlicherweise null, sondern stattdessen der Ursprung der URL, die durch Entfernen des vorangestellten blob: gebildet wird (Firefox-Bug 1270451).
  • Im Prerendering-Modus gibt die Document.visibilityState Eigenschaft jetzt 'prerender' zurück (Firefox-Bug 1069772).
  • Die Window.isSecureContext Eigenschaft 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 aktiviert, wenn Window.open() aufgerufen wird. In der Vergangenheit wurde empfohlen, sie zu aktivieren, aber es war nicht der Standard (Firefox-Bug 1257887).
  • Die experimentelle und nicht-standardmäßige Methode HTMLMediaElement.seekToNextFrame() wurde hinzugefügt, die es ermöglicht, Frame-für-Frame durch Videoinhalte zu suchen (Firefox-Bug 1235301). Während Sie mit dieser Methode experimentieren sollten, um uns zu helfen, zu verstehen, wie nützlich sie ist, verwenden Sie sie nicht in Produktivcode!
  • Die HTMLLabelElement.form Eigenschaft gibt jetzt das Formular zurück, mit dem das Label-Steuerelement verknüpft ist, falls ein Steuerelement existiert (und falls dieses Steuerelement mit einem Formular verknüpft ist). Zuvor waren Labels direkt mit Formularen über diese Eigenschaft verknüpft (Firefox-Bug 1268852).
  • Die 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 mit der Audio-Lautstärke zusammenhängenden Werte für KeyboardEvent.key wurden umbenannt. "VolumeDown" ist jetzt "AudioVolumeDown", "VolumeUp" ist jetzt "AudioVolumeUp", und "VolumeMute" ist jetzt "AudioVolumeMute". Dies bringt Firefox in Einklang mit dem neuesten Entwurf der UI Events-Spezifikation (Firefox-Bug 1272578). Siehe Codewerte für Tastaturevents für eine vollständige Liste der verfügbaren Tastencodes.
  • Die Tasten, die zuvor als "MozHomeScreen", "MozCameraFocusAdjust", und "MozPhoneCall" bekannt waren, 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 Tastaturevents für eine vollständige Liste der verfügbaren Tastencodes.
  • Die Tastenwerte "Separator" und "MediaSkip" wurden entfernt, da sie veraltet und unbenutzt waren (Firefox-Bug 1232919).
  • Tastenwerte und die entsprechenden Tastencodes "Hyper" und "Super" wurden hinzugefügt, um diese Legacy-Modifier-Tasten darzustellen (Firefox-Bug 1232919).
  • Zwei Tastenwerte für Multimedia-Nummerntasten wurden hinzugefügt: "Key11" und "Key12" (Firefox-Bug 1232919).
  • Die folgenden neuen Tastenwerte wurden für Audiosteuertasten hinzugefügt: "AudioBassBoostToggle", "AudioTrebleDown", und "AudioTrebleUp" (Firefox-Bug 123919).
  • Tastenwerte wurden für diese Mikrofonsteuerungstasten hinzugefügt: MicrophoneToggle, MicrophoneVolumeDown, MicrophoneVolumeUp, und MicrophoneVolumeMute (Firefox-Bug 123919).
  • Neue Tastenwerte wurden hinzugefügt, um Spracherkennungsgeräte zu unterstützen: SpeechCorrectionList und SpeechInputToggle (Firefox-Bug 1232919).
  • Neue Tastenwerte 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 Anwendungstastenwerte wurden hinzugefügt: LaunchContacts und LaunchPhone (Firefox-Bug 1232919).
  • Neue Tastenwerte 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 Tastenwert MediaSelect wurde durch den Standard-Tastenwert LaunchMediaPlayer ersetzt (Firefox-Bug 1272592).
  • Zusätzliche Mediaplayer-Tastenwerte 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 Fetch API's Response Objekt implementiert jetzt die redirected Eigenschaft, die anzeigt, ob die Antwort für eine Anfrage ist, die weitergeleitet wurde. Bitte lesen Sie die sicherheitsrelevanten Hinweise in der Dokumentation, bevor Sie diese Eigenschaft verwenden (Firefox-Bug 1243792).
  • Im Permissions API unterstützt Firefox den 'push' PermissionDescriptor Wörterbuchtyp (im Spezifikation als PushPermissionDescriptor bezeichnet) nicht mehr; dies liegt daran, dass Firefox stattdessen auf ein Quotensystem zur Kontrolle des userVisibleOnly Status setzt und einen Fehler auslöste, wenn er auf eine PushPermissionDescriptor Instanz stieß (Firefox-Bug 1266821). Mit diesem entfernten Wörterbuch ignoriert Firefox es jetzt.

Media Streams

  • In der Vergangenheit war es möglich, dass ein Aufruf von MediaDevices.getUserMedia(), der sowohl Audio als auch Video anfordert, erfolgreich ist, wenn der Benutzer nur eine der beiden Arten von Hardware zur Verfügung hat. 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 anfordert, erfolgreich ist, obwohl der Benutzer den Zugriff auf eines, aber nicht beide der passenden Geräte verweigert. Dies wurde behoben (Firefox-Bug 802326). Dies beinhaltet auch kleine Änderungen an der Benutzeroberfläche, um die Optionen "Kein Audio" oder "Kein Video" zu entfernen, wenn der Benutzer nach Berechtigungen gefragt wird.
  • Die MediaStream.getTrackById() Methode wurde implementiert (Firefox-Bug 1208390).

WebRTC

  • Die RTCPeerConnection.addTrack() Methode wurde aktualisiert, um das Hinzufügen von Spuren zu ermöglichen, die nicht Teil der angegebenen Streams sind, zur Verbindung. Stattdessen werden die Streams verwendet, um Spuren am empfangenden Ende der Verbindung zu gruppieren (Firefox-Bug 1271669).

Neue APIs

Andere

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 nicht notwendig sind, damit Webseiten gut funktionieren. Dieses Verhalten wird durch die Präferenz browser.safebrowsing.blockedURIs.enabled gesteuert und trägt dazu bei, die Leistung der Seiten und von Firefox im Allgemeinen zu verbessern, ohne die Benutzerfreundlichkeit der Seiten wesentlich zu beeinträchtigen. Es trägt auch zur Stabilität des Browser-Erlebnisses bei, indem eine Hauptursache für Abstürze beseitigt wird. Die blockierten Flash-Module beinhalten mehrere, die nur zu Fingerabdruckzwecken verwendet werden, sowie eine Anzahl von "Supercookie"-Modulen, und in Zukunft können weitere Arten von blockierten Modulen hinzugefügt werden. Siehe Firefox-Bug 1275591 für Details.

Dies markiert den nächsten Schritt auf dem Weg zu einer pluginfreien Zukunft. HTML ist sehr nah am Punkt, an dem Plugins für die Arbeit nicht mehr benötigt werden.

HTTP

Vernetzung

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

Sicherheit

Kompatibilität

Um die Kompatibilität mit bestehendem Inhalt 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 unpräfixierten Äquivalente abgebildet: -webkit-linear-gradient(), -webkit-radial-gradient(), -webkit-repeating-linear-gradient(), und -webkit-repeating-radial-gradient().
    • Die veraltete Funktion -webkit-gradient wird unterstützt (und in einen regulären Gradienten übersetzt)
  • 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 auf unpräfixierte äquivalente Eigenschaften abgebildet):

  • Die WebKitCSSMatrix Schnittstelle ist ein Alias für DOMMatrix

  • Die folgenden Mediaquery-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 die about:config Präferenz layout.css.prefixes.device-pixel-ratio-webkit)
    • -webkit-max-device-pixel-ratio als Alias von max-resolution mit dem gleichen Wert (in dppx); dieses Feature ist ebenfalls standardmäßig deaktiviert, hinter der gleichen about:config Präferenz.
    • -webkit-transform-3d immer übereinstimmend, um Unterstützung für 3D-Transformationen anzuzeigen.

Änderungen für Add-on- und Mozilla-Entwickler

WebExtensions

  • Unterstützung für die history wurde hinzugefügt. Diese bietet Zugriff auf den Browser-Verlauf, mit Methoden, die für die Suche im Verlauf, das Abrufen von Informationen über zuvor besuchte Seiten und das Hinzufügen und Entfernen von Verlaufs-Einträgen verfügbar sind.
  • Die Methode tabs.removeCSS() wurde zur Tabs-API hinzugefügt. Diese Methode ermöglicht es, CSS zu entfernen, das zuvor durch Aufrufen von tabs.insertCSS() eingefügt wurde.

Schnittstellen

Andere

Keine Änderungen.

Ältere Versionen