window `close` event gets ignored if nw2 is disabled / `process` signals get ignored and NW.js crashes
See original GitHub issueIssue Type
- Bug Report
- Successfully reproduced against the latest version of NW.js?
Issue
I’m reporting two issues that are somewhat related to each other when trying to intercept the termination of NW.js apps. I noticed the second issue while trying to debug the first one.
- Starting with NW.js 0.68, when
--disable-features=nw2
is set, attaching aclose
event listener to a NW.js window does not have any effect and the callback gets ignored. https://docs.nwjs.io/en/latest/References/Window/#event-close - When calling
process.removeAllListeners()
at the beginning of the application code (e.g. for being able to reset global application state in-between application window reloads) and then attaching an event listener on the process for aSIGTERM
signal for example, sending the signal to the running process will cause NW.js to crash if--disable-features=nw2
is set. If--disable-features=nw2
is not set, then the event listener gets ignored, which is bad. https://nodejs.org/api/process.html#signal-events
My application had to set --disable-features=nw2
twice in the past because of various issues with the new nw2 implementation (1, 2), and so far I haven’t reverted this (again). I will need to test the latest releases and see if those issues still occur, but the issues are fixed, I will upgrade to nw2, so the issue shouldn’t affect my application. However, I felt like this issue is still worth reporting, as it’s a regression that has been introduced in 0.68.
The process
event listener issue on the other hand looks like a NodeJS related issue (decided to test this after proof-reading my post). NW.js shouldn’t crash though if --disable-features=nw2
is set.
Reproduction
Please see my reproduction repo here with a simple NW.js app and a simple GitHub actions workflow: https://github.com/bastimeyer/nwjs-window-close
The resulting log output with NW.js ranging from 0.64 to 0.70 while running several tests can be found here: https://github.com/bastimeyer/nwjs-window-close/actions/runs/3384916071
Issue Analytics
- State:
- Created a year ago
- Reactions:2
- Comments:10 (1 by maintainers)
Top GitHub Comments
Second this issue. Just realized that my #8000 (that I now closed) is a duplicate of this. Given that nw2 is about 10x or more slower in processing scripted events than nw1, we really need nw1 to continue to be supported until nw2 reaches the same level of efficiency as nw1. See #7979 for more info.
Yes, I am aware, but NW2 has had lots of bugs over the past years (#7230), and most recently this one #7982, which prevents me from switching (back) to NW2. It’s a “pick your poison” situation for me and either one of those bugs needs to be fixed.