fix: Invalidate weak ptrs before window Javascript object is destroyed (#14532)
* fix: Invalidate weak ptrs before window Javascript object is destroyed * chore: add regression test for #14513 This test is similar to the original gist at https://gist.github.com/bpasero/a02a645e11f4946dcca1331d0299149d -- the key is to open multiple windows and add an `app.on('browser-window-focus') listener that accesses window.id. * fix: last commit didn't test the right thing. The test needs to run in the main process to reproduce the conditions reported in #14513
This commit is contained in:
parent
4b5cb7c548
commit
e860748d6b
3 changed files with 30 additions and 0 deletions
|
@ -142,6 +142,11 @@ void TopLevelWindow::WillCloseWindow(bool* prevent_default) {
|
|||
}
|
||||
|
||||
void TopLevelWindow::OnWindowClosed() {
|
||||
// Invalidate weak ptrs before the Javascript object is destroyed,
|
||||
// there might be some delayed emit events which shouldn't be
|
||||
// triggered after this.
|
||||
weak_factory_.InvalidateWeakPtrs();
|
||||
|
||||
RemoveFromWeakMap();
|
||||
window_->RemoveObserver(this);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue