Mozilla released Firefox 53 today and we just installed it in our browser cloud. You can now cross-browser test your webapps and js in Firefox 53!

Browser cloud testing in Firefox 53

Try Firefox 53 in Browserling now!

Firefox 53 New Features

  • Two new compact themes available in Firefox, dark and light, based on the Firefox developer edition's theme.
  • Windows 7+ users on 64-bit OS can select 32-bit or 64-bit versions in the stub installer.
  • Lightweight themes are now applied in private browsing windows.
  • Reader Mode now displays estimated reading time for the page.
  • Improved graphics stability for Windows users with the addition of compositor process separation called quantum compositor.

Firefox 53 Changes

  • Windows XP and Vista are no longer supported. XP and Vista users running Firefox 52 will continue to receive security updates on Firefox ESR 52.
  • 32-bit Mac OS X is no longer supported. 32-bit Mac OS X users can switch to Firefox ESR 52 to continue receiving security updates.
  • Ended Firefox Linux support for processors older than Pentium 4 and AMD Opteron.
  • The last few characters of shortened tab titles fade out instead of being replaced by ellipses to keep more of the title visible.
  • Updated the design of site permission requests to make them harder to miss and easier to understand.
  • Updates for Mac OS X are smaller in size compared to updates for Firefox 52.
  • Support for WebM video with alpha, which allows playing videos with transparent backgrounds.
  • New visual design for audio and video controls.

Firefox 53 Developer Tool Changes

  • Avoid scrolling latency on highlighters given by APZ.
  • Added option to copy the full CSS path of an element.
  • Devtools support for css-color-4.
  • Markup view: add a visual hint between opening and closing tags of a collapsed node.

Firefox 53 DOM Changes

  • Fixed: The pathname and search HTMLHyperLinkElementUtils properties previously returned the wrong parts of the URL.
  • The URLSearchParams() constructor now accepts a USVString or sequence of USVStrings as an init object.
  • The Selection.setBaseAndExtent() method of the Selection API is now implemented.
  • The "fakepath" addition to file type <input> values has been implemented in Gecko, giving it parity with other browsers.
  • Node.getRootNode() has been implemented, replacing the deprecated Node.rootNode property.
  • Own properties of Plugin and PluginArray objects are no longer enumerable.
  • Named properties of MimeTypeArray objects are no longer enumerable.
  • The Permissions API now has a new permission name available — persistent-storage — as used when making a Permissions.query().
  • The Performance.timeOrigin property has been implemented.

Firefox 53 CSS Changes

  • The mask-* longhand properties (see CSS Masks) are all supported and available by default.
  • Added caret-color property.
  • Implemented the place-items/place-self/place-content shorthands.
  • Added flow-root value to display property.
  • -moz-tab-size now accepts <length> values, and is now animatable.
  • mask-mode:luminance doesn't work on gradient masks.
  • [css-grid] FR Unit in grid-template-rows not filling viewport.
  • flex items aren't sorted according to "order", if they're separated by an abspos sibling.
  • Enable mask longhands on SVG elements.
  • [css-grid] Fixed: align-self/justify-self:stretch/normal doesn't work on <table> grid items.
  • Fixed: clip-path: circle() with large reference box and percentage radius does not render correctly is no longer removed.
  • The availability of the contents value of display was controlled through the layout.css.display-contents.enabled pref. In Firefox 53 this pref has been removed altogether, so the value will always be available and can no longer be disabled.
  • Removed -moz prefixed variant of :dir() pseudo-class.
  • The -moz prefixed version of text-align-last got removed.
  • Removed -moz prefixed variant of calc() method.
  • The proprietary -moz-samplesize media fragment (added to aid in delivery of downsampled images to low memory Firefox OS devices) has been removed.

Firefox 53 JavaScript Changes

  • ECMAScript 2015 semantics for the Function.name properties have been implemented.
  • ECMAScript 2015 semantics for closing iterators have been implemented.
  • The Template Literal Revision proposal that lifts escape sequence restrictions on tagged template literals has been implemented.
  • The non-standard String generics now present a deprecation warning in the console.
  • The static length property of TypedArray objects was changed from 3 to 0.
  • SharedArrayBuffer can now be used in DataView objects.
  • In earlier versions of the specification, SharedArrayBuffer objects needed to be explicitly transferred during structured cloning. In the new specification they aren't transferable objects anymore and thus must not be in the transfer list. The new behavior used to present a console warning only, but will now throw an error.
  • The ArrayBuffer length is now limited to Number.MAX_SAFE_INTEGER (>= 2 ** 53).
  • Error.prototype and other native error object prototypes like RangeError.prototype etc. are now ordinary objects instead of proper Error objects. (In particular, Object.prototype.toString.call(Error.prototype) is now "[object Object]" instead of "[object Error]".).
  • The non-standard ArrayBuffer.slice() method has been removed (but the standardized version ArrayBuffer.prototype.slice() is kept).

Firefox 53 Workers and Service Workers Changes

  • The Network Information API is now available in workers.
  • Server-sent events can now be used from workers.
  • ExtendableEvent.waitUntil() can now be called asynchronously.

Firefox 53 Events Changes

  • CSS Transitions: The transitionstart, transitionrun, and transitioncancel events have been implemented.
  • The CompositionEvent constructor has been implemented.
  • The MouseEvent.x and MouseEvent.y aliases of MouseEvent.clientX/MouseEvent.clientY have been implemented.
  • The auxclick event and corresponding GlobalEventHandlers.onauxclick handler have been implemented.
  • The transitioncancel event is now fired after a transition is cancelled.

