#53305: fix: main process crashes from WebUI host matching, worker AI bindings, extension background page media and serial port revocation
Merged
Created: Aug 29, 2026, 1:03:19 AM
Merged: Aug 31, 2026, 10:30:41 AM
6 comments
Target: main
Description of Change
Four small main-process crash fixes, each with a crash-case fixture (except the serial one, which needs hardware to exercise):
ElectronWebUIControllerFactorymatched WebUI pages by host only, so navigating a window to e.g.http://accessibility/was treated as a WebUI navigation and hitNOTREACHEDinRenderFrameHostImpl::AllowBindings. It now also requireschrome://(ordevtools://for the DevTools host).- With
session.registerLocalAIHandler()set, aLanguageModelcall from a Worker reachedProxyingAIManagerwith noRenderFrameHostand dereferenced it. Such requests are now reported as unavailable. - Extension background pages get
api::WebContentsas their delegate but never had aWebContentsPermissionHelper, sonavigator.mediaDevices.*(and pointer/keyboard lock) from a background page dereferenced null. The helper is now created for every WebContents thatapi::WebContentsadopts. SerialChooserContext::RevokePortPermissionWebInitiateddereferencedport_info_.end()whenSerialPort.forget()was called for a port the context no longer knew about (e.g. after the device was unplugged).
Checklist
- PR description included
-
npm testpasses - tests are changed or added
Release Notes
Notes: Fixed main process crashes when navigating to http://accessibility/ or http://devtools/, when using the LanguageModel API from a Worker with a local AI handler registered, when an extension background page used navigator.mediaDevices, and when calling SerialPort.forget() for a disconnected device.
Backports
45-x-y
MergedPR Number
#53325Merged At
Aug 31, 2026, 12:07:46 PM
Released In
v45.0.0-alpha.3Release Date
Aug 31, 2026, 3:00:16 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