By: Ravindra Yadav, Test Architect and QA Manager at Provar
What’s new in Chrome 85? Google Chrome is the most widely-used browser in the market and is constantly improving. With the upcoming version 85, Chrome is introducing some interesting changes. In this article I will talk about a few generic and specific upcoming features and fixes, which could be important from either a manual or an automation testing perspective.
Note: At the time of writing this blog, Chrome 85 is set to become GA on August 25, 2020, but take a look at the Chrome Release Schedule for the latest information.
Installation directory change
This is the most important change from Google Chrome. In previous versions, despite being a 64-bit app, Chrome was getting installed in the 32-bit installation directory C:\Program Files(x86). From Chrome 85 onwards, it will be installed into C:\Program Files to follow the correct 64-bit architecture.
However, since Chrome used to support a 32-bit architecture in the past, if you try to upgrade to Chrome 85 (or a later version on an existing Chrome setup), the installation directory will remain the same, i.e. C:\Program Files(x86).
Up to 10% faster page loads with Profile Guided Optimization
With Chrome 85, Google introduced Profile Guided Optimization (PGO). With PGO, the most common tasks are prioritized so they can run faster.
As per Google’s published data, page loading is now up to 10% faster on average. You can even experience greater speed improvements when your CPU is tasked with running multiple tabs and/or applications..
|Platform||Browser Responsiveness*||First Contentful Paint**||Speedometer 2.0|
|Mac||3.9% faster||2.3% faster||7.7% faster|
|Windows||7.3% faster||3.5% faster||11.4% faster|
*The above statistics were originally published in the Chromium Blog.
Google has introduced tab grouping in Chrome 85 for better tab management. Users can group tabs of similar tasks and discern more easily which tabs belong to which task. Tab groupings also keep similar tabs close to each other.
There is an additional related feature that allows you to collapse and expand tab groupings. This is hiding behind a flag in Chrome 85 but will be active by default in future releases.
Page preview on hovering tabs
Chrome will now allow you to see a mini, visual preview of the page when hovering over unfocused tabs that you have open.
Generate more accessible PDFs
Chrome will now automatically generate a tagged PDF when you print a web page and set the destination to Save as PDF. Tagged PDFs can be more accessible for many, with hidden accessibility markups that can optimize the experience when someone is using a screen reader or other types of Assistive Technology (AT).
Tagged PDFs can have other uses too, such as making it easier for software applications that automatically process and extract data from PDFs.
Lazy loading for iFrames
Lazy loading was previously supported for images in Chrome. Now with Chrome 85, it will be supported for iFrames as well. Lazy loading of iFrames defers off-screen iFrames from being loaded until the user scrolls near them. This saves data, speeds up the loading of other parts of the page and reduces memory usage. You can use the loading=lazy attribute within an iFrame tag to enable this.
Share web page (address) via QR Code
Chrome 85 offers the new ability to share a web page URL via a QR code. There is a new Create QR Code for this Page option which, when clicked, causes Chrome to produce a QR image which can then be downloaded as a .png.
Please note that the URL for the QR code is generated automatically based on the active tab, however you can amend the URL directly before clicking Download.
Ungroup same console messages
Previously, there was an error in DevTools that did not ungroup the messages even when Group similar is unchecked. With Chrome 85, the messages are ungrouped. The Group similar toggle in Console Settings now applies to duplicate messages.
Along with the interesting features above, ChromeDriver 85 has also fixed a few other pain points.
- Sendkeys resets text selection with contenteditable. With this fix, users will now be able to focus on an element inside of a contenteditable element and then send keys inside the editable content.
- Remove LaunchApp command from ChromeDriver. Chrome is phasing out support for Chrome Apps across all operating systems. With respect to that, Chrome has removed support for the LaunchApp Command and automation extension.
- Sometimes Navigation Tracker fails to detect when the page has finished loading. There was a race condition between page frame events and the clear state from the session since ChromeDriver is only maintaining the state for one frame. If the page frame stop loading arrived before the session cleared and the document.readyState is loaded, then it is effectively stuck. The fix is to keep track of all of your frame states so you don’t have to clear the state from the session but instead switch frames in the navigation tracker.
- New Print endpoint according to W3C spec. Now ChromeDriver will now allow you to generate a paginated document as a PDF according to W3C specifications. Please reference this document for more information.
- driver.get doesn’t throw an error when the proxy is incorrectly configured. If page.navigate generates an error message for a network-related error, it will return an unknown error status. Previously, ChromeDriver would not display an error. With Chrome 85, it will display the expected error.
- Use document.hasFocus() to check if the element is focused. Previously, document.activeElement was returning body when no element has focus. When users first navigate to the URL or switch frames, users don’t want to treat this body as focus. Using document.hasFocus(), this will be checked first to verify if the element is focused.
- Webdriver exception message is now fixed. Previously, when trying to retrieve HTML from a given page that contained Unicode characters, you could experience the following error message: selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message. This is now resolved with Chrome 85.
In this and other recent releases, Google has optimized their W3C compliance. It’s good to now see that these and other new features are designed to aid user productivity and reduce clutter.