From ef3282e3d7cbafa129f01984674c9a35f9935a25 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 | 16 ++++++++++++++++ 2 files changed, 17 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..a4cbf1cf15788 100644 --- a/spec-main/api-browser-window-spec.ts +++ b/spec-main/api-browser-window-spec.ts @@ -3970,6 +3970,22 @@ describe('BrowserWindow module', () => { }); ifdescribe(process.platform === 'darwin')('fullscreen state', () => { + it('should not cause a crash if called when exiting fullscreen', async () => { + const w = new BrowserWindow(); + + const enterFullScreen = emittedOnce(w, 'enter-full-screen'); + w.setFullScreen(true); + await enterFullScreen; + + await delay(); + + const leaveFullScreen = emittedOnce(w, 'leave-full-screen'); + w.setFullScreen(false); + await leaveFullScreen; + + w.close(); + }); + it('can be changed with setFullScreen method', async () => { const w = new BrowserWindow(); const enterFullScreen = emittedOnce(w, 'enter-full-screen');