feat: expose app accessibility status api (#16119)

* feat: expose app accessibility status api

* fix prompt
This commit is contained in:
Shelley Vohr 2018-12-18 09:15:22 -07:00 committed by John Kleinschmidt
parent dc93d94bc8
commit a58d989b60
4 changed files with 15 additions and 0 deletions

View file

@ -89,6 +89,8 @@ void SystemPreferences::BuildPrototype(
&SystemPreferences::GetAppLevelAppearance) &SystemPreferences::GetAppLevelAppearance)
.SetMethod("setAppLevelAppearance", .SetMethod("setAppLevelAppearance",
&SystemPreferences::SetAppLevelAppearance) &SystemPreferences::SetAppLevelAppearance)
.SetMethod("isTrustedAccessibilityClient",
&SystemPreferences::IsTrustedAccessibilityClient)
.SetMethod("getMediaAccessStatus", .SetMethod("getMediaAccessStatus",
&SystemPreferences::GetMediaAccessStatus) &SystemPreferences::GetMediaAccessStatus)
.SetMethod("askForMediaAccess", &SystemPreferences::AskForMediaAccess) .SetMethod("askForMediaAccess", &SystemPreferences::AskForMediaAccess)

View file

@ -92,6 +92,8 @@ class SystemPreferences : public mate::EventEmitter<SystemPreferences>
void RemoveUserDefault(const std::string& name); void RemoveUserDefault(const std::string& name);
bool IsSwipeTrackingFromScrollEventsEnabled(); bool IsSwipeTrackingFromScrollEventsEnabled();
bool IsTrustedAccessibilityClient(bool prompt);
// TODO(codebytere): Write tests for these methods once we // TODO(codebytere): Write tests for these methods once we
// are running tests on a Mojave machine // are running tests on a Mojave machine
std::string GetMediaAccessStatus(const std::string& media_type, std::string GetMediaAccessStatus(const std::string& media_type,

View file

@ -378,6 +378,11 @@ void SystemPreferences::SetUserDefault(const std::string& name,
} }
} }
bool SystemPreferences::IsTrustedAccessibilityClient(bool prompt) {
NSDictionary* options = @{(id)kAXTrustedCheckOptionPrompt : @(prompt)};
return AXIsProcessTrustedWithOptions((CFDictionaryRef)options);
}
std::string SystemPreferences::GetMediaAccessStatus( std::string SystemPreferences::GetMediaAccessStatus(
const std::string& media_type, const std::string& media_type,
mate::Arguments* args) { mate::Arguments* args) {

View file

@ -327,6 +327,12 @@ You can use the `setAppLevelAppearance` API to set this value.
Sets the appearance setting for your application, this should override the Sets the appearance setting for your application, this should override the
system default and override the value of `getEffectiveAppearance`. system default and override the value of `getEffectiveAppearance`.
### `systemPreferences.isTrustedAccessibilityClient(prompt)` _macOS_
* `prompt` Boolean - whether or not the user will be informed via prompt if the current process is untrusted.
Returns `Boolean` - `true` if the current process is a trusted accessibility client and `false` if it is not.
### `systemPreferences.getMediaAccessStatus(mediaType)` _macOS_ ### `systemPreferences.getMediaAccessStatus(mediaType)` _macOS_
* `mediaType` String - `microphone` or `camera`. * `mediaType` String - `microphone` or `camera`.