Unless otherwise noted, changes described below apply to the newest Chrome Beta channel release for Android, Chrome OS, Linux, Mac, and Windows.
JavaScript modules
Modules allow developers to declare a script's dependencies and are already popular in third-party build tools, which use them to bundle only the required scripts. This release adds native support for JavaScript modules via the new <script type=module> element.
Native support means the browser can fetch granular dependencies in parallel, taking advantage of caching, avoiding duplications across the page, and ensuring the script executes in the correct order, all without a build step.
To get started, learn more about JavaScript modules and the aspects of the JavaScript language affected by modules.
Payment Request API on desktop
The Payment Request API is now available for Windows, Mac, Linux, and ChromeOS, following the announcement of Android support last year. Developers can now offer secure, seamless checkout experiences across platforms. To get started, “check out” our integration guide.
The PaymentRequest process throughout a transaction.
Web Share API
To allow users to easily share content on social networks, developers have had to manually integrate sharing buttons into their site for each social service. This often leads to users not being able to share with the services they actually use, in addition to bloated page sizes and security risks from including third-party code.
Sites can now use the new navigator.share API on Chrome for Android to trigger the native Android share dialog, allowing the user to easily share text or links with any of their installed native apps. In a future release, this API will also be able to share to installed web apps.
The navigator.share API allows the user to share content with a variety of native apps via the native Android share dialog.
WebUSB
Most hardware peripherals such as keyboards, mice, printers, and gamepads are supported by high-level web platform APIs. To use specialized educational, scientific, or industrial USB peripherals, users must find and install potentially unsafe drivers and software with system-level privileges.
Chrome now supports the WebUSB API, allowing web apps to communicate with peripherals given a user's consent. This enables all the functionality provided by these devices, while still preserving the security guarantees of the web.
Other features in this release
The Network Information API is now available on desktop as well as Android, enabling sites to access the underlying connection information of a device.
Developers can now specify scrolling smoothness via a new optional parameter in existing Scroll APIs or with the scroll-behavior CSS property.
The CSSOM View Smooth Scroll API brings native smooth scrolling to the platform through a the scroll-behavior: smooth CSS property or by using the window.scrollTo() DOM scroll method, eliminating the need to implement this behavior with JavaScript
CSS color values can now be 8- and 4-digit hex colors of the format #RRGGBBAA and #RGBA.
Sites can now access the relative positions of the screen content with the Visual Viewport API, exposing complex functionality like pinch-and-zoom in a more direct way.
The Device RAM API is now available, exposing the amount of RAM on a user’s device to sites to optimize overall performance of a web application.
When navigating from an installed web app to a site outside the initial web app’s scope, the new site now automatically loads in a Custom Chrome Tab.
For video using native controls, Chrome will now automatically expand video to fullscreen when a user rotates their device in an orientation that matches a video playing on the screen.
nextHopProtocol is now available in Resource Timing and Navigation Timing, providing access to the network protocol used to fetch a resource.
Sites can now require embedded third-party content to enforce a given Content Security Policy via the new csp attribute on <iframe> elements.
The DOMTokenList interface now supports replace() to easily change all identical tokens to a new one, such as active to inactive on expiration.
To access a list of attribute names of an element, getAttributeNames() is now supported and gives developers a more direct mechanism than going through the attributes collection.
To increase security, sites will now automatically exit full screen if a JavaScript dialog opens.
Sites can now access an estimate for the disk space used by a given origin and quota in bytes via the Storage API’s new navigator.storage.estimate() function.
To improve the browser’s cache hit rate, URLSearchParams now supports sort() to list all stored name-value pairs.
The URLSearchParams constructor has been updated to accept any object as a parameter instead of only other URLSearchParams instances.
To prevent the use of mis-issued certificates from going unnoticed, sites can use the new Expect-CT HTTP header which will enable automated reporting and/or enforcement of Certificate Transparency requirements.
Chrome will no longer decode frames for videos using Media Source in background tabs.
"Non-Live" camera settings such as photo resolution, red eye reduction, and flash mode can now be retrieved with ImageCapture.getPhotoSettings().
Deprecations and interoperability improvements
To increase security, resources with URLs containing both \n and < characters will now be blocked.
To increase security, support for the Presentation API’s start function has been deprecated and removed for insecure contexts.
To increase consistency across on<event> attributes, onwheel attributes have been moved from Element to Window, Document, HTMLElement, and SVGElement.
To better follow spec and provide more granular control over the flow of referred content, Chrome now supports three new Referrer Policy values, same-origin, strict-origin, and strict-origin-when-cross-origin.
Following the change in spec, the maximum value for colSpan has been decreased from 8190 to 1000.
Posted by Domenic Denicola, Maverick Modulator