fixed bug with nil window in processURLRequest (#4366)

* fixed bug with nil window in processURLRequest

* added row to changelog and added log

* removed old code

* Fix getWindowForID undefined error in processURLRequest

Replace non-existent globalApplication.getWindowForID() call with
the correct globalApplication.Window.GetByID() method. This fixes
the compilation error while preserving the nil check functionality
that was intended in the original PR.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add explicit nil check for safer window validation

Add an additional nil check alongside the boolean check from GetByID()
to handle edge cases where a window interface could theoretically be
nil even when the lookup indicates success. This provides defense
in depth against nil pointer dereferences.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Change window not found log to debug level

Use globalApplication.debug() instead of log.Println() for missing
window ID messages. This is more appropriate as it's diagnostic
information rather than a user-facing error.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove unused log import

Remove the "log" import that is no longer needed after switching
to globalApplication.debug() for logging.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Etesam 2025-07-01 15:27:38 -04:00 committed by GitHub
commit c244eeb21f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 6 deletions

View file

@ -114,6 +114,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed
- Fixed nil pointer dereference in processURLRequest for Mac by [@etesam913](https://github.com/etesam913) in [#4366](https://github.com/wailsapp/wails/pull/4366)
- Fixed a linux bug preventing filtered dialogs by [@bh90210](https://github.com/bh90210) in [#4287](https://github.com/wailsapp/wails/pull/4287)
- Fixed Windows+Linux Edit Menu issues by [@leaanthony](https://github.com/leaanthony) in [#3f78a3a](https://github.com/wailsapp/wails/commit/3f78a3a8ce7837e8b32242c8edbbed431c68c062)
- Updated the minimum system version in macOS .plist files from 10.13.0 to 10.15.0 by [@AkshayKalose](https://github.com/AkshayKalose) in [#3981](https://github.com/wailsapp/wails/pull/3981)

View file

@ -314,15 +314,16 @@ func processMessage(windowID C.uint, message *C.char) {
//export processURLRequest
func processURLRequest(windowID C.uint, wkUrlSchemeTask unsafe.Pointer) {
window, ok := globalApplication.Window.GetByID(uint(windowID))
if !ok || window == nil {
globalApplication.debug("could not find window with id: %d", windowID)
return
}
webviewRequests <- &webViewAssetRequest{
Request: webview.NewRequest(wkUrlSchemeTask),
windowId: uint(windowID),
windowName: func() string {
if window, ok := globalApplication.Window.GetByID(uint(windowID)); ok {
return window.Name()
}
return ""
}(),
windowName: window.Name(),
}
}