From 295e5534b3fcef604dae80407723112a1d364862 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Tue, 15 Sep 2020 09:55:22 -0600 Subject: [PATCH] fix: close window when leave fs crash --- shell/browser/api/electron_api_browser_window.cc | 2 +- spec-main/api-browser-window-spec.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/shell/browser/api/electron_api_browser_window.cc b/shell/browser/api/electron_api_browser_window.cc index ff7a4efd34b50..bfda0fe19bd88 100644 --- a/shell/browser/api/electron_api_browser_window.cc +++ b/shell/browser/api/electron_api_browser_window.cc @@ -320,11 +320,11 @@ void BrowserWindow::OnWindowResize() { } void BrowserWindow::OnWindowLeaveFullScreen() { - BaseWindow::OnWindowLeaveFullScreen(); #if defined(OS_MAC) if (web_contents()->IsFullscreen()) web_contents()->ExitFullscreen(true); #endif + BaseWindow::OnWindowLeaveFullScreen(); } void BrowserWindow::Focus() { diff --git a/spec-main/api-browser-window-spec.ts b/spec-main/api-browser-window-spec.ts index 2a3fe6d8f546a..892d01d06df2c 100644 --- a/spec-main/api-browser-window-spec.ts +++ b/spec-main/api-browser-window-spec.ts @@ -110,6 +110,19 @@ describe('BrowserWindow module', () => { await emittedOnce(w.webContents, 'before-unload-fired'); }); + it('should not cause a crash if called when exiting fullscreen', (done) => { + w.once('enter-full-screen', () => { + w.fullScreen = false; + }); + w.on('leave-full-screen', () => { + w.close(); + done(); + }); + + w.show(); + w.fullScreen = true; + }); + describe('when invoked synchronously inside navigation observer', () => { let server: http.Server = null as unknown as http.Server; let url: string = null as unknown as string;