Google today launched Chrome 76 for Windows, Mac, Linux, Android, and iOS. The release includes Adobe Flash blocked by default, Incognito mode detection disabled, multiple PWA improvements, and more developer features. You can update to the latest version now using Chrome’s built-in updater or download it directly from google.com/chrome.

With over 1 billion users, Chrome is both a browser and a major platform that web developers must consider. In fact, with Chrome’s regular additions and changes, developers often have to stay on top of everything available — as well as what has been deprecated or removed. Chrome 76, for example, removes the lazyload feature policy.

Adobe Flash and Incognito mode detection blocked

Google has been taking baby steps to kill off Flash for years. In 2015, Chrome started automatically pausing less important Flash content. In 2016, Chrome blocking “behind the scenes” Flash content and using HTML5 by default.

In July 2017, however, Adobe said it would kill Flash by 2020. With Chrome 76, Flash is now blocked by default. Users can still turn it on in settings, but next year, Flash will be removed from Chrome entirely.

https://twitter.com/paul_irish/status/1138471166115368960

Separately, Chrome 76 also disables one way that websites can detect if you’re using Incognito mode. Some sites use this to stop users from getting around paywalls. Chrome 76 implements the FileSystem API differently so scripts can no longer use it as an indicator.

Progressive Web Apps

Chrome 76 makes it easier to install Progressive Web Apps (PWAs) on the desktop, via an install button in the omnibox. Instead of the install flow being hidden within the three-dot menu, if a site meets the PWA installability criteria, users can just click the button.

The first time a user visits a site that meets the aforementioned criteria, Chrome also shows a mini-infobar. Developers who want to prevent the mini-infobar from appearing and provide their own install promotion instead can now do so by listening for the beforeinstallprompt event and calling preventDefault() . You can then update your UI to notify the user by adding an install button or other element.

When a PWA is installed on Android, Chrome automatically requests and installs a WebAPK. Being installed via an APK makes it possible for your app to show up in the app launcher, in Android’s app settings, and to register a set of intent filters. Until now, Chrome would check every three days to see if the manifest has changed, and if a new WebAPK is required. Starting in Chrome 76, Chrome will check the manifest every day. If any of the key properties have changed, Chrome will request and install a new WebAPK.

Android and iOS

Chrome 76 for Android is rolling out slowly on Google Play but the changelog isn’t up yet. The aforementioned PWA changes are likely the main highlights.

Chrome 76 for iOS is also slowly rolling out on Apple’s App Store. It includes five improvements:

Find In Page now works on iFrames, including AMP (Accelerated Mobile Pages).

When you sign up to a new site, you’ll see a suggestion for a strong and unique password on your keyboard.

You can control all your Sync and Google services settings in one place, and see what data is used by each feature.

Your history is now synced and deleted more reliably.

Some users will see a new design for the way Chrome offers to save passwords.

The first change is probably the most useful one.

Security fixes

Chrome 76 implements 43 security fixes. The following were found by external researchers:

[$10000][977462] High CVE-2019-5850: Use-after-free in offline page fetcher. Reported by Brendon Tiszka on 2019-06-21

[$6000][956947] High CVE-2019-5860: Use-after-free in PDFium. Reported by Anonymous on 2019-04-26

[$3000][976627] High CVE-2019-5853: Memory corruption in regexp length check. Reported by yngwei(@yngweijw) of IIE Varas and sakura (@eternalsakura13) of Tecent Xuanwu Lab on 2019-06-19

[$3000][977107] High CVE-2019-5851: Use-after-poison in offline audio context. Reported by Zhe Jin（金哲），Luyao Liu(刘路遥) from Chengdu Security Response Center of Qihoo 360 Technology Co. Ltd on 2019-06-20

[$TBD][959438] High CVE-2019-5859: res: URIs can load alternative browsers. Reported by James Lee (@Windowsrcer) of Kryptos Logic on 2019-05-03

[$5000][964245] Medium CVE-2019-5856: Insufficient checks on filesystem: URI permissions. Reported by Yongke Wang of Tencent’s Xuanwu Lab (xlab.tencent.com) on 2019-05-17

[$N/A][943494] Medium CVE-2019-5863: Use-after-free in WebUSB on Windows. Reported by Yuxiang Li (@Xbalien29) of Tencent Security Platform Department on 2019-03-19

[$N/A][964872] Medium CVE-2019-5855: Integer overflow in PDFium. Reported by Zhen Zhou of NSFOCUS Security Team on 2019-05-20

[$TBD][973103] Medium CVE-2019-5865: Site isolation bypass from compromised renderer. Reported by Ivan Fratric of Google Project Zero on 2019-06-11

[$500][960209] Low CVE-2019-5858: Insufficient filtering of Open URL service parameters. Reported by evi1m0 of Bilibili Security Team on 2019-05-07

[$500][936900] Low CVE-2019-5864: Insufficient port filtering in CORS for extensions. Reported by Devin Grindle on 2019-02-28

[$TBD][946260] Low CVE-2019-5862: AppCache not robust to compromised renderers. Reported by Jun Kokatsu, Microsoft Browser Vulnerability Research on 2019-03-26

[$TBD][951525] Low CVE-2019-5861: Click location incorrectly checked. Reported by Robin Linus ( robinlinus.com ) on 2019-04-10

[$N/A][961237] Low CVE-2019-5857: Comparison of -0 and null yields crash. Reported by cloudfuzzer on 2019-05-09

[$N/A][966263] Low CVE-2019-5854: Integer overflow in PDFium text rendering. Reported by Zhen Zhou of NSFOCUS Security Team on 2019-05-23

[$TBD][976713] Low CVE-2019-5852: Object leak of utility functions. Reported by David Erceg on 2019-06-19

[988889] Various fixes from internal audits, fuzzing and other initiatives

Google thus spent at least $28,000 in bug bounties for this release. As always, the security fixes alone should be enough incentive for you to upgrade.

Developer features

Chrome 73 introduced dark mode for Mac users, and Chrome 74 did the same for Windows users. Chrome 76 includes a prefers-color-scheme media query that allows a website or web app to adopt the user’s preferred display mode from the operating system.

The Chrome team continues to improve the payments APIs, with Chrome 76 bringing three changes. A merchant website or web app can now respond when a user changes payment instruments. The PaymentRequestEvent has a new method called changePaymentMethod() and the PaymentRequest object now supports an event handler called paymentmethodchange . Both can notify a merchant when the user changes payment instruments — the former returns a promise that resolves with a new PaymentRequest instance. Chrome now also makes it easier to use the payments APIs for self-signed certificates on the local development environment via the —ignore-certificate-errors flag.

Chrome 76 also updates the V8 JavaScript engine. Version 7.6 includes JSON.parse improvements, frozen/sealed array improvements, unicode string handling, new JavaScript language features, and native stack walking. Check out the full changelog for more information.

Other developer features in this release include:

For a full rundown of what’s new, check out the Chrome 76 milestone hotlist.

Google releases a new version of its browser every six weeks or so. Chrome 77 will arrive by early September.