Calling notification.close() (from both inside and outside a service worker) doesn't remove the notification(s) Use case: Removing notifications that no longer apply to user, for instance if they have visited a page the notification would take them to. To replicate - Have a notification in Notification Centre created by current site - get all notifications, then call notification.close() From a window: navigator.serviceWorker.ready.then(function(registration) { registration.getNotifications().then((notifications) => { for (let notification of notifications) { notification.close() } }) }) From within a service worker: self.registration.getNotifications().then((notifications) => { for (let notification of notifications) { notification.close() } }) Expected results The notification in notification is removed Actual result The notification remains
<rdar://problem/102683841>
Pull request: https://github.com/WebKit/WebKit/pull/6856
Committed 257108@main (d02120f1bc06): <https://commits.webkit.org/257108@main> Reviewed commits have been landed. Closing PR #6856 and removing active labels.
I just stumbled upon this ticket because I was about to file a new bug for notification.close() not working. This ticket is marked ad RESOLVED FIXED in 2022, but it's still not working on the latest iOS version (17.5 or so?) AFAICT, it has never worked. I've been testing it with every new iOS release since 16.4.