Chrome 99 released: Introducing improved PWAs and hotly-discussed JS changes

Google Chrome 98 was released a month ago, and since the update frequency of the stable release channel has recently shifted to every four weeks, it’s time for Chrome 99 to be released. There isn’t a ton of new features coming to this release, but that’s reasonable considering that Google is very close to the Chrome 100 milestone.

Chrome 99 will change the implementation of the JavaScript (JS) adoptedStyleSheets specification. This was previously using a FrozenArray backing array, but will now utilize an ObservableArray. The new method will make it easier to mutate JS arrays. While this all seems fairly technical, it’s arguably interesting to our readers that this specification change has been debated between Microsoft, Mozilla, Apple, and Google since 2018.

join us on telegram

As it stands, Google will continue to push the implementation forward in Chrome 99, as it has support from Mozilla and Microsoft. On the other hand, Apple’s WebKit team refused to support the change in implementation, citing no merits worth doing. Google said it would continue to ensure backward compatibility with previous implementations, but responded with considerable disappointment. Despite general agreement from other members of the web components community and support from the developer community, WebKit remains skeptical about the usefulness of this feature. Therefore, the risk of interoperability is mainly that WebKit decides not to implement this feature.

The latest version of the Chrome browser also incorporates a new handwriting recognition API that web developers can use to provide inking functionality, for example, in note-taking web apps. They will not need to rely on third-party integrations.

Speaking of web apps, Chrome 99 will allow installed Progressive Web Apps (PWAs) to cover more area on the screen so that they look more like native apps than web apps.

On the CSS side, the calc() math function now functions closer to the official specification. CSS cascading layers should make it easier for developers to manage layers in web components. Also, the “-WebKit-standard” font-family value has been removed to improve interoperability with Firefox, and developers can explicitly use “-WebKit-body” instead. If you’re using CSS for text formatting, you can check out the new properties supported in Chrome 99 here.

The Canvas 2D API is being modernized at an accelerated pace to achieve the same functionality as other 2D APIs, leverage existing CSS properties, and improve performance. This API is primarily used for games and “full-featured apps”. Likewise, the Gamepad API is being enhanced to conform to the standard specification.

Google also provides a new filesystem access API, which provides high-performance and in-place write access to files if you’re a developer using Origin’s private filesystem. Apple’s WebKit team is also implementing this feature.

There are other developer-oriented features such as autocomplete in ShadowDOM, programmatic selectors for HTML input elements, the introduction of the Intl Enumeration and Intl Locale Info APIs, and a new target for PaintWorklet. But that’s not all, as there are a lot of new features in Chrome 99 DevTools too, you can check all the details here.

http://developer.chrome.com/blog/new-in-devtools-99/

Chrome 99 will start rolling out later today. If you don’t automatically update to version 99 during the day, go to Help > About Google Chrome to trigger an update when it becomes available. Next up is Chrome 100, which will enter the beta channel on March 3rd and will land on the stable version on March 29th, as the proverbial UA has changed bits, hopefully it doesn’t mess up.

Leave a Comment