Firefox 49 für Entwickler

Um die neuesten Entwickler-Features von Firefox zu testen, installieren Sie Firefox Developer Edition. Firefox 49 wurde am 20. September 2016 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

Entwicklertools

HTML

  • Unterstützung für die Elemente <details> und <summary> hinzugefügt (Firefox-Bug 1226455).
  • Das pattern-Attribut des <input>-Elements verwendet jetzt den 'u'-Parameter im zugrunde liegenden JavaScript RegExp (Firefox-Bug 1227906).
  • Um eine Änderung der Spezifikation zu berücksichtigen, wird ein ungültiger Wert des kind-Attributs des <track>-Elements jetzt wie "metadata" und nicht mehr wie "subtitles" behandelt (Firefox-Bug 1269712).
  • Das sandbox-Attribut des <iframe>-Elements unterstützt nun die Werte 'allow-popups-to-escape-sandbox' und 'allow-modals' (Firefox-Bug 1190641).
  • Unterstützung für Mikrodateneigenschaften und die Microdata-API wurde entfernt (Firefox-Bug 909633).
  • Das referrerpolicy-Attribut des <a>-Elements unterstützt jetzt die Werte 'no-referrer-when-downgrade' und 'origin-when-cross-origin' (Firefox-Bug 1178337).
  • Das form-Inhaltsattribut des <label>-Elements wurde entfernt. Die HTMLLabelElement.form-Eigenschaft existiert weiterhin, gibt nun jedoch das Formular zurück, mit dem das Steuerungselement des Labels verknüpft ist, falls ein solches existiert (und dieses Steuerungselement mit einem Formular verknüpft ist) (Firefox-Bug 1268852).

CSS

äfixed (Firefox-Bug 859301).

