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,
});