fix(macos): validate PID and socket before reporting window as minimized

- Move PID extraction and app PID match before minimized check in windowStateFromAccessibilityAPI
- Add test asserting correct validation order in get-mpv-window-macos.swift
- Include new test in test:fast suite
This commit is contained in:
2026-05-15 18:58:42 -07:00
parent b9ca198039
commit 44609f3da0
3 changed files with 45 additions and 8 deletions
+11 -7
View File
@@ -174,22 +174,26 @@ private func windowStateFromAccessibilityAPI() -> WindowLookupResult? {
}
for window in windows {
var minimizedRef: CFTypeRef?
let minimizedStatus = AXUIElementCopyAttributeValue(window, kAXMinimizedAttribute as CFString, &minimizedRef)
if minimizedStatus == .success, let minimized = minimizedRef as? Bool, minimized {
foundMinimizedTargetWindow = true
continue
}
var windowPid: pid_t = 0
if AXUIElementGetPid(window, &windowPid) != .success {
continue
}
if windowPid != app.processIdentifier {
continue
}
if !windowHasTargetSocket(windowPid) {
continue
}
var minimizedRef: CFTypeRef?
let minimizedStatus = AXUIElementCopyAttributeValue(window, kAXMinimizedAttribute as CFString, &minimizedRef)
if minimizedStatus == .success, let minimized = minimizedRef as? Bool, minimized {
foundMinimizedTargetWindow = true
continue
}
if let geometry = geometryFromAXWindow(window) {
return .visible(
WindowState(