If you enjoy using Chrome in order to surf the web, then you know that one of the biggest advantages of using Google’s browser is the fact that it gets updated on a weekly basis with major improvements. The Android parent is always looking for new ways to take the performances of Chrome to the next level and in fact, a brand-new update has just been released. The update sports the 79.0.3945.18 version number and it’s exclusively available to Chrome users who are enrolled in the beta program.
Chrome Beta 79.0.3945.18 Update
As previously noted, the new update for Chrome Beta is changing the mobile browser’s version number to 79.0.3945.18. The best and fastest way to access the new update is enroll in the beta program and to wait for it to arrive via OTA (over the air) channels.
Luckily, Google’s developers are allowing everyone who uses an Android-powered smartphone to join the beta program. With that said, let’s check out what are the improvements that the new update brings.
What’s New?
This version of Chrome introduces the origin trials described below. Origin trials allow you to try new features and give feedback on usability, practicality, and effectiveness to the web standards community. To register for any of the origin trials currently supported in Chrome, including the ones described below, visit the Origin Trials dashboard. To learn more about origin trials themselves, visit the Origin Trials Guide for Web Developers.
Support for rendersubtree Attribute
Adds the rendersubtree attribute to all HTML elements, which locks a DOM element for display. When rendersubtree is set to “invisible”, the element’s content is not drawn or hit-tested, allowing for rendering optimizations. The rendersubtree “activatable” token allows the browser to remove the invisible attribute, rendering the content, and making it visible.
Wake Lock API based on Promises
Adds an update of the Wake Lock API that introduce promises and wake lock types. The Wake Lock API brought a standard, secure, and safe way to prevent some device features such as the screen or CPU cycles from going into power saving state. This update addresses some of the shortcomings of the older API which was limited to screen Wake Lock and didn’t address certain security and privacy issues.
Other Features in this Release
Adaptive Icon Display for Installed PWAs on Android
Android Oreo introduced adaptive icons, which enforced the same shape for all icons on the home screen and in the launcher. Before android O icons could be any shape and there was no background behind each icon. For example, gmail was rectangular, and Play was a triangle. Consequently, such icons were placed in a white circle. With adaptive icon display, Android will automatically mask irregularly shaped icons to fit properly.
Autofocus Support for any Focusable HTML/SVG Element
Adds the autofocus attribute to any focusable HTML or SVG element. The autofocus was previously supported for a limited number of HTML elements, and there were elements which could receive focus but didn’t support the autofocus attribute. This feature fixes the inconsistencies.
Compute img/video Aspect Ratio from Width Or Height HTML Attributes
The aspect ratio of an image is now computed so that it can be used for sizing an image using CSS before it loads. This avoids unnecessary relayouts when the image loads.
font-optical-sizing
The font-optical-sizing property
automatically sets the font size to the opsz – optical sizing axis of variable fonts that support optical sizing. This improves styling and legibility of fonts depending on font size because the font chooses a glyph shape that works optimally at the given font size. For example, the glyph contrast is improved in fonts in heading sizes when compared to the same font at body text size.
list-style-type: <string>
Allows a stylesheet to use an arbitrary character for the list style marker. Examples include “-“, “+”, “★” and “▸”. Since CSS Level 2, list-style-type has supported keywords like disc or decimal to define the appearance of the list item marker.
Without this, developers are often forced to hide the real marker and insert the arbitrary marker using a ::before pseudo element via the content property. Unfortunately, the fake marker won’t be nicely positioned by list-style-position.
Reject Worklet.addModule() with a More Specific Error
When Worklet.addModule() fails, a promise rejects with a more specific error object than it did previously. Worklet.addModule() can fail for various reasons, including, for example, network errors and syntax errors. Before this change, Worklet.addModule() rejected with AbortError regardless of the actual cause. That made it difficult for developers to debug worklets. After this change, Worklet.addModule() rejects with a clearer error such as SyntaxError.
Retrieve a Service Worker Object Corresponding to a Worker Itself
A service worker can now get its ServiceWorker object with self.serviceWorker in a service worker script and its current state with self.serviceWorker.state. A service worker instance previously had no way to get its current lifecycle state. This removes the need for the hack wherein the current lifecycle state is tracked with a global variable, a method that is error prone and doesn’t correctly capture waiting periods.
Stop Evaluating Script Elements Moved Between Documents During Fetching
Chrome no longer evaluates scripts or fire error and load events if <script> elements are moved between documents during fetching. Script elements can still be moved between documents, but they won’t be executed. This prevents possible security bugs caused by exploitation of <script> elements moved between documents.