By: Ravindra Yadav, Test Architect and QA Manager at Provar
What’s new in Chrome 85? Google Chrome is the most widely used browser and constantly improves. With the upcoming version 85, Chrome is introducing some exciting changes. In this article, I will discuss a few generic and specific forthcoming features and fixes that could be significant from either a manual or an automation testing perspective.
Note: While writing this blog, Chrome 85 is set to become GA on August 25, 2020. Take a look at the Chrome Release Schedule for the latest information.
Installation Directory Change
This is the most significant change from Google Chrome. In previous versions, despite being a 64-bit app, Chrome installed itself in the 32-bit installation directory C: Program Files(x86). From Chrome 85 onwards, it will install itself into C: Program Files to follow the correct 64-bit architecture.
However, since Chrome used to support a 32-bit architecture, 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. When several tabs and applications are open, your CPU will experience even more significant speed improvements.
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.
Tab Grouping in Chrome 85
Google has introduced tab grouping in Chrome 85 for better tab management. Users can group tabs of similar tasks and easily discern which tabs belong to which job. Tab groupings also keep similar tabs close to each other.
An additional related feature allows you to collapse and expand tab groupings. This hides 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 you have opened.
Chrome 85 Generate More Accessible PDFs
When you print a web page, Chrome automatically generates a tagged PDF and sets the destination to Save as PDF. Tagged PDFs can be more accessible for many, with hidden accessibility markups that can optimize the experience when using a screen reader or other Assistive Technology (AT).
Tagged PDFs can also have other uses, such as making it easier for software applications to process and extract data from PDFs automatically.
Lazy Loading for iFrames
Chrome previously supported lazy loading for images, and Chrome 85 will now support it for iFrames. The lazy loading of iFrames will defer the loading of off-screen iFrames until the user scrolls near them. This saves data, speeds up the loading of other page parts, and reduces memory usage. You can use the loading=lazy attribute within an iFrame tag to enable this.
Share the Web Page (address) via QR Code.
Chrome 85 offers the new ability to share a web page URL via a QR code. A new “Create QR Code for this Page” option allows you to click and have Chrome produce a QR image, which you can then download as a .png. The URL for the QR code generates automatically based on the active tab.
However, you can amend the URL directly before clicking Download.
Ungroup Same Console Messages
Earlier, DevTools had an error where the messages would remain grouped even after unchecking the Group Similar’ option. With Chrome 85, the statements are ungrouped. A similar toggle in Console Settings now applies to duplicate messages.
Chrome Driver Fixes
In addition to the exciting features mentioned above, ChromeDriver 85 has addressed a few other pain points.
- Sendkeys resets text selection with content that is editable. With this fix, users can now focus on an element inside a content-editable element and then send keys inside the editable content.
- Remove the LaunchApp command from ChromeDriver. Chrome is phasing out support for Chrome Apps across all operating systems. Concerning that, Chrome has removed support for the LaunchApp Command and automation extension.
- Sometimes, the Navigation Tracker fails to detect when the page has finished loading. There was a race condition between page frame events and the transparent state from the session since ChromeDriver only maintains the state for one frame. If the page frame stops loading before clearing the session and the document.readyState loads, it is effectively stuck. The fix is to keep track of your frame states so you don’t have to clear the state from the session; instead, switch frames in the navigation tracker.
- New Print endpoint according to W3C spec. ChromeDriver now allows you to generate a paginated document as a PDF according to W3C specifications. Please reference this document for more information.
- Driver. get doesn’t show an error when misconfiguring the proxy. If page. Navigate generates an error message for a network-related mistake, returning an unknown error status. Previously, ChromeDriver would not display an error. Chrome 85 will show the expected error.
- Use document.hasFocus() to check if the element is focused. Previously, document.activeElement was returning body when no element had focus. When users first navigate to the URL or switch frames, they don’t want to treat this body as a focus. Using document.hasFocus(), checking this first will verify if the element is focused.
- The Webdriver exception message is now fixed. Previously, when retrieving HTML from a page containing Unicode characters, you could experience the following error message: selenium.common.exceptions.WebDriverException: Message: unknown error: bad inspector message. They resolve it now with Chrome 85.
In this and other recent releases, Google has optimized its W3C compliance. It’s good to see that the design of these new features aids user productivity and reduces clutter.