Google Chrome 103 landed way back on June 21 with faster page loads and local font access. This means that it has been almost six weeks since the release of a Chrome major version, which is a bit unusual since Chrome releases typically arrive after every four weeks. Regardless, Chrome 104 is arriving today, and it has a lengthy changelog that includes support for region capture and an original trial for credit card information storage opt-out, among many other things.
The headlining feature this time around is an updated region capture API which not only allows applications to video-capture your tab but also crop it. Developers have been strongly in support of this API, according to Google.
Another feature that has caused some stir in the browser community is an enhanced Web Bluetooth API in Chrome 104. This API now integrates with the Permissions Policy empowers websites to communicate with other devices over Bluetooth, but not cross-origin iframes. Google believes that this opens multiple productivity and communication avenues without compromising on security.
However, it has faced stiff resistance from Mozilla and Apple, both of whom have “negative” feedback about the API. Apple believes that the API lowers security and enables fingerprinting behaviors. The company says that it “do[es] not yet see a path to resolving those concerns”. Mozilla has voiced similar concerns by calling the API “harmful” and noting that:
This API provides access to the Generic Attribute Profile (GATT) of Bluetooth, which is not the lowest level of access that the specifications allow, but its generic nature makes it impossible to clearly evaluate. Like WebUSB there is significant uncertainty regarding how well prepared devices are to receive requests from arbitrary sites. The generic nature of the API means that this risk is difficult to manage. The Web Bluetooth CG has opted to only rely on user consent, which we believe is not sufficient protection. This proposal also uses a blocklist, which will require constant and active maintenance so that vulnerable devices aren't exploited. This model is unsustainable and presents a significant risk to users and their devices.
In terms of other changes in Chrome 104, four legacy client hints, namely “dpr”, “width”, “viewport-width”, and “device-memory”, are being removed because they go against the standards set by the Client Hint Infrastructure. Similarly, the U2F security key API and component extension Cryptotoken are being placed in maintenance mode too, because they have already been incorporated in more modern implementations like WebAuthn. As such, site owners have been encouraged to migrate to modern standards too.
The Multi-Screen Window Placement API is being enhanced to allow sites to open a full-screen window and a smaller pop-up companion window on multi-display configurations. Prior to this, users were required to take extra steps to accomplish the same. Another improvement in the same space is that permissions to request full-screen content can now be transferred across multiple trusted windows.
Other smaller changes present in Chrome 104 are as follows:
- Block iframe contexts navigating to filesystem: URLs
- Cookie Expires/Max-Age attribute upper limit are now capped at 400 days, there was no cap on expiry previously
- CSS object-view-box
- Subresource loading with Web Bundles
- Support visual-box on overflow-clip-margin
- Web Custom formats for Async Clipboard API
- WebGL canvas color management
That's still not all, though, as we have to unpack capabilities in developer and origin trials. Starting off with the former, there are better and more accurate screen labels for user interactions on the Multi-Screen Window Placement API. There is also a configuration which websites can use to allow customers to opt out of credit card information storage on developer servers, this UX implementation is legally required in some regions. The timer on the throttling of loaded background pages can be reduced with a flag too, this should allow better battery and CPU utilization, without reducing performance.
In terms of origin trials, we have the focusgroup CSS property that enables you to utilize keyboard arrows keys to shift focus across certain UI elements. Other capabilities in origin trials include shared element transitions for improved transition animations for single-page applications (SPAs) as well as increased max nesting level for the setTimeout(0) method.
As can be seen, Chrome 104 is a significant update. It will start rolling out in the later hours of today. If Chrome does not automatically update to version 104 for you throughout the course of the day, head over to Help > About Google Chrome to trigger the update once it becomes available. Next up is Chrome 105 which will hit the Beta channel on August 5, and will land on Stable on August 30.