diff --git a/webdev/lib/src/daemon/app_domain.dart b/webdev/lib/src/daemon/app_domain.dart index 20ece6a91..bcbc5153c 100644 --- a/webdev/lib/src/daemon/app_domain.dart +++ b/webdev/lib/src/daemon/app_domain.dart @@ -23,6 +23,7 @@ class AppDomain extends Domain { WebdevVmClient _webdevVmClient; DebugService _debugService; bool _isShutdown = false; + var _progressEventId = 0; void _initialize(ServerManager serverManager) async { var devHandler = serverManager.servers.first.devHandler; @@ -90,7 +91,20 @@ class AppDomain extends Domain { } // TODO(grouma) - Support pauseAfterRestart. // var pauseAfterRestart = getBoolArg(args, 'pause') ?? false; + _progressEventId++; + sendEvent('app.progress', { + 'appId': _appId, + 'id': '$_progressEventId', + 'message': 'Performing hot restart...', + 'progressId': 'hot.restart', + }); var response = await _vmService.callServiceExtension('hotRestart'); + sendEvent('app.progress', { + 'appId': _appId, + 'id': '$_progressEventId', + 'finished': true, + 'progressId': 'hot.restart', + }); return { 'code': response.type == 'Success' ? 0 : 1, 'message': response.toString() diff --git a/webdev/test/daemon/app_domain_test.dart b/webdev/test/daemon/app_domain_test.dart index 56bcd2a0a..72ba140fe 100644 --- a/webdev/test/daemon/app_domain_test.dart +++ b/webdev/test/daemon/app_domain_test.dart @@ -88,8 +88,16 @@ void main() { var extensionCall = '[{"method":"app.restart","id":0,' '"params" : { "appId" : "$appId", "fullRestart" : true}}]'; webdev.stdin.add(utf8.encode('$extensionCall\n')); - await expectLater(webdev.stdout, - emitsThrough(startsWith('[{"id":0,"result":{"code":0'))); + await expectLater( + webdev.stdout, + emitsThrough(emitsInOrder([ + startsWith( + '[{"event":"app.progress","params":{"appId":"$appId","id":"1",' + '"message":"Performing hot restart..."'), + startsWith( + '[{"event":"app.progress","params":{"appId":"$appId","id":"1",' + '"finished":true') + ]))); await exitWebdev(webdev); }); });