mirror of
https://github.com/electron/electron.git
synced 2026-05-02 03:00:22 -04:00
* feat: add `Notification.getHistory()` static method (macOS) Add `Notification.getHistory()` which returns a `Promise<Notification[]>` of all delivered notifications still present in Notification Center. Each returned Notification is a live object connected to the corresponding delivered notification — interaction events (click, reply, action, close) will fire on these objects, enabling apps to re-attach event handlers after a restart. Key implementation details: - Queries UNUserNotificationCenter's getDeliveredNotifications API - Creates live Notification objects with populated id, groupId, title, subtitle, and body properties from what macOS provides - Registers each object with the presenter via Restore() so the NotificationCenterDelegate routes events correctly - Restored notifications use is_restored_ flag to prevent removal from Notification Center when the JS object is garbage collected - Requires code-signed builds (unsigned builds resolve with empty array) Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> * test: fix typecheck Co-authored-by: Keeley Hammond <vertedinde@electronjs.org> * fix: avoid dangling presenter pointer in GetHistory callback Co-authored-by: Keeley Hammond <khammond@slack-corp.com> * fix: document show() behavior Notifications returned by getHistory() now set is_restored_ so that Dismiss() skips removal from Notification Center on GC. Calling show() on a restored notification removes the original from NC and posts a new one. Co-authored-by: Keeley Hammond <khammond@slack-corp.com> * fix: address code review feedback Co-authored-by: Keeley Hammond <khammond@slack-corp.com> * test: fix oxfmt linting Co-authored-by: Keeley Hammond <khammond@slack-corp.com> * docs: update docs/api/notification.md Co-authored-by: Erick Zhao <erick@hotmail.ca> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org> --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>