This post was originally published at Firefox 64 Released
Firefox 64 is available today! Our new browser has a wealth of exciting developer additions both in terms of interface features and web platform features, and we can’t wait to tell you about them. You can find out all the news in the sections below — please check them out, have a play around, and let us know your feedback in the comment section below.
New Firefox interface features
Multiple tab selection
We’re excited to introduce multiple tab selection, which makes it easier to manage windows with many open tabs. Simply hold Control (Windows, Linux) or Command (macOS) and click on tabs to select them.
Once selected, click and drag to move the tabs as a group — either within a given window, or out into a new window.
Our Developer Tools also gained a notable new feature: when hovering over text, the Accessibility Inspector now displays text contrast ratios in the pop-up infobar.
The infobar also indicates whether or not the text meets WCAG 2.0 Level AA or AAA accessibility guidelines for minimum contrast.
Another great addition is related to Responsive Design Mode — device selection is now saved between sessions.
New CSS features in 64
Standardizing proprietary styling features
As part of our platform work, we’re trying to standardize some of the non-standard CSS features that have often caused developers cross-browser headaches. Landing in 64 we’ve got the following:
- CSS Scrollbars: The CSS Scrollbars Level 1 spec standardizes features for setting scrollbar width and color, which were originally only available in Internet Explorer. See CSS Scrollbars on MDN Web Docs and Scrollbars on CSS Tricks for more information.
-webkit-appearance: To make the effects of the
appearanceproperty more consistent across browsers, Firefox has unshipped all of its own proprietary values from web content, and added support for all the
-webkit-prefixed versions that are in common use. See https://developer.mozilla.org/en-US/docs/Web/CSS/appearance on MDN Web Docs for more information.
- Going forward in Firefox, if a selector chain or group includes a
-webkit-prefixed pseudo-element, that pseudo-element no longer invalidates the whole group.
New media queries
Firefox 64 sees the addition of new media queries from the Level 4 and Level 5 specifications for detecting pointers/touchscreens, whether the user can hover over something, and whether the user prefers reduced-motion.
Multi-position color stop gradients
CSS gradients now support multi-position color stops (e.g. see their use on linear gradients). So now
yellow 25%, yellow 50% can now be written
yellow 25% 50%, for example.
There were a lot of internal improvements this time around. In terms of developer facing improvements:
- The TC39 Well-formed JSON.stringify proposal has been implemented, to prevent JSON.stringify from returning ill-formed Unicode strings.
- Proxied functions can now be be passed to Function.prototype.toString
New Web API highlights
Fullscreen API unprefixed
mozRequestFullScreen! The Fullscreen API is now available in Firefox without a prefix. The requestFullscreen and exitFullscreen APIs now also return promises that resolve once the browser finishes transitioning between states.
WebVR 1.1 in macOS
What’s more immersive than Fullscreen? Virtual reality, of course. And Firefox 64 now supports WebVR 1.1 on macOS!
startMessages() for Service Workers
On a completely unrelated note, pages with Service Workers can now use the startMessages() API to begin receiving queued worker messages, even before page loading has completed.
New Add-ons Features
What follows are the highlights. For more details, see Extensions in Firefox 64.
Context menu enhancements
Firefox 64 introduces an entirely new API,
browser.menus.overrideContext, which allows complete customization of the context menu shown within add-on content like sidebars, popups, etc. These context menus can also automatically include custom entries from other add-ons, as though the user had right-clicked on a tab or bookmark. Piro’s blog post explains how it all works.
- You can now restrict where context menus can appear in an add-on using the new
viewTypesproperty in menus.create() and menus.update().
- menus.update() can now be used to update the icon of an existing menu item.
- Extensions can now detect which mouse button was used when a menu item was clicked — this can be found using the new
buttonproperty of menus.OnClickData.
Custom content in the Dev Tools inspector
Also, add-ons can now display custom content within the Dev Tools Inspector sidebar by calling the new sidebar.setPage() API.
Managing add-ons updated
For users, the add-on management interface,
about:addons, was redesigned to match Firefox’s preferences page, and right-clicking an add-on icon in the browser toolbar now offers options to directly remove or manage that add-on.
Privacy features for your protection
Symantec CA Distrust
Due to a history of malpractice, Firefox 64 will not trust TLS certificates issued by Symantec (including under their GeoTrust, RapidSSL, and Thawte brands). Microsoft, Google, and Apple are implementing similar measures for their respective browsers.
Referrer-Policy for stylesheets
The Referrer-Policy header now applies to requests initiated by CSS (e.g.,
background-image: url("http://...") ). The default policy,
no-referrer-when-downgrade, omits referrer information when a secure origin (
https) requests data from an insecure origin (
buildID fixed timestamp
Lastly, from now on the non-standard navigator.buildID property will always return a fixed timestamp,
20181001000000, to mitigate its potential abuse for fingerprinting.
For more information, see Firefox 64 for Developers on MDN, and the official Firefox 64 Release Notes. If you’re a web developer, you may also be interested in the Firefox 64 Site Compatibility notes.
This post was originally published at Firefox 64 Released