Chrome Beta v62 Adds Network Quality Estimator API, OpenType Variable Fonts, and More
Around the middle of each month we learn about the new changes going into the next beta version of Chrome and this month is no different. We last update the beta channel of Chrome received was last month and it was up to version 61. As expected, Google has just released some details of the next beta update, version 62, and it comes with some interesting new features such as the Network Quality Estimator API, OpenType variable fonts, and a way for sites to live-capture content in the form of a MediaStream.
The first of these major changes is the Network Quality Estimator API and while it has been available in previous versions of Chrome, it only gave theoretical network speeds based on the connection type of the end user. With version 62 of Chrome Beta though, this specific API has been expanded to provide developers with network performance metrics that have actually been experienced by the client. With this feature, the developer can tailor their content based on the network limitations of the end user.
Another new change in this update is the OpenType variable font feature. This change is a nice way for Chrome to bring new typographic capabilities to the web. The way things used to work, one font file only contained the single instance of a font family. This means it only included one font weight as well (regular, bold, black, etc.) or one font stretch (normal, condensed, expanded, etc.). With the OpenType variable fonts though, version 62 of Chrome Beta is able to provide a continuous spectrum of stylistic variations while also saving space and bandwidth.
The final new feature in the latest beta update is how the W3C Media Capture from DOM Elements API now allows sites to live-capture content in the form of a MediaStream. This is possible directly from HTMLMediaElements (i.e. <video> and <audio>) by invoking the captureStream() method on HTMLMediaElements. There are a number of other small changes here that Google has detailed in their blog post that we’ll include down below.
Chrome Beta v62 Changes
Other features in this release
- The Payment Request API is now available on Chrome for iOS.
- PaymentRequest now supports different prices and line items per payment method with PaymentDetailsModifier.data.
- Non-document and <body> elements can now take on viewport scrolling effects, like hiding the URL bar or generating overscroll glow, with document.rootScroller.
- DOM interfaces are now supported for the <data> and <time> HTML elements to give developers a native, machine-readable way to store client-side content.
- The CSS color parser now supports 8- and 4-digit hex colors of the format #RRGGBBAA and #RGBA.
- Lookbehind assertions are now available in addition to lookaheads, so developers can use regular expressions to ensure that a pattern is or isn’t preceded by another, e.g. matching a dollar amount without capturing the dollar sign.
- A new WebVR Origin Trial is now available, enabling developers to experiment with building rich Virtual Reality experiences on the web.
- Following previous announcements, the “Not secure” warning will now be displayed when users enter data on an HTTP page, and on all HTTP pages visited in Incognito mode.
- Developers can now use the s flag to enable dotAll mode in ECMAScript regular expressions, making “.” match any character, including line terminators.
- Uploading images on Chrome for Android has an improved user experience and multi-select support that triggers on any site that invokes <input type=”file”> with an accept attribute specifying that only images are accepted.
- Apps using the MediaSource API can now more effectively customize their HTMLMediaElement.seekable range logic using the new Media Source Extensions APIs, setLiveSeekableRange and clearLiveSeekableRange.
- The new visibility:collapse CSS declaration now hides table rows while preserving their contribution to column widths, rather than treating it like visibility:hidden, which merely skips painting the rows.
- Given a locale and a number, sites can now access language-dependent data on pluralization forms of numbers and the related surrounding text using Intl.PluralRules.
- Media Source Extensions (MSE) now support FLAC, a lossless audio coding format, in ISO-BMFF.
- Protected media can now be played offline through EME on Chrome for Android.
- Chrome for Android now supports Widevine L1, allowing sites to play encrypted media in a secure way.
- Loosened restrictions on escape sequences in template literals unlock new use cases for template tags, such as LaTeX processing.
- In Android O, sites with notification permissions now appear as a Notification Channel in Android Settings under Chrome, affording users a simpler way to manage permissions.
Deprecations and interoperability improvements
- Following an update to native button appearance on macOS, the appearance of <input> buttons and the <button> element have been similarly changed, affecting the default values for the background-color, border, border-radius, and padding CSS properties.
- The ability to request permission to show notifications has been removed over HTTP connections and within cross-origin iframes, in line with our policy on restricting powerful features to only HTTPS.
- To increase accuracy and ensure that users receive content in the language they expect, base language is now added immediately after language+region when generating accept-language headers from language settings.
- To improve UX and browser consistency, transitional mouse events will now be dispatched, and hover states will now be updated more quickly after the intended layout has been modified.
- OfflineAudioContext now accepts a dictionary argument, in addition to the existing constructor that takes three separate arguments.
- In line with other browsers, the getStreamById method on RTCPeerConnection has now been removed.
- SharedWorker.workerStart has been removed, following its deprecation and removal from other major browsers.
- To better conform to spec, the default value of <ol>.start has been set to 1.
Source: Chromium Blog