#49998: fix: bind offscreen paint callback to child WebContents
Merged
Description of Change
Refs #47868
Previously, MaybeOverrideCreateParamsForNewWindow bound the OffScreenWebContentsView's paint callback to the parent WebContents using base::Unretained(this). This was both unsafe (dangling pointer risk if the parent is destroyed before the child) and semantically incorrect — paint events belong to the child window, not the opener.
Replace the callback in MaybeOverrideCreateParamsForNewWindow with base::DoNothing(), then rebind it to the child WebContents in AddNewContents via a new SetCallback method on OffScreenWebContentsView.
Checklist
- PR description included
-
npm testpasses - tests are changed or added
- PR release notes describe the change in a way relevant to app developers, and are capitalized, punctuated, and past tense.
Release Notes
Notes: none
Backports
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