codebytere

#54508: fix: webview findInPage() hang when the embedder page has an iframe

Merged
Created: Sep 28, 2026, 7:13:17 AM
Merged: Sep 30, 2026, 1:28:30 AM
4 comments
Target: main

Description of Change

Fixes #54199

Calling findInPage() on a <webview> never emitted found-in-page and pinned the main process at 100% CPU when the embedder page also had an <iframe>. Chromium's find-in-page frame walk treats a webview's placeholder frame inconsistently: child and parent lookups swap in the guest's main frame, while sibling lookups return the placeholder itself. From the iframe the walk stepped onto the placeholder, could not continue, wrapped back to the embedder's main frame and repeated forever without reaching the guest.

This adds a Chromium patch that takes siblings from the same child list the other lookups use, upstreamed at https://chromium-review.googlesource.com/c/chromium/src/+/8470272. The new webview spec adds an iframe to the embedder before the webview and steps find past the last match.

Checklist

Release Notes

Notes: Fixed webview.findInPage() hanging when the host page also has an iframe.

Backports

43-x-y
Merged
PR Number
#54584
Merged At
Sep 30, 2026, 12:59:35 PM
Released In
Not yet
Release Date
Not yet
44-x-y
Merged
PR Number
#54586
Merged At
Sep 30, 2026, 1:01:01 PM
Released In
Not yet
Release Date
Not yet
45-x-y
Merged
PR Number
#54585
Merged At
Sep 30, 2026, 1:00:13 PM
Released In
Not yet
Release Date
Not yet

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