mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
fix: crash on close window when webContents destroyed (#31644)
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
This commit is contained in:
@@ -244,7 +244,7 @@ void BrowserWindow::OnCloseButtonClicked(bool* prevent_default) {
|
||||
ScheduleUnresponsiveEvent(5000);
|
||||
|
||||
// Already closed by renderer.
|
||||
if (!web_contents())
|
||||
if (!web_contents() || !api_web_contents_)
|
||||
return;
|
||||
|
||||
// Required to make beforeunload handler work.
|
||||
|
||||
@@ -110,6 +110,11 @@ describe('BrowserWindow module', () => {
|
||||
await closed;
|
||||
});
|
||||
|
||||
it('should not crash if called after webContents is destroyed', () => {
|
||||
w.webContents.destroy();
|
||||
w.webContents.on('destroyed', () => w.close());
|
||||
});
|
||||
|
||||
it('should emit unload handler', async () => {
|
||||
await w.loadFile(path.join(fixtures, 'api', 'unload.html'));
|
||||
const closed = emittedOnce(w, 'closed');
|
||||
|
||||
Reference in New Issue
Block a user