files/en-us/mozilla/firefox/releases/49/index.md
To test the latest developer features of Firefox, install Firefox Developer Edition Firefox 49 was released on September 20, 2016. This article lists key changes that are useful not only for web developers, but also Firefox and Gecko developers as well as add-on developers.
JavaScript errors logged into the console now provide a [Learn more] link for additional debugging help (Firefox bug 1179876).
CSS autocomplete: show more suggestions in autocomplete popup (Firefox bug 1260419).
The Animation Inspector now exposes animation performance information in DevTools (Firefox bug 1254408).
The Inspector's context menu has been reorganized to be cleaner and easier to use (Firefox bug 1211613).
The Inspector now supports #RRGGBBAA and #RGBA syntax for color values (Firefox bug 1271191).
The developer tools no longer display self-closing tags (such as {{HTMLElement("br")}} and {{HTMLElement("img")}} as if they have a closing tag on HTML pages; the behavior is unchanged for XHTML pages (Firefox bug 820926).
Accessibility improvements!
The Network Monitor now shows a Cause column, which provides an indication of what caused each particular network request (Firefox bug 1134073).
In the about:debugging Add-ons page, the Reload button is only enabled for temporary add-ons. It will be disabled for all other add-ons (Firefox bug 1273184).
In the about:debugging Workers page, a warning message will be displayed in the Service Workers section if service workers are incompatible with the current browser configuration (Firefox bug 1266415).
about:debugging now has a new Tabs page available, which provides a complete list of all the debuggable tabs open in the current Firefox instance (Firefox bug 1266128).
The Disable Cache option in the Toolbox Advanced settings has been renamed to Disable HTTP Cache, to make it clearer that this affects the HTTP cache, and not Service Workers/the Cache API (bug(1253018)).
The Storage Inspector now allows IndexedDB databases to be deleted via their own context menus (Firefox bug 1205123), and will display warning messages if the IndexedDB cannot be deleted for some reason (if there are still active connections, for example) (Firefox bug 1268460).
pattern attribute of the {{HTMLElement("input")}} element now uses the 'u' parameter in the underlying JavaScript {{jsxref("RegExp")}} (Firefox bug 1227906).kind attribute of the {{HTMLElement('track')}} element is now treated like "metadata" instead of "subtitles" (Firefox bug 1269712).sandbox attribute now supports the 'allow-popups-to-escape-sandbox' and 'allow-modals' values (Firefox bug 1190641).referrerpolicy attribute on the {{HTMLElement("a")}} element now supports the 'no-referrer-when-downgrade' and 'origin-when-cross-origin' (Firefox bug 1178337).form content attribute of the {{HTMLElement("label")}} element has been removed. The {{domxref("HTMLLabelElement.form")}} property still exists, but now returns the form with which the label's control is associated, if there is a control (and if that control is associated with a form) (Firefox bug 1268852).Added {{cssxref("background-position-x")}} and {{cssxref("background-position-y")}}, which allow separately specifying the horizontal and vertical offsets at which to draw a background image; these are components of {{cssxref("background-position")}} (Firefox bug 550426).
Added support for the round and space keywords to {{cssxref("background-repeat")}} (Firefox bug 548372).
On {{cssxref("background-clip")}}, the keyword text is now activated by default (Firefox bug 1264905).
Added support for specifying colors with an alpha channel using 4- and 8-digit CSS hex color values (#RRGGBBAA and #RGBA) (Firefox bug 567283).
The pseudo-class {{cssxref(":dir")}} has been unprefixed (Firefox bug 859301).
In our experimental implementation (not yet activated by default) of {{cssxref("clip-path")}}, we can now interpolate between {{cssxref("<basic-shape>")}} values (Firefox bug 1110460).
Added the q length unit (Firefox bug 1274526).
The property {{cssxref("text-align-last")}} has been unprefixed (Firefox bug 1039541).
Added support for {{cssxref("overflow-wrap")}}, replacing word-wrap that is still supported as an alternative name (Firefox bug 955857).
Our experimental CSS Grids implementation has been improved:
grid-gap, grid-row-gap, and grid-column-gap properties (Firefox bug 1266268).baseline and last-baseline (aka "baseline self-alignment") (Firefox bug 1221525).Our experimental CSS Masks implementation has been improved:
border-box instead of padding-box as initial value, to match the spec (Firefox bug 1258286).space and round values (Firefox bug 1258626).The preference controlling {{cssxref("text-emphasis")}} has been removed, so support for this property can no longer be disabled (Firefox bug 1229609).
RegExp.prototype[Symbol.match](), RegExp.prototype[Symbol.replace](), RegExp.prototype[Symbol.search](), and RegExp.prototype[Symbol.split]() methods, and RegExp[Symbol.species] getter have been implemented (Firefox bug 887016).flags argument of {{jsxref("String.prototype.match")}}/{{jsxref("String.prototype.search", "search")}}/{{jsxref("String.prototype.replace", "replace")}} has been removed (Firefox bug 1108382).'?' characters are now ignored in the parameter of the {{domxref("URLSearchParams.URLSearchParams", "URLSearchParams()")}} constructor (Firefox bug 1268361).blob: scheme is no longer incorrectly null but is instead the origin of the URL formed by removing the leading blob: (Firefox bug 1270451).'prerender' (Firefox bug 1069772).TouchList.identifiedTouch() method has been removed (Firefox bug 1188539).scrollbars {{domxref("Window")}} feature is enabled when calling {{domxref("Window.open()")}}. In the past, while it was strongly recommended to enable it, it wasn't the default (Firefox bug 1257887).EventListenerOptions has been added (Firefox bug 1266164 and Firefox bug 1266066)."VolumeDown" is now "AudioVolumeDown", "VolumeUp" is now "AudioVolumeUp", and "VolumeMute" is now "AudioVolumeMute". This brings Firefox into alignment with the latest draft of the UI Events specification (Firefox bug 1272578). See Code values for keyboard events for a full list of available key codes."MozHomeScreen", "MozCameraFocusAdjust", and "MozPhoneCall" now have official names in the UI Events specification: "GoHome", "CameraFocus", and "Call". Firefox 49 has been updated to use the new names (Firefox bug 1272599). See Code values for keyboard events for a full list of available key codes."Separator" and "MediaSkip" have been removed, as they were deprecated and unused (Firefox bug 1232919)."Hyper" and "Super" have been added to represent these legacy modifier keys (Firefox bug 1232919)."Key11" and "Key12" (Firefox bug 1232919)."AudioBassBoostToggle", "AudioTrebleDown", and "AudioTrebleUp" (Firefox bug 123919).MicrophoneToggle, MicrophoneVolumeDown, MicrophoneVolumeUp, and MicrophoneVolumeMute (Firefox bug 123919).SpeechCorrectionList and SpeechInputToggle (Firefox bug 1232919).AppSwitch, Call, CameraFocus, EndCall, GoBack, GoHome, HeadsetHook, LastNumberRedial, Notification, MannerMode, and VoiceDial (Firefox bug 1232919).LaunchContacts and LaunchPhone (Firefox bug 1232919).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, and DVR (Firefox bug 1232919).MediaSelect has been replaced with the standard LaunchMediaPlayer key value (Firefox bug 1272592).MediaAudioTrack, MediaSkipBackward, MediaSkipForward, MediaStepBackward, MediaStepForward, MediaTopMenu, NavigateIn, NavigateNext, NavigateOut, and NavigatePrevious (Firefox bug 1232919).PermissionDescriptor dictionary type (referred to in the spec as PushPermissionDescriptor); this is because Firefox relies on a quota system for controlling the userVisibleOnly status instead, and was throwing an error when it encountered a PushPermissionDescriptor instance (Firefox bug 1266821). With this dictionary removed, Firefox now ignores it.network.http.keep_empty_response_headers_as_empty_string is set to true (Firefox bug 669259).Document.onfullscreenchange and Document.onfullscreenerror have been removed from {{domxref("Element")}} as they were never fired there; the prefixed versions of these event handlers have been kept there for compatibility purposes, however (Firefox bug 1270386). Note that this is not yet activated by default, but is behind the full-screen-api.unprefix.enabled preference (Firefox bug 1268749).Document.mozFullScreen property has been unprefixed to {{domxref("Document.fullscreen")}} Firefox bug 1269157. Note that this is not yet activated by default by behind the full-screen-api.unprefix.enabled preference (Firefox bug 1268749).PerformanceCompositeTiming and PerformanceRenderTiming, has been removed as the spec has been completely rewritten (Firefox bug 1271846).PositionAlign enum instead of an Align enum (Firefox bug 1276129).{disableNormalization: true} (Firefox bug 1265405).PositionAlignSetting enum as per spec; previously it returned an AlignSetting enum (Firefox bug 1276129).No change.
<altGlyph>, <altGlyphDef> and <altGlyphItem> elements (Firefox bug 1260032).No change.
Beginning in Firefox 49, Firefox, by default, blocks certain kinds of Flash content that aren't necessary for sites to function well. This behavior, controlled by the preference browser.safebrowsing.blockedURIs.enabled, helps to improve the performance of sites and Firefox in general without having significant impact on site usability. It also helps improve stability of the browsing experience by eliminating a major cause of crashes. The blocked Flash modules include several used just for fingerprinting purposes, as well as a number of "supercookie" modules, and in the future may be expanded to include more types of blocked modules. See Firefox bug 1275591 for details.
This marks the next step in the journey toward a plugin-free future. HTML is very close to the point where plugins will no longer be needed to get the job done.
Cache-Control: immutable directive has been implemented (Firefox bug 1267474). See also this blog post for more information.require-sri-for {{HTTPHeader("Content-Security-Policy")}} has been implemented (Firefox bug 1265318).weekdayRange, dateRange, and timeRange support "reversed ranges", for example, weekdayRange("SAT", "MON") will evaluate true if the current day is Saturday, Sunday, or Monday (Firefox bug 1251332).In order to improve compatibility with existing content, Firefox now accepts some WebKit prefixed properties and attributes.
The following properties now also work prefixed with -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-selectThe following properties map to the equivalent prefixed property:
-webkit-box-flex-webkit-box-ordinal-group-webkit-box-orient-webkit-box-align-webkit-box-packFor {{cssxref("<image>")}} values:
-webkit-linear-gradient(), -webkit-radial-gradient(), -webkit-repeating-linear-gradient(), and -webkit-repeating-radial-gradient().-webkit-gradient is supported (and translated to a regular gradient)The following {{cssxref("display")}} values are translated:
-webkit-box to -moz-box-webkit-flex to flex-webkit-inline-box to inline-flex-webkit-inline-flex to -moz-inline-flexThe following properties are supported (and don't map to any unprefixed equivalent):
The WebKitCSSMatrix interface is an alias of {{domxref("DOMMatrix")}}
The following media query features have been implemented:
-webkit-min-device-pixel-ratio as an alias of min-resolution with the same value (in dppx), though this feature is disabled by default (behind about:config pref layout.css.prefixes.device-pixel-ratio-webkit)-webkit-max-device-pixel-ratio as an alias of max-resolution of the same value (in dppx); this feature is also disabled by default, behind the same about:config pref.-webkit-transform-3d always matching, indicating 3d transform support.mozSystemGroup, active only in code running in XBL or in Firefox's chrome, is a {{jsxref("Boolean")}} which indicates if the listener is added to the system group. (Firefox bug 1274520)No change.