Two issues: 1) We expose Notifications.show(), but that's not part of the Notifications spec. This leads to issues like https://bugs.webkit.org/show_bug.cgi?id=108009 because the new notifications implementation was not expecting to support these other calls. 2) Both webkitNotifications and Notifications share the same .idl definition. This means that APIs only defined for webkitNotifications (like cancel()) are also exposed for Notifications, if the platform turns on ENABLE_LEGACY_NOTIFICATIONS.