diff --git a/flutter/lib/web/bridge.dart b/flutter/lib/web/bridge.dart index 9238d054a..d38f0f9cf 100644 --- a/flutter/lib/web/bridge.dart +++ b/flutter/lib/web/bridge.dart @@ -1210,11 +1210,18 @@ class RustdeskImpl { Future mainLoadAb({dynamic hint}) { Completer completer = Completer(); + Future timeoutFuture = completer.future.timeout( + Duration(seconds: 2), + onTimeout: () { + completer.completeError(TimeoutException('Load ab timed out')); + return 'Timeout'; + }, + ); js.context["onLoadAbFinished"] = (String s) { completer.complete(s); }; js.context.callMethod('setByName', ['load_ab']); - return completer.future; + return timeoutFuture; } Future mainSaveGroup({required String json, dynamic hint}) { @@ -1228,11 +1235,18 @@ class RustdeskImpl { Future mainLoadGroup({dynamic hint}) { Completer completer = Completer(); + Future timeoutFuture = completer.future.timeout( + Duration(seconds: 2), + onTimeout: () { + completer.completeError(TimeoutException('Load group timed out')); + return 'Timeout'; + }, + ); js.context["onLoadGroupFinished"] = (String s) { completer.complete(s); }; js.context.callMethod('setByName', ['load_group']); - return completer.future; + return timeoutFuture; } Future sessionSendPointer(