Skip to content

Commit 6e2488e

Browse files
author
GitLab CI
committed
fix: add 15s timeout to native_tap/input/swipe to prevent hangs
macOS Accessibility API calls via osascript can hang indefinitely when permissions are missing. Now returns clear error after 15s.
1 parent 81c9ef4 commit 6e2488e

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

lib/src/cli/server.dart

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3058,7 +3058,10 @@ Detailed diagnostic report with:
30583058

30593059
final x = (args['x'] as num).toDouble();
30603060
final y = (args['y'] as num).toDouble();
3061-
final result = await driver.tap(x, y);
3061+
final result = await driver.tap(x, y).timeout(
3062+
const Duration(seconds: 15),
3063+
onTimeout: () => NativeResult(success: false, message: 'native_tap timed out (15s) — check macOS Accessibility permissions'),
3064+
);
30623065
return result.toJson();
30633066
}
30643067

@@ -3074,7 +3077,10 @@ Detailed diagnostic report with:
30743077
};
30753078
}
30763079
final text = args['text'] as String;
3077-
final result = await driver.inputText(text);
3080+
final result = await driver.inputText(text).timeout(
3081+
const Duration(seconds: 15),
3082+
onTimeout: () => NativeResult(success: false, message: 'native_input_text timed out (15s) — check macOS Accessibility permissions'),
3083+
);
30783084
return result.toJson();
30793085
}
30803086

@@ -3095,7 +3101,10 @@ Detailed diagnostic report with:
30953101
final endY = (args['end_y'] as num).toDouble();
30963102
final duration = args['duration'] as int? ?? 300;
30973103
final result =
3098-
await driver.swipe(startX, startY, endX, endY, durationMs: duration);
3104+
await driver.swipe(startX, startY, endX, endY, durationMs: duration).timeout(
3105+
const Duration(seconds: 15),
3106+
onTimeout: () => NativeResult(success: false, message: 'native_swipe timed out (15s) — check macOS Accessibility permissions'),
3107+
);
30993108
return result.toJson();
31003109
}
31013110

0 commit comments

Comments
 (0)