mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Send an event at startup with the protocol version and pid (#17873)
* Send an event at startup with the protocol version and pid The pid will help with some of the issues of terminate the process when launched through a shell script and the version will allow clients to make decisions about supported features. I've also bumped the protocol version number for two reasons: 1. This change 2. We didn't increase it when we added the previous emulator commands
This commit is contained in:
parent
514701fe46
commit
24e2b238d4
@ -28,7 +28,7 @@ import '../runner/flutter_command.dart';
|
||||
import '../tester/flutter_tester.dart';
|
||||
import '../vmservice.dart';
|
||||
|
||||
const String protocolVersion = '0.2.0';
|
||||
const String protocolVersion = '0.3.0';
|
||||
|
||||
/// A server process command. This command will start up a long-lived server.
|
||||
/// It reads JSON-RPC based commands from stdin, executes them, and returns
|
||||
@ -242,6 +242,14 @@ class DaemonDomain extends Domain {
|
||||
registerHandler('version', version);
|
||||
registerHandler('shutdown', shutdown);
|
||||
|
||||
sendEvent(
|
||||
'daemon.connected',
|
||||
<String, dynamic>{
|
||||
'version': protocolVersion,
|
||||
'pid': pid,
|
||||
},
|
||||
);
|
||||
|
||||
_subscription = daemon.notifyingLogger.onMessage.listen((LogMessage message) {
|
||||
if (daemon.logToStdout) {
|
||||
if (message.level == 'status') {
|
||||
|
||||
@ -209,7 +209,8 @@ void main() {
|
||||
notifyingLogger: notifyingLogger,
|
||||
);
|
||||
|
||||
final Map<String, dynamic> response = await responses.stream.first;
|
||||
final Map<String, dynamic> response =
|
||||
await responses.stream.skipWhile(_isConnectedEvent).first;
|
||||
expect(response['event'], 'daemon.showMessage');
|
||||
expect(response['params'], isMap);
|
||||
expect(response['params'], containsPair('level', 'warning'));
|
||||
@ -249,7 +250,7 @@ void main() {
|
||||
daemon.deviceDomain.addDeviceDiscoverer(discoverer);
|
||||
discoverer.addDevice(new MockAndroidDevice());
|
||||
|
||||
return responses.stream.first.then((Map<String, dynamic> response) {
|
||||
return responses.stream.skipWhile(_isConnectedEvent).first.then((Map<String, dynamic> response) {
|
||||
expect(response['event'], 'device.added');
|
||||
expect(response['params'], isMap);
|
||||
|
||||
@ -322,6 +323,8 @@ void main() {
|
||||
|
||||
bool _notEvent(Map<String, dynamic> map) => map['event'] == null;
|
||||
|
||||
bool _isConnectedEvent(Map<String, dynamic> map) => map['event'] == 'daemon.connected';
|
||||
|
||||
class MockAndroidWorkflow extends AndroidWorkflow {
|
||||
MockAndroidWorkflow({ this.canListDevices: true });
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user