From 07685cb2ba91bdf5f07c97b025fa1306e80dd399 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Oct 2023 08:38:15 +0000 Subject: [PATCH] fix(deps): update github.com/adrianriobo/goax digest to eb7e85f --- go.mod | 2 +- go.sum | 2 ++ .../pkg/os/darwin/api/appkit/nsrunningapplication.go | 9 +++++++++ .../goax/pkg/os/darwin/api/appkit/nsrunningapplication.h | 3 +++ .../goax/pkg/os/darwin/api/appkit/nsrunningapplication.m | 7 +++++++ .../github.com/adrianriobo/goax/pkg/os/darwin/ax/ax.go | 6 ++++++ vendor/modules.txt | 2 +- 7 files changed, 29 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 7574d88..4e3160f 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/containers/podman-desktop-e2e go 1.19 require ( - github.com/adrianriobo/goax v0.0.0-20230623124707-4205191b0dab + github.com/adrianriobo/goax v0.0.0-20230810112110-eb7e85f31a68 github.com/onsi/ginkgo/v2 v2.12.0 github.com/onsi/gomega v1.28.0 github.com/spf13/pflag v1.0.5 diff --git a/go.sum b/go.sum index 0605fcf..f4f6471 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/adrianriobo/goax v0.0.0-20230623124707-4205191b0dab h1:SlHYOcfWkUlIJ02ba9vS+OjnX8p8W6oI2bwwySxbBpo= github.com/adrianriobo/goax v0.0.0-20230623124707-4205191b0dab/go.mod h1:yOPIPPkjny6EixjEy3bLiUKDGeKqsgYX74JpJtxSHkM= +github.com/adrianriobo/goax v0.0.0-20230810112110-eb7e85f31a68 h1:774q90aU+kBXEVo2zB9ybZM/XlznXT+Yt9v/YTT7wcY= +github.com/adrianriobo/goax v0.0.0-20230810112110-eb7e85f31a68/go.mod h1:yOPIPPkjny6EixjEy3bLiUKDGeKqsgYX74JpJtxSHkM= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.go b/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.go index aa89709..63fc32e 100644 --- a/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.go +++ b/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.go @@ -26,6 +26,15 @@ func GetAXFocusedWindow(ref util.Ref) util.Ref { return util.Ref(fwAXRef) } +// check if accessibility is enabled +func CheckAccess() bool { + access := C.CheckAccess() + + // convert untyped bool to int + safe := *(*uint64)(unsafe.Pointer(&access)) & 1 + return safe == 1 +} + // TODO windowTitle could be localized, how to handle that?? func GetAppByBundleAndWindow(bundleID, windowTitle string) unsafe.Pointer { cBundleID := C.CString(bundleID) diff --git a/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.h b/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.h index 29608a0..aa029f5 100644 --- a/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.h +++ b/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.h @@ -9,6 +9,9 @@ void* FindRunningApplication(const char* bundleID, const char* windowTitle); // Show all void ShowAllApplications(); +// Check accessibility API +BOOL CheckAccess(); + // https://developer.apple.com/documentation/appkit/nsrunningapplication/1529140-bundleidentifier?language=objc const char* BundleIdentifier(void* app); diff --git a/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.m b/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.m index 0d32751..a81b09c 100644 --- a/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.m +++ b/vendor/github.com/adrianriobo/goax/pkg/os/darwin/api/appkit/nsrunningapplication.m @@ -6,6 +6,13 @@ } } +// Check access to the accessibility API +BOOL CheckAccess() { + NSDictionary *options = @{(id)kAXTrustedCheckOptionPrompt : @YES}; + BOOL access = AXIsProcessTrustedWithOptions((CFDictionaryRef)options); + return access; +} + void* FindRunningApplication(const char *bundleID, const char *windowTitle) { @autoreleasepool { NSString *nBundleID = [NSString stringWithUTF8String:bundleID]; diff --git a/vendor/github.com/adrianriobo/goax/pkg/os/darwin/ax/ax.go b/vendor/github.com/adrianriobo/goax/pkg/os/darwin/ax/ax.go index cd63a6b..ed9e434 100644 --- a/vendor/github.com/adrianriobo/goax/pkg/os/darwin/ax/ax.go +++ b/vendor/github.com/adrianriobo/goax/pkg/os/darwin/ax/ax.go @@ -39,6 +39,12 @@ type AXElement struct { } func GetForegroundRootAXElement() (axAPI.OSAXElement, error) { + + isEnabled := appkit.CheckAccess() + if !isEnabled { + return nil, fmt.Errorf("accessibility is not enabled, please check in your system preferences") + } + // Get the pointer to the frontmost application appPointer := appkit.GetFrontmostApplication() // Create ax element to access the app and get its reference diff --git a/vendor/modules.txt b/vendor/modules.txt index 197c651..9bc82ad 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,4 +1,4 @@ -# github.com/adrianriobo/goax v0.0.0-20230623124707-4205191b0dab +# github.com/adrianriobo/goax v0.0.0-20230810112110-eb7e85f31a68 ## explicit; go 1.19 github.com/adrianriobo/goax/pkg/goax/app github.com/adrianriobo/goax/pkg/goax/app/api