Skip to content

Commit 894d41e

Browse files
authored
fix: close window when leave fs crash (#25604)
1 parent a99256d commit 894d41e

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

shell/browser/api/electron_api_browser_window.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,11 +336,11 @@ void BrowserWindow::OnWindowResize() {
336336
}
337337

338338
void BrowserWindow::OnWindowLeaveFullScreen() {
339-
TopLevelWindow::OnWindowLeaveFullScreen();
340339
#if defined(OS_MACOSX)
341340
if (web_contents()->IsFullscreenForCurrentTab())
342341
web_contents()->ExitFullscreen(true);
343342
#endif
343+
TopLevelWindow::OnWindowLeaveFullScreen();
344344
}
345345

346346
void BrowserWindow::Focus() {

spec-main/api-browser-window-spec.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3938,6 +3938,22 @@ describe('BrowserWindow module', () => {
39383938
});
39393939

39403940
ifdescribe(process.platform === 'darwin')('fullscreen state', () => {
3941+
it('should not cause a crash if called when exiting fullscreen', async () => {
3942+
const w = new BrowserWindow();
3943+
3944+
const enterFullScreen = emittedOnce(w, 'enter-full-screen');
3945+
w.setFullScreen(true);
3946+
await enterFullScreen;
3947+
3948+
await delay();
3949+
3950+
const leaveFullScreen = emittedOnce(w, 'leave-full-screen');
3951+
w.setFullScreen(false);
3952+
await leaveFullScreen;
3953+
3954+
w.close();
3955+
});
3956+
39413957
it('can be changed with setFullScreen method', async () => {
39423958
const w = new BrowserWindow();
39433959
const enterFullScreen = emittedOnce(w, 'enter-full-screen');

0 commit comments

Comments
 (0)