Bug 248309

Summary: notification.close() not working
Product: WebKit Reporter: Andy <andy>
Component: Service WorkersAssignee: youenn fablet <youennf>
Status: RESOLVED FIXED    
Severity: Normal CC: beidson, cdumez, ik, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Safari 16   
Hardware: Unspecified   
OS: Unspecified   

Description Andy 2022-11-24 08:11:01 PST
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
Comment 1 Radar WebKit Bug Importer 2022-11-26 14:45:24 PST
<rdar://problem/102683841>
Comment 2 youenn fablet 2022-11-28 05:23:43 PST
Pull request: https://github.com/WebKit/WebKit/pull/6856
Comment 3 EWS 2022-11-29 01:36:33 PST
Committed 257108@main (d02120f1bc06): <https://commits.webkit.org/257108@main>

Reviewed commits have been landed. Closing PR #6856 and removing active labels.
Comment 4 ik 2024-07-18 02:16:41 PDT
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.