Chrome 101 hit the Stable channel four weeks ago, which means that now it is time for Chrome 102 to do the same. This release features a bunch of developer-related enhancements to backend APIs and deprecation of a few others, along with window control overlays for Progressive Web Apps (PWAs) on the desktop.
A key feature in this release is ability for developers to get control of more real estate in a desktop PWA. This is done by allowing the client app to extend and take control of the entire screen except the window controls; which are basically the close, maximize, and minimize buttons on the title bar. This will enable PWAs to look more like native apps. You can read more about the implementation here. In the same vein, web apps will also be able to act as file handlers with given MIME types and extensions. Developers who modify their PWA's manifest to enable this behavior will also see their web apps listed in the "Open with..." context menus.
A new Navigation API has been introduced too, this will cater to the needs of single page applications (SPAs) since the existing window.navigation API is a bit complex for these types of use-cases. Apparently, developer reaction to this is "strongly positive".
The capture handling mechanism has completed its Origin trial and is generally available as well. In a nutshell, it enables web apps to opt in to exposing controls and information to applications that are video capturing it. For example, a video conferencing application could integrate with a presentation tab to expose controls to navigate the slide deck. Once again, this has been appreciated by developers.
There is also a new property which provides an estimate of audio latency. It can be used to sync audio and video streams. It has already been implemented in Mozilla Firefox. Meanwhile, the Sanitizer API will make it easier to build apps that are free from cross-site scripting (XSS).
Chrome 102 includes V3 of Secure Payment Confirmation API. It now has two more optional inputs and another necessary once, which means that this is a breaking change. Web developers can also leverage an option that allows them to preemptively filter out devices that won't result in a decent user experience through the browser picker. The latest release of the browser also packs a new surface for the Origin Private File System (OPFS), here's how Google describes it:
The Origin Private File System (OPFS, part of the File System Access API) is augmented with a new surface that brings very performant access to data. This new surface differs from existing ones by offering in-place and exclusive write access to a file’s content. This change, along with the ability to consistently read unflushed modifications and the availability of a synchronous variant on dedicated workers, significantly improves performance and unblocks new use cases.
Our goal is to give developers flexibility by providing generic, simple, and performant primitives upon which they can build higher-level storage components. The new surface is particularly well suited for Wasm-based libraries and applications that want to use custom storage algorithms to fine-tune execution speed and memory usage.
Web authors can also take advantage of enhancements to two attributes: inert and until-found. Some features that have now completed Origin trials and are generally available include network state partitioning, speculation rules, and subresource loading with Web Bundles. You can read about all of them here.
In terms of developer trials, we have full-screen companion windows, Google's first implementation of Opaque Response Blocking (ORB), and the ability to insert "blocking=render" as an attribute in script and link HTML tags to explicitly block rendering.
Finally, there are two deprecations and removals to be aware of as well. The PaymentRequest.show() method cannot be called by websites without user activation. This change is being carried out to prevent abuse from malicious sites. Apple Safari already does this while Firefox has not implemented the PaymentRequest class at all. Secondly, the "Plan B" implementation of the Session Description Protocol (SDP) that is used in the establishment of a WebRTC session is being removed because it is not cross-browser compatible. Developers leveraging it will now be thrown an exception.
Chrome 102 will start rolling out in the later hours of today. If it does not automatically update to version 102 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 103 which will hit the Beta channel on May 26, and will land on Stable on June 21.