diff --git a/shell/browser/native_window_views.cc b/shell/browser/native_window_views.cc index 50ff87885c583..268d48187f2f7 100644 --- a/shell/browser/native_window_views.cc +++ b/shell/browser/native_window_views.cc @@ -876,7 +876,7 @@ bool NativeWindowViews::IsMovable() { void NativeWindowViews::SetMinimizable(bool minimizable) { #if BUILDFLAG(IS_WIN) FlipWindowStyle(GetAcceleratedWidget(), minimizable, WS_MINIMIZEBOX); - if (titlebar_overlay_enabled()) { + if (IsWindowControlsOverlayEnabled()) { auto* frame_view = static_cast(widget()->non_client_view()->frame_view()); frame_view->caption_button_container()->UpdateButtons(); @@ -896,7 +896,7 @@ bool NativeWindowViews::IsMinimizable() { void NativeWindowViews::SetMaximizable(bool maximizable) { #if BUILDFLAG(IS_WIN) FlipWindowStyle(GetAcceleratedWidget(), maximizable, WS_MAXIMIZEBOX); - if (titlebar_overlay_enabled()) { + if (IsWindowControlsOverlayEnabled()) { auto* frame_view = static_cast(widget()->non_client_view()->frame_view()); frame_view->caption_button_container()->UpdateButtons(); @@ -936,7 +936,7 @@ void NativeWindowViews::SetClosable(bool closable) { } else { EnableMenuItem(menu, SC_CLOSE, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED); } - if (titlebar_overlay_enabled()) { + if (IsWindowControlsOverlayEnabled()) { auto* frame_view = static_cast(widget()->non_client_view()->frame_view()); frame_view->caption_button_container()->UpdateButtons(); diff --git a/spec-main/api-browser-window-spec.ts b/spec-main/api-browser-window-spec.ts index 972a09e674d6a..9d48cb77e6cb6 100644 --- a/spec-main/api-browser-window-spec.ts +++ b/spec-main/api-browser-window-spec.ts @@ -2424,6 +2424,41 @@ describe('BrowserWindow module', () => { ifit(process.platform === 'darwin')('sets Window Control Overlay with hidden inset title bar', async () => { await testWindowsOverlay('hiddenInset'); }); + + ifdescribe(process.platform === 'win32')('when an invalid titleBarStyle is initially set', () => { + let w: BrowserWindow; + + beforeEach(() => { + w = new BrowserWindow({ + show: false, + webPreferences: { + nodeIntegration: true, + contextIsolation: false + }, + titleBarOverlay: { + color: '#0000f0', + symbolColor: '#ffffff' + }, + titleBarStyle: 'hiddenInset' + }); + }); + + afterEach(async () => { + await closeAllWindows(); + }); + + it('does not crash changing minimizability ', () => { + expect(() => { + w.setMinimizable(false); + }).to.not.throw(); + }); + + it('does not crash changing maximizability', () => { + expect(() => { + w.setMaximizable(false); + }).to.not.throw(); + }); + }); }); ifdescribe(['win32', 'darwin'].includes(process.platform))('"titleBarOverlay" option', () => {