Firefox 53 WebGL Changes

  • The WEBGL_compressed_texture_astc WebGL extension has been implemented.
  • The WEBGL_debug_renderer_info WebGL extension is now enabled by default.

Firefox 53 HTTP and Networking Changes

  • Support for Next Protocol Negotiation (NPN) has been removed in favor of Application-Layer Protocol Negotiation (ALPN).
  • The Large-Allocation HTTP header is now available by default, and no longer hidden behind a pref.
  • Gecko now has a pref available in about:config to allow users to set their default Referrer-Policy.

Firefox 53 WebGL Changes

  • The WEBGL_compressed_texture_astc WebGL extension has been implemented.
  • The WEBGL_debug_renderer_info WebGL extension is now enabled by default.

Firefox 53 Audio, Video and Media Changes

  • Beginning in Firefox 53 for Android, decoding of media is handled out-of-process for improved performance on multi-core systems.
  • The HTMLMediaElement.play() method, used to begin playback of media in any media element, now returns a Promise which is fulfilled when playback begins and is rejected if an error occurs.
  • The AudioScheduledSourceNode interface has been added and the AudioBufferSourceNode, ConstantSourceNode, and OscillatorNode interfaces are now based on it.
  • All the different audio node types have had constructors added to them.
  • The RTCPeerConnection methods createOffer() and createAnswer() now return a Promise that returns an object conforming to the dictionary RTCSessionDescriptionInit instead of returning an RTCSessionDescription directly.
  • Similarly, the RTCPeerConnection methods setLocalDescription() and setRemoteDescription() now accept as input an object conforming to the dictionary RTCSessionDescriptionInit.
  • RTCPeerConnection.addIceCandidate() now accepts as input an object conforming to the RTCIceCandidateInit dictionary.
  • DTMF support is now enabled by default using RTCDTMFSender.

Firefox 53 SVG Changes

  • Partly implemented SVGGeometryElement interface.

Firefox 53 WebExtensions Changes

  • New API: browsingData
  • New API: identity
  • New API: contextualIdentities
  • Improved API: storage.sync
  • Improved: page_action, browser_action, password, tab context types in contextMenus
  • Improved: webRequest.onBeforeRequest now supports requestBody
  • Improved: tabs.insertCSS now supports cssOrigin, enabling you to insert user style sheets.

Firefox 53 security fixes

  • CVE-2017-5465: Out-of-bounds read in ConvolvePixel.
  • CVE-2017-5436: Out-of-bounds write with malicious font in Graphite 2.
  • CVE-2017-5466: Origin confusion when reloading isolated data:text/html URL.
  • CVE-2017-5439: Use-after-free in nsTArray Length() during XSLT processing.
  • CVE-2017-5445: Uninitialized values used while parsing application/http-index-format content.
  • CVE-2017-5442: Use-after-free during style changes.
  • CVE-2017-5443: Out-of-bounds write during BinHex decoding.
  • CVE-2017-5464: Memory corruption with accessibility and DOM manipulation.
  • CVE-2017-5448: Out-of-bounds write in ClearKeyDecryptor.
  • CVE-2017-5438: Use-after-free in nsAutoPtr during XSLT processing.
  • CVE-2017-5468: Incorrect ownership model for Private Browsing information.
  • CVE-2017-5446: Out-of-bounds read when HTTP/2 DATA frames are sent with incorrect data.
  • CVE-2017-5460: Use-after-free in frame selection.
  • CVE-2017-5452: Addressbar spoofing during scrolling with editable content on Firefox for Android.
  • CVE-2017-5449: Crash during bidirectional unicode manipulation with animation.
  • CVE-2017-5463: Addressbar spoofing through reader view on Firefox for Android.
  • CVE-2017-5469: Potential Buffer overflow in flex-generated code.
  • CVE-2017-5432: Use-after-free in text input selection.
  • CVE-2017-5434: Use-after-free during focus handling.
  • CVE-2017-5435: Use-after-free during transaction processing in the editor.
  • CVE-2017-5461: Out-of-bounds write in Base64 encoding in NSS.
  • CVE-2017-5455: Sandbox escape through internal feed reader APIs.
  • CVE-2017-5450: Addressbar spoofing using javascript: URI on Firefox for Android.
  • CVE-2017-5430: Memory safety bugs fixed in Firefox 53 and Firefox ESR 52.1.
  • CVE-2017-5453: HTML injection into RSS Reader feed preview page through TITLE element.
  • CVE-2017-5458: Drag and drop of javascript: URLs can allow for self-XSS.
  • CVE-2017-5433: Use-after-free in SMIL animation functions.
  • CVE-2017-5462: DRBG flaw in NSS.
  • CVE-2017-5467: Memory corruption when drawing Skia content.
  • CVE-2017-5456: Sandbox escape allowing local file system access.
  • CVE-2017-5444: Buffer overflow while parsing application/http-index-format content.
  • CVE-2017-5447: Out-of-bounds read during glyph processing.
  • CVE-2017-5429: Memory safety bugs fixed in Firefox 53, Firefox ESR 45.9, and Firefox ESR 52.1.
  • CVE-2017-5440: Use-after-free in txExecutionState destructor during XSLT processing.
  • CVE-2016-10196: Vulnerabilities in Libevent library.
  • CVE-2017-5454: Sandbox escape allowing file system read access through file picker.
  • CVE-2017-5441: Use-after-free with selection during scroll events.
  • CVE-2017-5459: Buffer overflow in WebGL.
  • CVE-2017-5451: Addressbar spoofing with onblur event.

Happy cross-browser testing in Firefox 53!