Note: This feature is only available in Service Workers.
The visibilityState read-only property of the WindowClient interface indicates the visibility of the current client. This value can be one of "hidden", "visible", or "prerender".
A string (See Document.visibilityState for values).
event.waitUntil(
clients
.matchAll({
type: "window",
})
.then((clientList) => {
for (const client of clientList) {
if (client.url === "/" && "focus" in client) {
if (client.visibilityState === "hidden") return client.focus();
}
}
if (clients.openWindow) {
return clients.openWindow("/");
}
}),
);