demo · v140

VoIP Ringer

The chromestatus motivation: a VoIP web app can only fire generic notifications — same priority, same chrome, no ringtone, no call-style accept/decline buttons. Chrome 140 adds scenario: "incoming-call", which lights up the platform's call UI. Compare before/after side by side.

Installed PWA only — must be on a secure context

The scenario: "incoming-call" option only takes effect for installed PWAs. The browser also gates this on the user having granted the notifications permission. This page lets you fire a real (regular) notification and shows the call-style options that would apply if the app were installed.

pre-140 — generic notification

Acme VoIP
Incoming call from Dani Sutton
  • - no ringtone
  • - styling indistinguishable from a chat ping
  • - buttons get a generic icon
  • - demoted in the notification queue

Chrome 140 — scenario: "incoming-call"

Acme VoIP · Incoming call
Dani Sutton is calling…
  • + ringtone with platform call audio profile
  • + persistent, full-bleed style on supported OSes
  • + green/red action buttons via platform call UI
  • + elevated priority — bypass quiet hours

Click "Fire incoming-call notification" to see the real Notification API surface in action.

// Chrome 140+ — installed PWA only
const reg = await navigator.serviceWorker.getRegistration();
await reg.showNotification("Acme VoIP — Incoming call", {
  body: "Dani Sutton is calling",
  scenario: "incoming-call",
  actions: [
    { action: "accept",  title: "Accept" },
    { action: "decline", title: "Decline" }
  ],
  data: { callId: "c_1234" },
  requireInteraction: true,
});

see also