fix: crash on close window when webContents destroyed (#31620)

This commit is contained in:
Shelley Vohr 2021-11-01 05:32:54 +01:00 коммит произвёл GitHub
Родитель a6e5ff3607
Коммит 20b4813cf8
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 6 добавлений и 1 удалений

Просмотреть файл

@ -254,7 +254,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');