It has been around a month since Chrome 76 entered the Beta channel, and right on schedule, it has graduated to the Stable branch. The new browser is now rolling out on all platforms, including Android, and it's one of the largest Chrome updates we've seen in a long time. Let's dive right in!
Dark themes for sites
Some web browsers that support dark mode, like Samsung Browser, invert the colors of web pages to make them fit the theme — but sometimes this causes sites to look broken or distorted. Apple introduced the 'prefers-color-scheme' browser feature last year for allowing sites to detect dark mode, and now Google has brought it to Chrome.
Starting in Chrome 76, if a site has its own dark theme, Chrome will automatically activate it when your device is set to dark mode. This seems to work on any devices running the Android Q Beta, as well as Samsung phones running One UI with dark mode enabled. Android Police doesn't have a dark theme yet, but you can try it out on my personal site.
Incognito Mode changes
Perhaps the change in Chrome 76 that has gained the most attention is that sites can no longer detect when you're browsing in Incognito Mode. This was possible in earlier versions because the FileSystem API, a non-standard browser feature that allows sites to store files locally, was previously disabled in Incognito Mode. Sites could simply check if the API was turned off, and that would tell them Incognito Mode was active.
This led to many news sites, like The Boston Globe in the below tweet, blocking the use of Incognito to prevent people from reading more free articles than intended. Chrome 76 closes this loophole, so most of these paywalls are no longer functional.
Chrome Incognito mode has been detectable for years, due to the FileSystem API implementation. As of Chrome 76, this is fixed.
Apologies to the "detect private mode" scripts out there. 💐 pic.twitter.com/3LWFXQyy7w
— Paul Irish (@paul_irish) June 11, 2019
Google wrote a blog post about this change, where the company said Incognito Mode was just one way to get around cookie-based paywalls, and publishers should switch to other methods anyway. "Sites that wish to deter meter circumvention have options such as reducing the number of free articles someone can view before logging in, requiring free registration to view any content, or hardening their paywalls."
Progressive Web Apps
There are a few new features in Chrome 76 designed to make Progressive Web Apps more powerful. First, the Web Share Target Level 2 API is now enabled by default, so web apps (once you add them to your home screen) can receive files from other installed apps. For example, the Twitter Lite web app now appears in the Android Share dialog when you try to share a picture from the Camera app. With this final piece, web apps on Android can now act as a target and receiver for text, links, and files.
If you're using the Twitter PWA on Android, you can now "Share..." stories to a tweet in the web app with the new Chrome 71 update!
This uses the brand new Share Target API, which is text only right now. Coming later next year, support for photos! pic.twitter.com/T33KWgEZ9d
— Charlie Croom (@CharlieCroom) December 21, 2018
Chrome 76 also now allows web apps to hide the 'Add to Home screen' popups on Android, so the site can display its own installation prompt instead. This is possible with the new "preventDefault" function.
The current install popup on Android (Source: Google Developers)
Progressive Web Apps are also getting some love on desktop platforms, too. As we covered previously, an install button now appears in the Chrome address bar on desktop platforms, instead of just hiding in the side menu. If a web app matches the "installability criteria" (if it uses HTTPS, if it has a proper manifest file, etc.), then the button will appear.
Tron: Legacy is one of my favorite films of all time (the original Tron isn't half-bad, either), so you can imagine my surprise when the Chrome team snuck a Tron reference into Chrome 76.
This update includes a new flag, called #identity-disc, that adds your Google profile picture to the top-right corner of the New Tab Page. Tapping the picture opens a 'Sync and Google Services' page, with options to enable or disable usage analytics, Chrome Sync, and other settings.
If you're not caught up on your Tron lore (for shame!), the 'Identity Disc' is the frisbee-shaped object that all programs on The Grid are given, and it contains all the program's memories. "If you lose your disc or fail to follow commands, you will be subject to immediate de-resolution."
Text URL Fragments
You probably already know that you can link to specific parts of webpages, if the page uses headers or another similar structure. For example, I can link to the "Development" section of the Android article on Wikipedia with this:
But what if you want to link to a certain sentence or phrase? Chrome 76 has a new feature hidden behind a flag, called "Text URL Fragments," that allows just that.
To try it out, go to chrome://flags#enable-text-fragement-anchor (copy and paste that into Chrome, clicking doesn't work), set the flag to Enabled, and restart the browser. While there doesn't seem to be an easy way to create these new URLs from within the browser, opening them does work. For example, if you go to this URL:
Then Chrome will load the page, then scroll to the section with the phrase "Amazon doesn't appear to be giving up." Pretty cool, right?
Hopefully, by the time this feature is enabled by default, there will be an easy way for regular people to create these types of links. The days of sending screenshots with text highlighted could soon be over.
Lazy loading frames and images
As web pages become larger and more complex, the time it takes to load a site has steadily increased — especially for people on slow networks. One solution to this is "lazy loading," where some page elements aren't downloaded until you scroll down to them. For example, an image gallery could choose not to load images until they actually came into view.
There have been various ways for sites to lazily load resources over the years, like the old "lazyload" attribute in Internet Explorer, but Google announced last year that it would build the feature directly into Chrome. In version 76, the feature is finally enabled.
The new functionality allows sites to avoid loading images, advertisements, and other types of embedded content until the element comes into view with just one line of code. Here's a more detailed technical explanation from Google:
Chrome uses heuristics to recognize and avoid deferring hidden iframes likely used for analytics or communication, as well as hidden images like tracking pixels, since deferring those could break their functionality.
If the viewport is scrolled within a distance threshold of deferred content, it will start loading in. The distance depends on factors like the current network speed, such that it can be tuned so that deferred content is almost always finished loading by the time it becomes visible.
You can try out a demo here. I hope sites start to add support for this soon.
As always, Chrome 76 includes changes for both users and developers. Here are some smaller features bundled with this update:
- Adobe Flash Player is now disabled by default on desktop platforms.
- Web apps installed to the home screen are now checked every day for name/icon updates, instead of every three days.
- Sites can now copy and paste PNG images to the clipboard, once they are granted permission.
- Chrome now blocks sites from opening more than one full-screen window at once.
- Web apps capturing images from a camera can now set the focus distance manually.
- There are a few improvements to the Promises API, like the new Promises.allSettled function.
- The DeviceMotionEvent and DeviceOrientationEvent methods can now only be used on HTTPS pages.
- The new WebXR Device API is available, and is designed to replace the older WebVR API.
- Cookies are now site-specific by default, but sites can manually override the change.
- Pressing the Escape key on a keyboard no longer counts as an activation method, to prevent malicious pages from being difficult to exit.
- The old method of lazy loading images and frames ("lazyload" attribute on elements) no longer works in Chrome.
The APK is signed by Google and upgrades your existing app. The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way. Rather than wait for Google to push this download to your devices, which can take days, download and install it just like any other APK.
Note: Most versions of the Chrome APK use app bundles, which APKMirror doesn't support yet. As a result, only a few variants are available for download.