felixrieseberg

#55606: fix: honor hasShadow: false and focusable for windows in app shims

Merged
Created: Nov 4, 2026, 11:57:47 AM
Merged: Nov 5, 2026, 3:10:37 PM
4 comments
Target: main

Description of Change

new BrowserWindow({ appShim, frame: false, transparent: true, hasShadow: false }) still got the system shadow, because NativeWindowMacRemote::SetHasShadow only stores the value. This sets ShadowType::kNone on the widget at creation, which NativeWidgetMacNSWindowHost sends to the shim as has_window_server_shadow = false. The option is read above the app_shim lookup because reading options can run JavaScript that disconnects the shim.

focusable was ignored the same way. focusable: false now sets Activatable::kNo at creation.

Checked on a local build at Chromium 158: a focusable: false window rejects typing and doesn't take focus from the frontmost app, setFocusable(true) makes it focusable, and the new spec passes. Not run on 44-x-y.

Checklist

Release Notes

Notes: Fixed hasShadow: false and focusable being ignored in macOS app shims.

Backports

45-x-y
Merged
PR Number
#55632
Merged At
Nov 5, 2026, 4:13:40 PM
Released In
Not yet
Release Date
Not yet
46-x-y
In-flight
PR Number
#55633
Waiting to be merged

Semver Impact

Major
Breaking changes
Minor
New features
Patch
Bug fixes
None
Docs, tests, etc.

Semantic Versioning helps users understand the impact of updates:

  • Major (X.y.z): Breaking changes that may require code modifications
  • Minor (x.Y.z): New features that maintain backward compatibility
  • Patch (x.y.Z): Bug fixes that don't change the API
  • None: Changes that don't affect using facing parts of Electron