![Pete LePage](https://web.dev/images/authors/petelepage.jpg) Pete LePage [X](https://twitter.com/petele) [GitHub](https://github.com/petele) [Mastodon](https://techhub.social/@petele) [Homepage](https://petelepage.com/)

<br />

[Video](https://www.youtube.com/watch?v=msA284Q6yZU)

In Chrome 70, we've added support for:

- [Desktop Progressive Web Apps on Windows \& Linux](https://developer.chrome.com/blog/new-in-chrome-70.md.txt#dpwa-windows).
- The credential management API adds support for [Public Key Credentials](https://developer.chrome.com/blog/new-in-chrome-70.md.txt#pki).
- And you can now [name workers](https://developer.chrome.com/blog/new-in-chrome-70.md.txt#named-workers)!

And there's [plenty more](https://developer.chrome.com/blog/new-in-chrome-70.md.txt#more)!

I'm [Pete LePage](https://petelepage.com/). Let's dive in and see
what's new for developers in Chrome 70!

Want the full list of changes? Check out the
[Chromium source repository change list](https://chromium.googlesource.com/chromium/src/+log/69.0.3497.81..70.0.3538.66).

## Desktop Progressive Web Apps on Windows \& Linux

**Users can now install Desktop Progressive Web Apps on Windows \& Linux!**

Once installed, they're launched from the Start menu, and run like all other
installed apps, without an address bar or tabs.
[Service workers](https://developers.google.com/web/fundamentals/primers/service-workers/) ensure that
they're fast, and reliably, the [app window](https://developers.google.com/web/updates/2018/05/dpwa#the_app_window)
experience makes them feel like any other installed app.

Getting started isn't any different than what you're already doing today.
All of the work you've done for your existing Progressive Web App still applies!
If your app meets the standard [PWA criteria](https://developers.google.com/web/fundamentals/app-install-banners/#criteria),
Chrome will fire the
[`beforeinstallprompt`](https://developers.google.com/web/fundamentals/app-install-banners/#listen_for_beforeinstallprompt)
event. Save the event; then,
[add some UI](https://developers.google.com/web/fundamentals/app-install-banners/#notify_the_user_your_app_can_be_installed)
(like an install app button) to tell the user your app can be installed. Then,
when the user clicks the button, call
[`prompt()`](https://developers.google.com/web/fundamentals/app-install-banners/#show_the_prompt) on the
saved event; Chrome will then show the prompt to the user. If they click add,
Chrome will add your PWA to their start menu and desktop.

See my [Desktop PWAs](https://developers.google.com/web/progressive-web-apps/desktop)
post for complete details.

> [!NOTE]
> **Note:** Mac support is expected to arrive in Chrome 72. Linux support was added in Chrome 70, but was accidentally left out of the original version of this post.

## Credential Management API: Public Key Credentials

The [Credential Management API](https://developer.mozilla.org/docs/Web/API/Credential_Management_API)
makes sign in super simple for users. It allows your site to interact with the
browser's [credential manager](https://developer.mozilla.org/docs/Web/API/PasswordCredential)
or [federated account services](https://developer.mozilla.org/docs/Web/API/FederatedCredential)
like Google and Facebook to sign.

![](https://developer.chrome.com/static/blog/new-in-chrome-70/image/dlNQwA1kTHjDdHTTOPMK.png)

Chrome 70 adds support for a third type of credential:
[**Public Key Credential**](https://developer.mozilla.org/docs/Web/API/PublicKeyCredential),
which allows web applications to create and use, strong, cryptographically
attested, and application-scoped credentials to strongly authenticate users.

I'm pretty excited about it because it allows sites to use my fingerprint
for 2-factor authentication. But, it also adds support for additional types
of security keys and better security on the web.

Check the [Credential Management API docs](https://developers.google.com/web/fundamentals/security/credential-management/)
for more details or give it a try with the
[WebAuthn Demo](https://webauthndemo.appspot.com/) and how you can get started!

## Named `workers`

[Workers](https://developer.mozilla.org/docs/Web/API/Worker) are an easy
way to move JavaScript off the main thread and into the background. This is
critical to keeping your site interactive, because it means that the main
thread won't lock up when it's running an expensive or complex JavaScript
computation.
**Without WebWorkers**
![](https://www.gstatic.com/images/icons/material/system/2x/settings_black_48dp.png) **Main thread**   
Lots of heavy JavaScript running, resulting in slow, janky experience. **With WebWorkers**
![](https://www.gstatic.com/images/icons/material/system/2x/settings_black_48dp.png) **Main thread**   
No heavy JavaScript running, resulting in fast, smooth experience. ![](https://www.gstatic.com/images/icons/material/system/2x/settings_black_48dp.png) **WebWorker**   
Lots of heavy JavaScript running, doesn't affect main thread.

In Chrome 70, workers now have a
[`name` attribute](https://www.chromestatus.com/feature/4594144336936960),
which is specified by an optional argument on the constructor.

```javascript
const url = '/scripts/my-worker.js';
const wNYC = new Worker(url, {name: 'NewYork'});
const oSF = {name: 'SanFrancisco'};
const wSF = new Worker(url, oSF);
```

This lets you distinguish dedicated workers by `name` when you have multiple
workers with the same URL. You can also print the name in the DevTools
console, making it much easier to know which worker you're debugging!

Naming workers is already available in Firefox, Edge, and Safari. See the
[discussion on GitHub](https://github.com/whatwg/html/issues/2477) for more
details.

## And more!

These are just a few of the changes in Chrome 70 for developers, of course,
there's plenty more.

- [Web Bluetooth](https://developers.google.com/web/updates/2015/07/interact-with-ble-devices-on-the-web) is [now available in Windows 10](https://www.chromestatus.com/feature/5264933985976320), and allows your site to communicate with nearby user-selected Bluetooth devices in a secure and privacy-preserving way.
- Chrome can [send intervention and deprecation messages](https://www.chromestatus.com/feature/5544632075157504) to your servers using the `Report-To HTTP` Response header field or surface them in the `ReportingObserver` interface.
- There are a number of important deprecations you should know about, check the [Deprecations and removals in Chrome 70](https://developers.google.com/web/updates/2018/09/chrome-70-deps-rems) post for more details.
- And be sure to check out the latest [What's new in DevTools](https://developer.chrome.com/blog/new-in-devtools-70.md.txt) post to learn what's new in Chrome DevTools.

### Subscribe

Want to stay up to date with our videos, then [subscribe](https://goo.gl/6FP1a5)
to our [Chrome Developers YouTube channel](https://www.youtube.com/user/ChromeDevelopers/),
and you'll get an email notification whenever we launch a new video.

I'm Pete LePage, and as soon as Chrome 71 is released, I'll be right
here to tell you -- what's new in Chrome!