äfixed (Firefox-Bug 1039541).

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 Konstruktors URLSearchParams() ignoriert (Firefox-Bug 1268361).
  • Der von URL.origin, HTMLAnchorElement.origin und HTMLAreaElement.origin zurückgegebene Wert für URLs, die das blob:-Schema verwenden, ist nicht mehr fälschlicherweise null, sondern stattdessen der Ursprung der URL, der durch Entfernen des führenden blob: gebildet wird (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 das scrollbars-Feature von Window aktiviert, wenn Window.open() aufgerufen wird. In der Vergangenheit war empfohlen worden, dies zu aktivieren, aber es war nicht die Standardeinstellung (Firefox-Bug 1257887).
  • Die experimentelle und nicht standardisierte Methode HTMLMediaElement.seekToNextFrame() wurde hinzugefügt, die das frameweise Durchgehen von Videoinhalten ermöglicht (Firefox-Bug 1235301). Obwohl Sie dazu ermutigt werden, mit dieser Methode zu experimentieren, um uns zu helfen, zu verstehen, wie nützlich sie ist, verwenden Sie sie nicht in Produktion!
  • Die HTMLLabelElement.form-Eigenschaft gibt nun das Formular zurück, mit dem das Steuerungselement des Labels verknüpft ist, falls ein solches existiert (und dieses Steuerungselement mit einem Formular verknüpft ist). Zuvor wurden Label direkt mit Formularen durch diese Eigenschaft verknüpft (Firefox-Bug 1268852).
  • Unterstützung für den dritten Parameter von EventTarget.addEventListener(), entweder ein Boolean oder eine EventListenerOptions wurde hinzugefügt (Firefox-Bug 1266164 und Firefox-Bug 1266066).
  • Die audiospezifischen Lautstärke-Werte 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 Code-Werte für Tastaturereignisse für eine vollständige Liste verfügbarer Tastencodes.
  • Die Tasten, die bisher als "MozHomeScreen", "MozCameraFocusAdjust" und "MozPhoneCall" bezeichnet wurden, haben nun 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 Code-Werte für Tastaturereignisse für eine vollständige Liste verfügbarer Tastencodes.
  • Die Tastenwerte "Separator" und "MediaSkip" wurden entfernt, da sie veraltet und ungenutzt waren (Firefox Bug 1232919).
  • Tastenwerte und die entsprechenden Tastencodes "Hyper" und "Super" wurden hinzugefügt, um diese Legacy-Modifikatortasten darzustellen (Firefox Bug 1232919).
  • Zwei Tastenwerte für Multimedia-Zehnertastatur-Tasten wurden hinzugefügt: "Key11" und "Key12" (Firefox Bug 1232919).
  • Die folgenden neuen Tastenwerte wurden für Audiosteuerungstasten 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 standardmäßigen LaunchMediaPlayer-Tastenwert ersetzt (Firefox-Bug 1272592).
  • Zusätzliche Media Player-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 Workers und verwandtes

  • Das Objekt Response der Fetch API implementiert jetzt die redirected-Eigenschaft, die angibt, ob die Antwort zu einer Anforderung gehört, die umgeleitet wurde. Bitte lesen Sie die sicherheitsrelevanten Hinweise in der Dokumentation, bevor Sie diese Eigenschaft verwenden (Firefox-Bug 1243792).
  • In der Permissions API wird der 'push' PermissionDescriptor-Dictionary-Typ (im Standard als PushPermissionDescriptor bezeichnet) von Firefox nicht mehr unterstützt; dies liegt daran, dass Firefox ein Quota-System verwendet, um den userVisibleOnly-Status stattdessen zu kontrollieren, und es zu einem Fehler kam, wenn es auf eine PushPermissionDescriptor-Instanz stieß (Firefox-Bug 1266821). Mit diesem entfernten Dictionary 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 war, auch wenn der Benutzer nur eine der beiden Hardwarearten 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 war, obwohl der Benutzer den Zugriff auf eines, aber nicht beide, der übereinstimmenden Geräte verweigerte. Dies wurde behoben (Firefox-Bug 802326). Dies beinhaltete auch Änderungen der Benutzeroberfläche, um die Optionen "Kein Audio" oder "Kein Video" zu entfernen, wenn der Benutzer um Berechtigungen angefordert 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 keine Komponenten der angegebenen Streams sind, zur Verbindung hinzugefügt werden können. Stattdessen werden die Streams verwendet, um Tracks auf der Empfangsseite der Verbindung zu gruppieren (Firefox-Bug 1271669).

Neue APIs

Andere

MathML

Keine Änderung.

SVG

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

Audio/Video

Keine Änderung.

Plugins und Flash

Ab Firefox 49 blockiert Firefox standardmäßig bestimmte Arten von Flash-Inhalten, die für das ordnungsgemäße Funktionieren von Websites nicht erforderlich sind. Dieses Verhalten, das durch die Einstellung browser.safebrowsing.blockedURIs.enabled gesteuert wird, trägt dazu bei, die Leistung von Websites und Firefox im Allgemeinen zu verbessern, ohne die Benutzerfreundlichkeit der Website wesentlich zu beeinträchtigen. Es hilft auch, die Stabilität des Browsererlebnisses zu verbessern, indem eine Hauptursache für Abstürze beseitigt wird. Zu den blockierten Flash-Modulen gehören mehrere, die nur für Fingerprinting-Zwecke verwendet werden, sowie eine Reihe von „Supercookie“-Modulen, und in Zukunft kann die Anzahl der blockierten Module erweitert werden. Für Details siehe Firefox-Bug 1275591.

Dies markiert den nächsten Schritt auf dem Weg zu einer pluginfreien Zukunft. HTML ist sehr nahe an dem Punkt, an dem Plugins nicht mehr benötigt werden, um die Aufgabe zu erfüllen.

HTTP

Networking

  • Die Proxy Auto-Configuration (PAC)-Implementierung wurde aktualisiert. Jetzt unterstützen weekdayRange, dateRange und timeRange "umgekehrte Bereiche", z. B. 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 vorhandenen Inhalten zu verbessern, akzeptiert Firefox nun einige mit WebKit vorfixierte 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 entsprechende vorfixierte 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 unprefixed Äquivalente abgebildet: -webkit-linear-gradient(), -webkit-radial-gradient(), -webkit-repeating-linear-gradient() und -webkit-repeating-radial-gradient().
    • Der veraltete -webkit-gradient wird unterstützt (und zu einem regulären Gradient ü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 nicht auf ein unprefixed Äquivalent abgebildet):

  • Die WebKitCSSMatrix-Schnittstelle ist ein Alias von DOMMatrix

  • Die folgenden Medienabfrage-Features wurden implementiert:

    • -webkit-min-device-pixel-ratio als Alias für min-resolution mit demselben Wert (in dppx), obwohl dieses Feature [standardmäßig deaktiviert] ist(https://bugzil.la/1237720) (hinter about:config pref layout.css.prefixes.device-pixel-ratio-webkit)
    • -webkit-max-device-pixel-ratio als Alias für max-resolution mit demselben Wert (in dppx); dieses Feature ist ebenfalls standardmäßig deaktiviert, hinter demselben about:config pref.
    • -webkit-transform-3d immer übereinstimmend, was anzeigt, dass 3D-Transformationsunterstützung vorhanden ist.

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

WebExtensions

  • Unterstützung für den history wurde hinzugefügt. Dies bietet Zugriff auf den Browserverlauf, mit Methoden zum Suchen im Verlauf, Abrufen von Informationen über vorher besuchte Seiten und Hinzufügen sowie Entfernen von Verlaufseinträgen.
  • Die Methode tabs.removeCSS() wurde zur Tabs-API hinzugefügt. Mit dieser Methode können Sie CSS entfernen, das zuvor durch Aufrufen von tabs.insertCSS() eingefügt wurde.

Schnittstellen

Sonstiges

Keine Änderung.

Ältere Versionen