files/en-us/mozilla/firefox/releases/50/index.md
To test the latest developer features of Firefox, install Firefox Developer Edition. Firefox 50 was released on November 15, 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.
isolate-override value (Firefox bug 1249497).src attribute now works correctly (Firefox bug 1281418).referrerpolicy attribute on {{HTMLElement("area")}}, {{HTMLElement("a")}}, {{HTMLElement("img")}}, {{HTMLElement("iframe")}} and {{HTMLElement("link")}} elements is now available by default (Firefox bug 1223838, Firefox bug 1264165).:-moz-full-screen-ancestor pseudo-class selector has been removed (Firefox bug 1199529).isolate, isolate-override, and plaintext of the {{cssxref("unicode-bidi")}} property have been unprefixed (Firefox bug 1141895).space value for {{cssxref("border-image-repeat")}} has been implemented (Firefox bug 720531).All devtools bugs fixed between Firefox 49 and Firefox 50.
__Host- and __Secure- have been implemented. See {{HTTPHeader("Set-Cookie")}} and Firefox bug 1283368.ping attribute of {{htmlelement("a")}} element now abides by the connect-src CSP 1.1 policy directive (Firefox bug 1100181).sandbox CSP directive has been added (Firefox bug 671389).false as expected (Firefox bug 1234813).SSL_ERROR_NO_CYPHER_OVERLAP error.NetworkError, asynchronous {{domxref("XMLHttpRequest")}} that fails for CORS or other network constraints now raises an {{domxref("XMLHttpRequestEventTarget/error_event", "error")}} that can be caught like any other error (Firefox bug 709991).network.http.keep_empty_response_headers_as_empty_string (Firefox bug 918721).only-if-cached option has been added to Request.cache (Firefox bug 1272436).once option for {{domxref("EventTarget.addEventListener()")}} is now supported (Firefox bug 1287706).options parameter for creating custom elements (Firefox bug 1276579).allowReorder attribute has been dropped and the behavior it was setting is now the default for SVG {{SVGElement("switch")}} elements (Firefox bug 1279690).defer keyword for the {{SVGAttr("preserveAspectRatio")}} attribute on SVG {{SVGElement("image")}} elements has been removed to follow the latest SVG2 specification (Firefox bug 1280425).dragdrop and draggesture are no longer supported. Be sure to update any code still using them to use the HTML drag and drop API (Firefox bug 1162050.requestPointerLock() asked for permission using a doorhanger, and pointer lock would not be enabled until the user granted permission. From Firefox 50, pointer lock is like the fullscreen API: it's granted immediately, but a notification is displayed explaining to the user how to exit (Firefox bug 1273351).PIXEL_UNPACK_BUFFER) (Firefox bug 1280499).onaddtrack property to handle "addtrack" events.RTCDataChannel.stream property has been removed. This was replaced with {{domxref("RTCDataChannel.id")}} in Firefox 24, but was supported for backward compatibility. Please be sure to update your code to use the id property if you haven't done so yet.AlignSetting enum (representing possible values for {{domxref("VTTCue.align")}}) incorrectly previously included the value "middle" instead of "center". This has been corrected (Firefox bug 1276130).Navigator.battery property, which has been deprecated since Firefox 43, is now obsolete and has been removed. Use the {{domxref("navigator.getBattery()")}} method instead to get a battery {{jsxref("Promise")}}, which will resolve when the {{domxref("BatteryManager")}} is available for use; the {{domxref("BatteryManager")}} is passed into the fulfillment handler for the promise (Firefox bug 12593355).A subset of the File and Directory Entries API has been implemented, to improve compatibility with sites that were previously only compatible with Google Chrome (Firefox bug 1265767).
The asynchronous API interfaces have been implemented, with the caveat that only reading of files is supported; for example, the {{domxref("FileSystemFileEntry.createWriter()")}} method is a no-op.
These interfaces have been implemented:
{{domxref("HTMLInputElement.webkitdirectory")}} as well as the webkitdirectory attribute of the {{HTMLElement("input")}} element have been implemented; this lets you configure a file input to accept directories instead of files (Firefox bug 1258489).
{{domxref("HTMLInputElement.webkitEntries")}} has been implemented; this returns an array of {{domxref("FileSystemEntry")}}-based objects representing the selected items.
{{domxref("File.webkitRelativePath")}} has been implemented; this contains the path of the file relative to the root of the containing {{domxref("FileSystemDirectoryEntry")}} that was among the items in the list returned by {{domxref("HTMLInputElement.webkitEntries")}}.
These APIs are now enabled by default; some were previously available but only behind a preference (Firefox bug 1288683).
We've implemented {{domxref("DataTransferItem.webkitGetAsEntry()")}} as part of the File and Directory Entries API; this lets you obtain a {{domxref("FileSystemEntry")}} representing a dropped file (Firefox bug 1289255). This is enabled by default.
The HTMLInputElement.directory property, part of the Directory Upload API proposal, has been renamed to allowdirs (Firefox bug 1288681). This property is hidden behind a preference.