Register flutterVersion service in flutter_tools. (#39524) * Register getFlutterVersion service in flutter_tools. * Add short revision ids to response. * Rename method and remove obsolete comments. * Fix broken test by adding sendPeerNotifications flag. * Implement mockPeer.sendNotification.
diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart index a3de239..03a8ef3 100644 --- a/packages/flutter_tools/lib/src/vmservice.dart +++ b/packages/flutter_tools/lib/src/vmservice.dart
@@ -20,6 +20,7 @@ import 'base/utils.dart'; import 'convert.dart' show base64; import 'globals.dart'; +import 'version.dart'; import 'vmservice_record_replay.dart'; /// Override `WebSocketConnector` in [context] to use a different constructor @@ -138,8 +139,6 @@ } }); - // If the Flutter Engine doesn't support service registration this will - // have no effect _peer.sendNotification('registerService', <String, String>{ 'service': 'reloadSources', 'alias': 'Flutter Tools', @@ -164,14 +163,25 @@ } }); - // If the Flutter Engine doesn't support service registration this will - // have no effect _peer.sendNotification('registerService', <String, String>{ 'service': 'hotRestart', 'alias': 'Flutter Tools', }); } + _peer.registerMethod('flutterVersion', (rpc.Parameters params) async { + final FlutterVersion version = FlutterVersion(); + final Map<String, Object> versionJson = version.toJson(); + versionJson['frameworkRevisionShort'] = version.frameworkRevisionShort; + versionJson['engineRevisionShort'] = version.engineRevisionShort; + return versionJson; + }); + + _peer.sendNotification('registerService', <String, String>{ + 'service': 'flutterVersion', + 'alias': 'Flutter Tools', + }); + if (compileExpression != null) { _peer.registerMethod('compileExpression', (rpc.Parameters params) async { final String isolateId = params['isolateId'].asString;