Commit f900200d authored by Alexander Surkov's avatar Alexander Surkov Committed by Commit Bot

Port ax_dump_tree tool on mac: implement application filtering by

pattern

Implement basic application pattern support which allows to indicate
which app to dump by its name. For example, --pattern=Safari or
--pattern="Sublime Text" will dump accessible tree for Safari or
Sublime Text applications accordingly.

Bug: 1124366
Change-Id: Ie2ee3868968d9f369aa208cc546af27ee1c6770f
AX-Relnotes: n/a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2404361Reviewed-by: default avatarDominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: Alexander Surkov <asurkov@igalia.com>
Cr-Commit-Position: refs/heads/master@{#807530}
parent 0f2062cb
...@@ -170,7 +170,19 @@ AccessibilityTreeFormatterMac::BuildAccessibilityTreeForWindow( ...@@ -170,7 +170,19 @@ AccessibilityTreeFormatterMac::BuildAccessibilityTreeForWindow(
std::unique_ptr<base::DictionaryValue> std::unique_ptr<base::DictionaryValue>
AccessibilityTreeFormatterMac::BuildAccessibilityTreeForPattern( AccessibilityTreeFormatterMac::BuildAccessibilityTreeForPattern(
const base::StringPiece& pattern) { const base::StringPiece& pattern) {
NOTREACHED(); NSArray* windows = (NSArray*)CGWindowListCopyWindowInfo(
kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements,
kCGNullWindowID);
for (NSDictionary* window_info in windows) {
NSString* window_name =
(NSString*)[window_info objectForKey:@"kCGWindowOwnerName"];
if (SysNSStringToUTF8(window_name) == pattern) {
NSNumber* pid =
(NSNumber*)[window_info objectForKey:@"kCGWindowOwnerPID"];
return BuildAccessibilityTreeForWindow([pid intValue]);
}
}
return nullptr; return nullptr;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment