diff --git a/features/draft/spec/notifications.yml b/features/draft/spec/notifications.yml deleted file mode 100644 index 807bcb690b0..00000000000 --- a/features/draft/spec/notifications.yml +++ /dev/null @@ -1,48 +0,0 @@ -draft_date: 2024-10-21 -name: Notifications API Standard -description: TODO -spec: https://notifications.spec.whatwg.org/ -compat_features: - - api.Notification - - api.Notification.Notification - - api.Notification.actions - - api.Notification.badge - - api.Notification.body - - api.Notification.click_event - - api.Notification.close - - api.Notification.close_event - - api.Notification.data - - api.Notification.dir - - api.Notification.error_event - - api.Notification.icon - - api.Notification.image - - api.Notification.lang - - api.Notification.maxActions_static - - api.Notification.permission_static - - api.Notification.renotify - - api.Notification.requestPermission_static - - api.Notification.requestPermission_static.returns_promise - - api.Notification.requireInteraction - - api.Notification.secure_context_required - - api.Notification.show_event - - api.Notification.silent - - api.Notification.tag - - api.Notification.timestamp - - api.Notification.title - - api.Notification.vibrate - - api.Notification.worker_support - - api.NotificationEvent - - api.NotificationEvent.NotificationEvent - - api.NotificationEvent.action - - api.NotificationEvent.notification - - api.ServiceWorkerGlobalScope.notificationclick_event - - api.ServiceWorkerGlobalScope.notificationclose_event - - api.ServiceWorkerRegistration.getNotifications - - api.ServiceWorkerRegistration.showNotification - - api.ServiceWorkerRegistration.showNotification.options_actions_parameter - - api.ServiceWorkerRegistration.showNotification.options_badge_parameter - - api.ServiceWorkerRegistration.showNotification.options_data_parameter - - api.ServiceWorkerRegistration.showNotification.options_image_parameter - - api.ServiceWorkerRegistration.showNotification.options_renotify_parameter - - api.ServiceWorkerRegistration.showNotification.options_requireInteraction_parameter - - api.ServiceWorkerRegistration.showNotification.options_vibrate_parameter diff --git a/features/draft/spec/notifications.yml.dist b/features/draft/spec/notifications.yml.dist deleted file mode 100644 index 2637c6fca58..00000000000 --- a/features/draft/spec/notifications.yml.dist +++ /dev/null @@ -1,283 +0,0 @@ -# Generated from: notifications.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: false - support: - chrome: "62" - edge: "79" -compat_features: - # baseline: low - # baseline_low_date: 2023-03-27 - # support: - # chrome: "40" - # chrome_android: "40" - # edge: "17" - # firefox: "44" - # firefox_android: "44" - # safari: "16" - # safari_ios: "16.4" - - api.ServiceWorkerRegistration.getNotifications - - # baseline: low - # baseline_low_date: 2023-03-27 - # support: - # chrome: "42" - # chrome_android: "42" - # edge: "17" - # firefox: "44" - # firefox_android: "44" - # safari: "16" - # safari_ios: "16.4" - - api.NotificationEvent - - api.NotificationEvent.NotificationEvent - - api.ServiceWorkerRegistration.showNotification - - # baseline: false - # support: - # chrome: "40" - # chrome_android: "40" - # edge: "17" - # firefox: "44" - # firefox_android: "44" - # safari: "16" - - api.ServiceWorkerGlobalScope.notificationclick_event - - # baseline: false - # support: - # chrome: "50" - # chrome_android: "50" - # edge: "17" - # firefox: "44" - # firefox_android: "44" - # safari: "16" - - api.ServiceWorkerGlobalScope.notificationclose_event - - # baseline: false - # support: - # chrome: "20" - # edge: "14" - # firefox: "22" - # firefox_android: "22" - # safari: "7" - - api.Notification - - api.Notification.Notification - - api.Notification.click_event - - api.Notification.close - - api.Notification.close_event - - api.Notification.error_event - - api.Notification.show_event - - # baseline: false - # support: - # chrome: "20" - # edge: "14" - # firefox: "22" - # firefox_android: "22" - # safari: "15" - - api.Notification.requestPermission_static - - # baseline: false - # support: - # chrome: "20" - # edge: "14" - # firefox: "26" - # firefox_android: "26" - # safari: "7" - - api.Notification.dir - - # baseline: false - # support: - # chrome: "32" - # edge: "14" - # firefox: "22" - # firefox_android: "22" - # safari: "7" - - api.Notification.permission_static - - # baseline: false - # support: - # chrome: "33" - # edge: "14" - # firefox: "26" - # firefox_android: "26" - # safari: "11" - - api.Notification.body - - api.Notification.lang - - api.Notification.title - - # baseline: false - # support: - # chrome: "42" - # chrome_android: "42" - # edge: "17" - # firefox: "44" - # firefox_android: "44" - - api.NotificationEvent.notification - - # baseline: false - # support: - # chrome: "43" - # edge: "17" - # firefox: "132" - # firefox_android: "132" - # safari: "16.6" - - api.Notification.silent - - # baseline: false - # support: - # chrome: "44" - # edge: "16" - # firefox: "34" - # firefox_android: "34" - # safari: "16" - - api.Notification.data - - # baseline: false - # support: - # chrome: "47" - # edge: "79" - # firefox: "46" - # firefox_android: "46" - # safari: "15" - - api.Notification.requestPermission_static.returns_promise - - # baseline: false - # support: - # chrome: "48" - # chrome_android: "48" - # edge: "17" - # firefox: "44" - # firefox_android: "44" - - api.NotificationEvent.action - - # baseline: false - # support: - # chrome: "53" - # chrome_android: "53" - # edge: ≤79 - # safari: "17" - # safari_ios: "16.4" - - api.ServiceWorkerRegistration.showNotification.options_badge_parameter - - # baseline: false - # support: - # chrome: "20" - # edge: "14" - # firefox: "26" - # firefox_android: "26" - - api.Notification.tag - - # baseline: false - # support: - # chrome: "33" - # edge: "14" - # firefox: "26" - # firefox_android: "26" - - api.Notification.icon - - # baseline: false - # support: - # chrome: "42" - # edge: "15" - # firefox: "41" - # firefox_android: "41" - - api.Notification.worker_support - - # baseline: false - # support: - # chrome: "62" - # edge: "79" - # firefox: "67" - # firefox_android: "67" - - api.Notification.secure_context_required - - # baseline: false - # support: - # chrome: "44" - # chrome_android: "44" - # edge: ≤79 - - api.ServiceWorkerRegistration.showNotification.options_data_parameter - - # baseline: false - # support: - # chrome: "47" - # chrome_android: "47" - # edge: ≤79 - - api.ServiceWorkerRegistration.showNotification.options_requireInteraction_parameter - - # baseline: false - # support: - # chrome: "48" - # chrome_android: "48" - # edge: "18" - - api.ServiceWorkerRegistration.showNotification.options_actions_parameter - - # baseline: false - # support: - # chrome: "50" - # chrome_android: "50" - # edge: ≤79 - - api.ServiceWorkerRegistration.showNotification.options_renotify_parameter - - # baseline: false - # support: - # chrome: "53" - # edge: "18" - # safari: "17" - - api.Notification.badge - - # baseline: false - # support: - # chrome: "56" - # chrome_android: "56" - # edge: ≤79 - - api.ServiceWorkerRegistration.showNotification.options_image_parameter - - # baseline: false - # support: - # chrome: "45" - # edge: ≤79 - - api.ServiceWorkerRegistration.showNotification.options_vibrate_parameter - - # baseline: false - # support: - # chrome: "47" - # edge: "17" - - api.Notification.requireInteraction - - # baseline: false - # support: - # chrome: "48" - # edge: "18" - - api.Notification.maxActions_static - - # baseline: false - # support: - # chrome: "50" - # edge: "17" - - api.Notification.timestamp - - # baseline: false - # support: - # chrome: "50" - # edge: "79" - - api.Notification.renotify - - # baseline: false - # support: - # chrome: "53" - # edge: "18" - - api.Notification.actions - - # baseline: false - # support: - # chrome: "53" - # edge: "79" - - api.Notification.vibrate - - # baseline: false - # support: - # chrome: "56" - # edge: "18" - - api.Notification.image diff --git a/features/notifications-apps.yml b/features/notifications-apps.yml new file mode 100644 index 00000000000..edaa5ad6349 --- /dev/null +++ b/features/notifications-apps.yml @@ -0,0 +1,20 @@ +name: Notifications from service workers and installed apps +# This feature is for the platform-specific nature of notifications support +# in Chrome Android and Safari iOS, and anchors to the Caniuse feature. +# +# See `features/notifications.yml` for the full Notifications feature, which +# does not align with Caniuse. +description: Notifications via service worker registration's `showNotification()` method, sent from installed web applications (for example, saved to the Home Screen on Safari for iOS), show a message to the user, typically using the notification system of the host operating system. +spec: https://notifications.spec.whatwg.org/ +caniuse: notifications +status: + baseline: low + baseline_low_date: 2023-03-27 + support: + chrome: "20" + chrome_android: "42" + edge: "14" + firefox: "22" + firefox_android: "22" + safari: "7" + safari_ios: "16.4" diff --git a/features/notifications-apps.yml.dist b/features/notifications-apps.yml.dist new file mode 100644 index 00000000000..455a7c3b93b --- /dev/null +++ b/features/notifications-apps.yml.dist @@ -0,0 +1,4 @@ +# Generated from: notifications-apps.yml +# Do not edit this file by hand. Edit the source file instead! + +{} diff --git a/features/notifications.yml b/features/notifications.yml index 2ffe98fc08e..353f67041d1 100644 --- a/features/notifications.yml +++ b/features/notifications.yml @@ -1,38 +1,44 @@ name: Notifications -description: The notifications API sends system notifications to the user, often even when the page or browser is not the foreground application. -spec: https://notifications.spec.whatwg.org/ -caniuse: notifications -# Notifications support is complicated and this entry is unusual. It represents -# some kind of notification support available to web pages. More fine-grained -# features could be added to represent specific things that work. -# -# https://caniuse.com/notifications marks iOS support as partial with this note: -# "Requires website to first be added to the Home Screen." -# -# BCD doesn't use partial_implementation for safari_ios, but has this note: -# "Notifications are supported in web apps saved to the home screen." -# -# We do not have the concept of partial support or notes: -# https://github.com/web-platform-dx/web-features/issues/915 +# This feature is the general Notifications API, and does not anchor to the +# Caniuse feature. # -# Another complication is the two entry points to this API: -# - new Notification() for non-persistent notifications. -# - showNotification() in service workers for persistent notifications. -# -# Finally, BCD and caniuse.com disagree about whether it was Safari 6 or 7 that -# first supported notifications, and BCD originally agreed with caniuse.com: -# https://github.com/mdn/browser-compat-data/pull/7949 -# -# Due to this complexity, manually combine these 3 data points: -# https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification#browser_compatibility -# https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification#browser_compatibility -# https://caniuse.com/notifications (excluding partial support on iOS) +# See `features/notifications-apps.yml` for the Notifications feature for mobile +# browsers that have platform-specific requirements and aligns with Caniuse. +description: The `Notification()` constructor shows a message to the user, typically using the notification system of the host operating system. +spec: https://notifications.spec.whatwg.org/ status: - baseline: false - support: - chrome: "20" - chrome_android: "42" - edge: "14" - firefox: "22" - firefox_android: "22" - safari: "6" + compute_from: api.Notification.Notification +compat_features: + - api.Notification + - api.Notification.Notification + - api.Notification.actions + - api.Notification.badge + - api.Notification.body + - api.Notification.click_event + - api.Notification.close + - api.Notification.close_event + - api.Notification.data + - api.Notification.dir + - api.Notification.error_event + - api.Notification.icon + - api.Notification.image + - api.Notification.lang + - api.Notification.maxActions_static + - api.Notification.permission_static + - api.Notification.renotify + - api.Notification.requestPermission_static + - api.Notification.requireInteraction + - api.Notification.show_event + - api.Notification.silent + - api.Notification.tag + - api.Notification.timestamp + - api.Notification.title + - api.Notification.vibrate + - api.NotificationEvent + - api.NotificationEvent.NotificationEvent + - api.NotificationEvent.action + - api.NotificationEvent.notification + - api.ServiceWorkerGlobalScope.notificationclick_event + - api.ServiceWorkerGlobalScope.notificationclose_event + - api.ServiceWorkerRegistration.getNotifications + - api.ServiceWorkerRegistration.showNotification diff --git a/features/notifications.yml.dist b/features/notifications.yml.dist index 2d681c71f53..9f3a8157c2d 100644 --- a/features/notifications.yml.dist +++ b/features/notifications.yml.dist @@ -1,4 +1,212 @@ # Generated from: notifications.yml # Do not edit this file by hand. Edit the source file instead! -{} +status: + baseline: false + support: + chrome: "20" + edge: "14" + firefox: "22" + firefox_android: "22" + safari: "7" +compat_features: + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "40" + # chrome_android: "40" + # edge: "17" + # firefox: "44" + # firefox_android: "44" + # safari: "16" + # safari_ios: "16.4" + - api.ServiceWorkerRegistration.getNotifications + + # baseline: low + # baseline_low_date: 2023-03-27 + # support: + # chrome: "42" + # chrome_android: "42" + # edge: "17" + # firefox: "44" + # firefox_android: "44" + # safari: "16" + # safari_ios: "16.4" + - api.NotificationEvent + - api.NotificationEvent.NotificationEvent + - api.ServiceWorkerRegistration.showNotification + + # baseline: false + # support: + # chrome: "40" + # chrome_android: "40" + # edge: "17" + # firefox: "44" + # firefox_android: "44" + # safari: "16" + - api.ServiceWorkerGlobalScope.notificationclick_event + + # baseline: false + # support: + # chrome: "50" + # chrome_android: "50" + # edge: "17" + # firefox: "44" + # firefox_android: "44" + # safari: "16" + - api.ServiceWorkerGlobalScope.notificationclose_event + + # ⬇️ Same status as overall feature ⬇️ + # baseline: false + # support: + # chrome: "20" + # edge: "14" + # firefox: "22" + # firefox_android: "22" + # safari: "7" + - api.Notification + - api.Notification.Notification + - api.Notification.click_event + - api.Notification.close + - api.Notification.close_event + - api.Notification.error_event + - api.Notification.show_event + + # baseline: false + # support: + # chrome: "20" + # edge: "14" + # firefox: "22" + # firefox_android: "22" + # safari: "15" + - api.Notification.requestPermission_static + + # baseline: false + # support: + # chrome: "20" + # edge: "14" + # firefox: "26" + # firefox_android: "26" + # safari: "7" + - api.Notification.dir + + # baseline: false + # support: + # chrome: "32" + # edge: "14" + # firefox: "22" + # firefox_android: "22" + # safari: "7" + - api.Notification.permission_static + + # baseline: false + # support: + # chrome: "33" + # edge: "14" + # firefox: "26" + # firefox_android: "26" + # safari: "11" + - api.Notification.body + - api.Notification.lang + - api.Notification.title + + # baseline: false + # support: + # chrome: "42" + # chrome_android: "42" + # edge: "17" + # firefox: "44" + # firefox_android: "44" + - api.NotificationEvent.notification + + # baseline: false + # support: + # chrome: "43" + # edge: "17" + # firefox: "132" + # firefox_android: "132" + # safari: "16.6" + - api.Notification.silent + + # baseline: false + # support: + # chrome: "44" + # edge: "16" + # firefox: "34" + # firefox_android: "34" + # safari: "16" + - api.Notification.data + + # baseline: false + # support: + # chrome: "48" + # chrome_android: "48" + # edge: "17" + # firefox: "44" + # firefox_android: "44" + - api.NotificationEvent.action + + # baseline: false + # support: + # chrome: "20" + # edge: "14" + # firefox: "26" + # firefox_android: "26" + - api.Notification.tag + + # baseline: false + # support: + # chrome: "33" + # edge: "14" + # firefox: "26" + # firefox_android: "26" + - api.Notification.icon + + # baseline: false + # support: + # chrome: "53" + # edge: "18" + # safari: "17" + - api.Notification.badge + + # baseline: false + # support: + # chrome: "47" + # edge: "17" + - api.Notification.requireInteraction + + # baseline: false + # support: + # chrome: "48" + # edge: "18" + - api.Notification.maxActions_static + + # baseline: false + # support: + # chrome: "50" + # edge: "17" + - api.Notification.timestamp + + # baseline: false + # support: + # chrome: "50" + # edge: "79" + - api.Notification.renotify + + # baseline: false + # support: + # chrome: "53" + # edge: "18" + - api.Notification.actions + + # baseline: false + # support: + # chrome: "53" + # edge: "79" + - api.Notification.vibrate + + # baseline: false + # support: + # chrome: "56" + # edge: "18" + - api.Notification.image