New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: use a more unique identifier for NSUserNotification instances #17469
Conversation
So although apple has it documented that notifications with duplicate identifiers in the same session won't be presented. They apparently forgot to mention that macOS also non-deterministically and without any errors, logs or warnings will also not present some notifications in future sessions if they have a previously used identifier. As such, we're going to truly randomize these identifiers so they are unique between apps and sessions. The identifier now consists of a randomly generated UUID and the app bundle id.
Release Notes Persisted
|
I have automatically backported this PR to "3-1-x", please check out #17482 |
I have automatically backported this PR to "4-1-x", please check out #17483 |
I have automatically backported this PR to "5-0-x", please check out #17484 |
Thank you for your hard work. |
@OrangeChu Your notification will be getting garbage collected. If you keep your notifications in a global store they won't be GC'ed and events will always fire 👍 E.g. global.notifications = []
const n = new Notification({ title: 'x' })
n.on('click', console.info)
n.show()
global.notifications.push(n) |
@MarshallOfSound Thank you for your reply. |
…lectron#17469) So although apple has it documented that notifications with duplicate identifiers in the same session won't be presented. They apparently forgot to mention that macOS also non-deterministically and without any errors, logs or warnings will also not present some notifications in future sessions if they have a previously used identifier. As such, we're going to truly randomize these identifiers so they are unique between apps and sessions. The identifier now consists of a randomly generated UUID and the app bundle id.
Description of Change
So although apple has it documented that notifications with duplicate identifiers in the same session won't be presented. They apparently forgot to mention that macOS also non-deterministically and without any errors, logs or warnings will also not present some notifications in future sessions if they have a previously used identifier.
As such, we're going to truly randomize these identifiers so they are unique between apps and sessions. The identifier now consists of a randomly generated UUID and the app bundle id.
Release Notes
Notes: Fixed an issue where
Notification
objects constructed in the main process would randomly not be shown to the user.