MarshallOfSound

#50474: refactor: remove dead named-window lookup from guest-window-manager

Merged
Created: Mar 25, 2026, 2:04:43 AM
Merged: Mar 25, 2026, 12:48:30 PM
5 comments
Target: main

The frameNamesToWindow map was a holdover from the BrowserWindowProxy IPC shim. Since nativeWindowOpen became the only code path in #29405, Blink's FrameTree::FindOrCreateFrameForNavigation resolves named window targets directly in the renderer, scoped to the opener's browsing context group. When a matching named window exists, Blink navigates it without ever sending a CreateNewWindow IPC to the browser — so this JS-side map was never consulted in the legitimate same-opener case.

The only time the map found a match was when two unrelated renderers happened to use the same target name, in which case openGuestWindow would short-circuit before consuming the guest WebContents that Chromium had already created for the new window, leaking it.

Adds a test verifying Blink handles same-opener named-target reuse end-to-end (same WindowProxy returned, existing child navigated, setWindowOpenHandler not re-invoked) without any browser-side tracking.

Notes: none

Backports

39-x-y
Merged
PR Number
#50498
Merged At
Mar 26, 2026, 2:50:04 AM
Released In
v39.8.5
Release Date
Mar 26, 2026, 6:06:36 PM
40-x-y
Merged
PR Number
#50495
Merged At
Mar 26, 2026, 8:17:17 AM
Released In
v40.8.5
Release Date
Mar 26, 2026, 3:21:16 PM
41-x-y
Merged
PR Number
#50497
Merged At
Mar 26, 2026, 10:46:13 AM
Released In
v41.1.0
Release Date
Mar 26, 2026, 3:53:32 PM
42-x-y
Merged
PR Number
#50496
Merged At
Mar 26, 2026, 10:46:44 AM
Released In
v42.0.0-alpha.5
Release Date
Mar 26, 2026, 1:38:47 PM

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