Implement VmService instead of adding extension methods
diff --git a/packages/flutter_tools/lib/src/commands/screenshot.dart b/packages/flutter_tools/lib/src/commands/screenshot.dart
index 937dfe2..8f7d4d1 100644
--- a/packages/flutter_tools/lib/src/commands/screenshot.dart
+++ b/packages/flutter_tools/lib/src/commands/screenshot.dart
@@ -130,7 +130,7 @@
Future<bool> runSkia(File outputFile) async {
final Uri observatoryUri = Uri.parse(stringArg(_kObservatoryUri));
- final vm_service.VmService vmService = await connectToVmService(observatoryUri);
+ final FlutterVmService vmService = await connectToVmService(observatoryUri);
final vm_service.Response skp = await vmService.screenshotSkp();
if (skp == null) {
globals.printError(
@@ -154,7 +154,7 @@
Future<bool> runRasterizer(File outputFile) async {
final Uri observatoryUri = Uri.parse(stringArg(_kObservatoryUri));
- final vm_service.VmService vmService = await connectToVmService(observatoryUri);
+ final FlutterVmService vmService = await connectToVmService(observatoryUri);
final vm_service.Response response = await vmService.screenshot();
if (response == null) {
globals.printError(
diff --git a/packages/flutter_tools/lib/src/devfs.dart b/packages/flutter_tools/lib/src/devfs.dart
index 5c6f98e..5988151 100644
--- a/packages/flutter_tools/lib/src/devfs.dart
+++ b/packages/flutter_tools/lib/src/devfs.dart
@@ -224,7 +224,7 @@
class _DevFSHttpWriter implements DevFSWriter {
_DevFSHttpWriter(
this.fsName,
- vm_service.VmService serviceProtocol, {
+ FlutterVmService serviceProtocol, {
@required OperatingSystemUtils osUtils,
@required HttpClient httpClient,
@required Logger logger,
@@ -370,7 +370,7 @@
///
/// Failed uploads are retried after [uploadRetryThrottle] duration, defaults to 500ms.
DevFS(
- vm_service.VmService serviceProtocol,
+ FlutterVmService serviceProtocol,
this.fsName,
this.rootDirectory, {
@required OperatingSystemUtils osUtils,
@@ -392,7 +392,7 @@
: context.get<HttpClientFactory>()())
);
- final vm_service.VmService _vmService;
+ final FlutterVmService _vmService;
final _DevFSHttpWriter _httpWriter;
final Logger _logger;
final FileSystem _fileSystem;
diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart
index cbbf9e5..6057796 100644
--- a/packages/flutter_tools/lib/src/device.dart
+++ b/packages/flutter_tools/lib/src/device.dart
@@ -7,7 +7,6 @@
import 'package:meta/meta.dart';
import 'package:process/process.dart';
-import 'package:vm_service/vm_service.dart' as vm_service;
import 'android/android_device_discovery.dart';
import 'android/android_sdk.dart';
@@ -43,6 +42,7 @@
import 'project.dart';
import 'tester/flutter_tester.dart';
import 'version.dart';
+import 'vmservice.dart';
import 'web/web_device.dart';
import 'windows/windows_device.dart';
import 'windows/windows_workflow.dart';
@@ -1028,7 +1028,7 @@
/// Some logs can be obtained from a VM service stream.
/// Set this after the VM services are connected.
- vm_service.VmService connectedVMService;
+ FlutterVmService connectedVMService;
@override
String toString() => name;
@@ -1058,7 +1058,7 @@
int appPid;
@override
- vm_service.VmService connectedVMService;
+ FlutterVmService connectedVMService;
@override
Stream<String> get logLines => const Stream<String>.empty();
diff --git a/packages/flutter_tools/lib/src/drive/drive_service.dart b/packages/flutter_tools/lib/src/drive/drive_service.dart
index b9f7bff..9607bbe 100644
--- a/packages/flutter_tools/lib/src/drive/drive_service.dart
+++ b/packages/flutter_tools/lib/src/drive/drive_service.dart
@@ -125,7 +125,7 @@
Device _device;
ApplicationPackage _applicationPackage;
String _vmServiceUri;
- vm_service.VmService _vmService;
+ FlutterVmService _vmService;
@override
Future<void> start(
diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
index 7824ebb..55f3fd8 100644
--- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
+++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
@@ -5,7 +5,6 @@
import 'dart:async';
import 'package:meta/meta.dart';
-import 'package:vm_service/vm_service.dart' as vm_service;
import '../application_package.dart';
import '../artifacts.dart';
@@ -48,7 +47,7 @@
final String _ipv6Loopback = InternetAddress.loopbackIPv6.address;
// Enables testing the fuchsia isolate discovery
-Future<vm_service.VmService> _kDefaultFuchsiaIsolateDiscoveryConnector(Uri uri) {
+Future<FlutterVmService> _kDefaultFuchsiaIsolateDiscoveryConnector(Uri uri) {
return connectToVmService(uri);
}
@@ -695,7 +694,7 @@
// netstat shows that the local port is actually being used on the IPv6
// loopback (::1).
final Uri uri = Uri.parse('http://[$_ipv6Loopback]:$port');
- final vm_service.VmService vmService = await connectToVmService(uri);
+ final FlutterVmService vmService = await connectToVmService(uri);
final List<FlutterView> flutterViews = await vmService.getFlutterViews();
for (final FlutterView flutterView in flutterViews) {
if (flutterView.uiIsolate == null) {
@@ -738,11 +737,11 @@
]);
static const Duration _pollDuration = Duration(seconds: 10);
- final Map<int, vm_service.VmService> _ports = <int, vm_service.VmService>{};
+ final Map<int, FlutterVmService> _ports = <int, FlutterVmService>{};
final FuchsiaDevice _device;
final String _isolateName;
final Completer<Uri> _foundUri = Completer<Uri>();
- final Future<vm_service.VmService> Function(Uri) _vmServiceConnector;
+ final Future<FlutterVmService> Function(Uri) _vmServiceConnector;
final Future<void> Function(Device, Uri, bool) _ddsStarter;
// whether to only poll once.
final bool _pollOnce;
@@ -778,7 +777,7 @@
Future<void> _findIsolate() async {
final List<int> ports = await _device.servicePorts();
for (final int port in ports) {
- vm_service.VmService service;
+ FlutterVmService service;
if (_ports.containsKey(port)) {
service = _ports[port];
} else {
diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart
index 720e61b..dfa40cc 100644
--- a/packages/flutter_tools/lib/src/ios/devices.dart
+++ b/packages/flutter_tools/lib/src/ios/devices.dart
@@ -658,18 +658,18 @@
Stream<String> get logLines => _linesController.stream;
@override
- vm_service.VmService get connectedVMService => _connectedVMService;
- vm_service.VmService _connectedVMService;
+ FlutterVmService get connectedVMService => _connectedVMService;
+ FlutterVmService _connectedVMService;
@override
- set connectedVMService(vm_service.VmService connectedVmService) {
+ set connectedVMService(FlutterVmService connectedVmService) {
_listenToUnifiedLoggingEvents(connectedVmService);
_connectedVMService = connectedVmService;
}
static const int minimumUniversalLoggingSdkVersion = 13;
- Future<void> _listenToUnifiedLoggingEvents(vm_service.VmService connectedVmService) async {
+ Future<void> _listenToUnifiedLoggingEvents(FlutterVmService connectedVmService) async {
if (_majorSdkVersion < minimumUniversalLoggingSdkVersion) {
return;
}
diff --git a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart
index 2e1d911..98ac44c 100644
--- a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart
+++ b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart
@@ -120,8 +120,10 @@
WipConnection _wipConnection;
ChromiumLauncher _chromiumLauncher;
- vmservice.VmService get _vmService =>
- _connectionResult?.debugConnection?.vmService;
+ FlutterVmService get _vmService => _flutterVmService ??= FlutterVmService.fromVmService(
+ _connectionResult?.debugConnection?.vmService,
+ );
+ FlutterVmService _flutterVmService;
@override
bool get canHotRestart {
@@ -812,7 +814,7 @@
_connectionResult.appConnection.runMain();
} else {
StreamSubscription<void> resumeSub;
- resumeSub = _connectionResult.debugConnection.vmService.onDebugEvent
+ resumeSub = _vmService.onDebugEvent
.listen((vmservice.Event event) {
if (event.type == vmservice.EventKind.kResume) {
_connectionResult.appConnection.runMain();
diff --git a/packages/flutter_tools/lib/src/resident_runner.dart b/packages/flutter_tools/lib/src/resident_runner.dart
index 005ac07..ca348a1 100644
--- a/packages/flutter_tools/lib/src/resident_runner.dart
+++ b/packages/flutter_tools/lib/src/resident_runner.dart
@@ -192,7 +192,7 @@
DevFSWriter devFSWriter;
Stream<Uri> observatoryUris;
- vm_service.VmService vmService;
+ FlutterVmService vmService;
DevFS devFS;
ApplicationPackage package;
List<String> fileSystemRoots;
@@ -234,7 +234,7 @@
globals.printTrace('Connecting to service protocol: $observatoryUri');
isWaitingForVm = true;
bool existingDds = false;
- vm_service.VmService service;
+ FlutterVmService service;
if (!disableDds) {
void handleError(Exception e, StackTrace st) {
globals.printTrace('Fail to connect to service protocol: $observatoryUri: $e');
@@ -300,7 +300,7 @@
if (!existingDds)
device.dds.done.whenComplete(() => throw Exception('DDS shut down too early')),
]
- ) as vm_service.VmService;
+ ) as FlutterVmService;
} on Exception catch (exception) {
globals.printTrace('Fail to connect to service protocol: $observatoryUri: $exception');
if (!completer.isCompleted && !_isListeningForObservatoryUri) {
@@ -366,12 +366,12 @@
stackTrace: stackTrace,
);
})
- .timeout(timeoutDelay, onTimeout: () {
+ .timeout(timeoutDelay, onTimeout: () async {
// TODO(jonahwilliams): this only seems to fail on CI in the
// flutter_attach_android_test. This log should help verify this
// is where the tool is getting stuck.
globals.logger.printTrace('error: vm service shutdown failed');
- return device.stopApp(package, userIdentifier: userIdentifier);
+ await device.stopApp(package, userIdentifier: userIdentifier);
});
}
@@ -1324,7 +1324,7 @@
}
Future<void> _callConnectedVmServiceExtension(FlutterDevice device) async {
- if (device.vmService.httpAddress != null || device.vmService.wsAddress != null) {
+ if (device.vmService?.httpAddress != null || device.vmService?.wsAddress != null) {
final Uri uri = device.vmService.httpAddress ?? device.vmService.wsAddress;
await waitForExtension(device.vmService, 'ext.flutter.connectedVmServiceUri');
try {
@@ -1455,7 +1455,7 @@
}
@visibleForTesting
-Future<void> waitForExtension(vm_service.VmService vmService, String extension) async {
+Future<void> waitForExtension(FlutterVmService vmService, String extension) async {
final Completer<void> completer = Completer<void>();
try {
await vmService.streamListen(vm_service.EventStreams.kExtension);
diff --git a/packages/flutter_tools/lib/src/run_hot.dart b/packages/flutter_tools/lib/src/run_hot.dart
index 5bc1af0..36461d8 100644
--- a/packages/flutter_tools/lib/src/run_hot.dart
+++ b/packages/flutter_tools/lib/src/run_hot.dart
@@ -832,7 +832,7 @@
await _evictDirtyAssets();
// Check if any isolates are paused and reassemble those that aren't.
- final Map<FlutterView, vm_service.VmService> reassembleViews = <FlutterView, vm_service.VmService>{};
+ final Map<FlutterView, FlutterVmService> reassembleViews = <FlutterView, FlutterVmService>{};
final List<Future<void>> reassembleFutures = <Future<void>>[];
String serviceEventKind;
int pausedIsolatesFound = 0;
diff --git a/packages/flutter_tools/lib/src/test/coverage_collector.dart b/packages/flutter_tools/lib/src/test/coverage_collector.dart
index c8beed6..1bd1612 100644
--- a/packages/flutter_tools/lib/src/test/coverage_collector.dart
+++ b/packages/flutter_tools/lib/src/test/coverage_collector.dart
@@ -192,7 +192,7 @@
Future<void> handleTestTimedOut(ProcessEvent event) async { }
}
-Future<vm_service.VmService> _defaultConnect(Uri serviceUri) {
+Future<FlutterVmService> _defaultConnect(Uri serviceUri) {
return connectToVmService(
serviceUri, compression: CompressionOptions.compressionOff);
}
@@ -200,16 +200,16 @@
Future<Map<String, dynamic>> collect(Uri serviceUri, bool Function(String) libraryPredicate, {
bool waitPaused = false,
String debugName,
- Future<vm_service.VmService> Function(Uri) connector = _defaultConnect,
+ Future<FlutterVmService> Function(Uri) connector = _defaultConnect,
}) async {
- final vm_service.VmService vmService = await connector(serviceUri);
+ final FlutterVmService vmService = await connector(serviceUri);
final Map<String, dynamic> result = await _getAllCoverage(
vmService, libraryPredicate);
vmService.dispose();
return result;
}
-Future<Map<String, dynamic>> _getAllCoverage(vm_service.VmService service, bool Function(String) libraryPredicate) async {
+Future<Map<String, dynamic>> _getAllCoverage(FlutterVmService service, bool Function(String) libraryPredicate) async {
final vm_service.VM vm = await service.getVM();
final List<Map<String, dynamic>> coverage = <Map<String, dynamic>>[];
for (final vm_service.IsolateRef isolateRef in vm.isolates) {
diff --git a/packages/flutter_tools/lib/src/test/flutter_platform.dart b/packages/flutter_tools/lib/src/test/flutter_platform.dart
index be3b216..a972620 100644
--- a/packages/flutter_tools/lib/src/test/flutter_platform.dart
+++ b/packages/flutter_tools/lib/src/test/flutter_platform.dart
@@ -10,7 +10,6 @@
import 'package:package_config/package_config.dart';
import 'package:stream_channel/stream_channel.dart';
import 'package:test_core/src/platform.dart'; // ignore: implementation_imports
-import 'package:vm_service/vm_service.dart' as vm_service;
import '../base/common.dart';
import '../base/file_system.dart';
@@ -501,9 +500,9 @@
}
{
globals.printTrace('Connecting to service protocol: $processObservatoryUri');
- final Future<vm_service.VmService> localVmService = connectToVmService(processObservatoryUri,
+ final Future<FlutterVmService> localVmService = connectToVmService(processObservatoryUri,
compileExpression: _compileExpressionService);
- unawaited(localVmService.then((vm_service.VmService vmservice) {
+ unawaited(localVmService.then((FlutterVmService vmservice) {
globals.printTrace('Successfully connected to service protocol: $processObservatoryUri');
}));
}
diff --git a/packages/flutter_tools/lib/src/tracing.dart b/packages/flutter_tools/lib/src/tracing.dart
index 9c6a64a..dcd661e 100644
--- a/packages/flutter_tools/lib/src/tracing.dart
+++ b/packages/flutter_tools/lib/src/tracing.dart
@@ -28,7 +28,7 @@
static const String firstUsefulFrameEventName = kFirstFrameRasterizedEventName;
- final vm_service.VmService vmService;
+ final FlutterVmService vmService;
final Logger _logger;
Future<void> startTracing() async {
@@ -91,7 +91,7 @@
/// Download the startup trace information from the given observatory client and
/// store it to build/start_up_info.json.
-Future<void> downloadStartupTrace(vm_service.VmService vmService, {
+Future<void> downloadStartupTrace(FlutterVmService vmService, {
bool awaitFirstFrame = true,
@required Logger logger,
@required Directory output,
diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart
index 9e45e55..1050a0a 100644
--- a/packages/flutter_tools/lib/src/vmservice.dart
+++ b/packages/flutter_tools/lib/src/vmservice.dart
@@ -144,7 +144,7 @@
/// Override `VMServiceConnector` in [context] to return a different VMService
/// from [VMService.connect] (used by tests).
-typedef VMServiceConnector = Future<vm_service.VmService> Function(Uri httpUri, {
+typedef VMServiceConnector = Future<FlutterVmService> Function(Uri httpUri, {
ReloadSources reloadSources,
Restart restart,
CompileExpression compileExpression,
@@ -154,33 +154,30 @@
Device device,
});
-final Expando<Uri> _httpAddressExpando = Expando<Uri>();
-final Expando<Uri> _wsAddressExpando = Expando<Uri>();
-
-void setHttpAddress(Uri uri, vm_service.VmService vmService) {
+void setHttpAddress(Uri uri, FlutterVmService vmService) {
if(vmService == null) {
return;
}
- _httpAddressExpando[vmService] = uri;
+ vmService._httpAddress = uri;
}
-void setWsAddress(Uri uri, vm_service.VmService vmService) {
+void setWsAddress(Uri uri, FlutterVmService vmService) {
if(vmService == null) {
return;
}
- _wsAddressExpando[vmService] = uri;
+ vmService._wsAddress = uri;
}
/// A connection to the Dart VM Service.
-vm_service.VmService setUpVmService(
+FlutterVmService setUpVmService(
ReloadSources reloadSources,
Restart restart,
CompileExpression compileExpression,
Device device,
GetSkSLMethod skSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
- vm_service.VmService vmService
+ FlutterVmService vmService
) {
if (reloadSources != null) {
vmService.registerServiceCallback('reloadSources', (Map<String, dynamic> params) async {
@@ -290,7 +287,7 @@
/// protocol itself.
///
/// See: https://github.com/dart-lang/sdk/commit/df8bf384eb815cf38450cb50a0f4b62230fba217
-Future<vm_service.VmService> connectToVmService(
+Future<FlutterVmService> connectToVmService(
Uri httpUri, {
ReloadSources reloadSources,
Restart restart,
@@ -312,7 +309,7 @@
);
}
-Future<vm_service.VmService> _connect(
+Future<FlutterVmService> _connect(
Uri httpUri, {
ReloadSources reloadSources,
Restart restart,
@@ -324,7 +321,7 @@
}) async {
final Uri wsUri = httpUri.replace(scheme: 'ws', path: globals.fs.path.join(httpUri.path, 'ws'));
final io.WebSocket channel = await _openChannel(wsUri.toString(), compression: compression);
- final vm_service.VmService delegateService = vm_service.VmService(
+ final FlutterVmService delegateService = FlutterVmService(
channel,
channel.add,
log: null,
@@ -333,7 +330,7 @@
},
);
- final vm_service.VmService service = setUpVmService(
+ final FlutterVmService service = setUpVmService(
reloadSources,
restart,
compileExpression,
@@ -342,8 +339,8 @@
printStructuredErrorLogMethod,
delegateService,
);
- _httpAddressExpando[service] = httpUri;
- _wsAddressExpando[service] = wsUri;
+ service._httpAddress = httpUri;
+ service._wsAddress = wsUri;
// This call is to ensure we are able to establish a connection instead of
// keeping on trucking and failing farther down the process.
@@ -412,10 +409,454 @@
}
/// Flutter specific VM Service functionality.
-extension FlutterVmService on vm_service.VmService {
- Uri get wsAddress => this != null ? _wsAddressExpando[this] : null;
+class FlutterVmService implements vm_service.VmService {
- Uri get httpAddress => this != null ? _httpAddressExpando[this] : null;
+ FlutterVmService(
+ Stream<dynamic> /*String|List<int>*/ inStream,
+ void writeMessage(String message), {
+ vm_service.Log log,
+ vm_service.DisposeHandler disposeHandler,
+ Future<void> streamClosed,
+ }) : _delegate = vm_service.VmService(
+ inStream,
+ writeMessage,
+ log: log,
+ disposeHandler: disposeHandler,
+ streamClosed: streamClosed,
+ );
+
+ FlutterVmService.fromVmService(vm_service.VmService delegate) :
+ _delegate = delegate;
+
+ final vm_service.VmService _delegate;
+
+ Uri _wsAddress;
+ Uri _httpAddress;
+
+ Uri get wsAddress => _wsAddress;
+
+ Uri get httpAddress => _httpAddress;
+
+ @override
+ Stream<vm_service.Event> onEvent(String streamId) => _delegate.onEvent(streamId);
+
+ @override
+ Stream<vm_service.Event> get onVMEvent => _delegate.onVMEvent;
+
+ @override
+ Stream<vm_service.Event> get onIsolateEvent => _delegate.onIsolateEvent;
+
+ @override
+ Stream<vm_service.Event> get onDebugEvent => _delegate.onDebugEvent;
+
+ @override
+ Stream<vm_service.Event> get onGCEvent => _delegate.onGCEvent;
+
+ @override
+ Stream<vm_service.Event> get onExtensionEvent => _delegate.onExtensionEvent;
+
+ @override
+ Stream<vm_service.Event> get onTimelineEvent => _delegate.onTimelineEvent;
+
+ @override
+ Stream<vm_service.Event> get onLoggingEvent => _delegate.onLoggingEvent;
+
+ @override
+ Stream<vm_service.Event> get onServiceEvent => _delegate.onServiceEvent;
+
+ @override
+ Stream<vm_service.Event> get onHeapSnapshotEvent => _delegate.onHeapSnapshotEvent;
+
+ @override
+ Stream<vm_service.Event> get onStdoutEvent => _delegate.onStdoutEvent;
+
+ @override
+ Stream<vm_service.Event> get onStderrEvent => _delegate.onStderrEvent;
+
+ @override
+ Future<vm_service.Breakpoint> addBreakpoint(
+ String isolateId,
+ String scriptId,
+ int line, {
+ int column,
+ }) => _delegate.addBreakpoint(isolateId, scriptId, line, column: column);
+
+ @override
+ Future<vm_service.Breakpoint> addBreakpointWithScriptUri(
+ String isolateId,
+ String scriptUri,
+ int line, {
+ int column,
+ }) => _delegate.addBreakpointWithScriptUri(
+ isolateId,
+ scriptUri,
+ line,
+ column: column,
+ );
+
+ @override
+ Future<vm_service.Breakpoint> addBreakpointAtEntry(
+ String isolateId,
+ String functionId,
+ ) => _delegate.addBreakpointAtEntry(isolateId, functionId);
+
+ @override
+ Future<vm_service.Success> clearCpuSamples(String isolateId) =>
+ _delegate.clearCpuSamples(isolateId);
+
+ @override
+ Future<vm_service.Success> clearVMTimeline() => _delegate.clearVMTimeline();
+
+ @override
+ Future<vm_service.Response> invoke(
+ String isolateId,
+ String targetId,
+ String selector,
+ List<String> argumentIds, {
+ bool disableBreakpoints,
+ }) => _delegate.invoke(
+ isolateId,
+ targetId,
+ selector,
+ argumentIds,
+ disableBreakpoints: disableBreakpoints,
+ );
+
+ @override
+ Future<vm_service.Response> evaluate(
+ String isolateId,
+ String targetId,
+ String expression, {
+ Map<String, String> scope,
+ bool disableBreakpoints,
+ }) => _delegate.evaluate(
+ isolateId,
+ targetId,
+ expression,
+ scope: scope,
+ disableBreakpoints: disableBreakpoints,
+ );
+
+ @override
+ Future<vm_service.Response> evaluateInFrame(
+ String isolateId,
+ int frameIndex,
+ String expression, {
+ Map<String, String> scope,
+ bool disableBreakpoints,
+ }) => _delegate.evaluateInFrame(
+ isolateId,
+ frameIndex,
+ expression,
+ scope: scope,
+ disableBreakpoints: disableBreakpoints,
+ );
+
+ @override
+ Future<vm_service.AllocationProfile> getAllocationProfile(
+ String isolateId, {
+ bool reset,
+ bool gc,
+ }) => _delegate.getAllocationProfile(
+ isolateId,
+ reset: reset,
+ gc: gc,
+ );
+
+ @override
+ Future<vm_service.ClassList> getClassList(String isolateId) =>
+ _delegate.getClassList(
+ isolateId,
+ );
+
+ @override
+ Future<vm_service.CpuSamples> getCpuSamples(
+ String isolateId,
+ int timeOriginMicros,
+ int timeExtentMicros,
+ ) => _delegate.getCpuSamples(
+ isolateId,
+ timeOriginMicros,
+ timeExtentMicros,
+ );
+
+ @override
+ Future<vm_service.FlagList> getFlagList() => _delegate.getFlagList();
+
+ @override
+ Future<vm_service.InboundReferences> getInboundReferences(
+ String isolateId,
+ String targetId,
+ int limit,
+ ) => _delegate.getInboundReferences(
+ isolateId,
+ targetId,
+ limit,
+ );
+
+
+ @override
+ Future<vm_service.InstanceSet> getInstances(
+ String isolateId,
+ String objectId,
+ int limit,
+ ) => _delegate.getInstances(
+ isolateId,
+ objectId,
+ limit,
+ );
+
+ @override
+ Future<vm_service.Isolate> getIsolate(
+ String isolateId,
+ ) => _delegate.getIsolate(
+ isolateId,
+ );
+
+ @override
+ Future<vm_service.IsolateGroup> getIsolateGroup(
+ String isolateGroupId,
+ ) => _delegate.getIsolateGroup(
+ isolateGroupId,
+ );
+
+ @override
+ Future<vm_service.MemoryUsage> getMemoryUsage(
+ String isolateId,
+ ) => _delegate.getMemoryUsage(
+ isolateId,
+ );
+
+ @override
+ Future<vm_service.MemoryUsage> getIsolateGroupMemoryUsage(
+ String isolateGroupId,
+ ) => _delegate.getIsolateGroupMemoryUsage(
+ isolateGroupId,
+ );
+
+ @override
+ Future<vm_service.ScriptList> getScripts(
+ String isolateId,
+ ) => _delegate.getScripts(isolateId);
+
+ @override
+ Future<vm_service.Obj> getObject(
+ String isolateId,
+ String objectId, {
+ int offset,
+ int count,
+ }) => _delegate.getObject(
+ isolateId,
+ objectId,
+ offset: offset,
+ count: count,
+ );
+
+ @override
+ Future<vm_service.PortList> getPorts(
+ String isolateId,
+ ) => _delegate.getPorts(
+ isolateId,
+ );
+
+ @override
+ Future<vm_service.RetainingPath> getRetainingPath(
+ String isolateId,
+ String targetId,
+ int limit,
+ ) => _delegate.getRetainingPath(
+ isolateId,
+ targetId,
+ limit,
+ );
+
+ @override
+ Future<vm_service.ProcessMemoryUsage> getProcessMemoryUsage() =>
+ _delegate.getProcessMemoryUsage();
+
+ @override
+ Future<vm_service.Stack> getStack(
+ String isolateId, {
+ int limit,
+ }) => _delegate.getStack(
+ isolateId,
+ limit: limit,
+ );
+
+ @override
+ Future<vm_service.ProtocolList> getSupportedProtocols() =>
+ _delegate.getSupportedProtocols();
+
+ @override
+ Future<vm_service.SourceReport> getSourceReport(
+ String isolateId,
+ /*List<SourceReportKind>*/
+ List<String> reports, {
+ String scriptId,
+ int tokenPos,
+ int endTokenPos,
+ bool forceCompile,
+ }) => _delegate.getSourceReport(
+ isolateId,
+ reports,
+ scriptId: scriptId,
+ tokenPos: tokenPos,
+ endTokenPos: endTokenPos,
+ forceCompile: forceCompile,
+ );
+
+ @override
+ Future<vm_service.Version> getVersion() => _delegate.getVersion();
+
+ @override
+ Future<vm_service.VM> getVM() => _delegate.getVM();
+
+ @override
+ Future<vm_service.Timeline> getVMTimeline({
+ int timeOriginMicros,
+ int timeExtentMicros,
+ }) => _delegate.getVMTimeline(
+ timeOriginMicros: timeOriginMicros,
+ timeExtentMicros: timeExtentMicros,
+ );
+
+ @override
+ Future<vm_service.TimelineFlags> getVMTimelineFlags() => _delegate.getVMTimelineFlags();
+
+ @override
+ Future<vm_service.Timestamp> getVMTimelineMicros() => _delegate.getVMTimelineMicros();
+
+ @override
+ Future<vm_service.Success> pause(String isolateId) => _delegate.pause(isolateId);
+
+ @override
+ Future<vm_service.Success> kill(String isolateId) => _delegate.kill(isolateId);
+
+ @override
+ Future<vm_service.Success> registerService(String service, String alias) =>
+ _delegate.registerService(service, alias);
+
+ @override
+ Future<vm_service.ReloadReport> reloadSources(
+ String isolateId, {
+ bool force,
+ bool pause,
+ String rootLibUri,
+ String packagesUri,
+ }) => _delegate.reloadSources(
+ isolateId,
+ force: force,
+ pause: pause,
+ rootLibUri: rootLibUri,
+ packagesUri: packagesUri,
+ );
+
+ @override
+ Future<vm_service.Success> removeBreakpoint(String isolateId, String breakpointId) =>
+ _delegate.removeBreakpoint(isolateId, breakpointId);
+
+ @override
+ Future<vm_service.Success> requestHeapSnapshot(String isolateId) =>
+ _delegate.requestHeapSnapshot(isolateId);
+
+ @override
+ Future<vm_service.Success> resume(
+ String isolateId, {
+ /*StepOption*/ String step,
+ int frameIndex,
+ }) => _delegate.resume(
+ isolateId,
+ step: step,
+ frameIndex: frameIndex,
+ );
+
+ @override
+ Future<vm_service.Success> setExceptionPauseMode(
+ String isolateId,
+ /*ExceptionPauseMode*/ String mode,
+ ) => _delegate.setExceptionPauseMode(
+ isolateId,
+ mode,
+ );
+
+ @override
+ Future<vm_service.Response> setFlag(String name, String value) =>
+ _delegate.setFlag(name, value);
+
+ @override
+ Future<vm_service.Success> setLibraryDebuggable(
+ String isolateId,
+ String libraryId,
+ bool isDebuggable,
+ ) => _delegate.setLibraryDebuggable(
+ isolateId,
+ libraryId,
+ isDebuggable,
+ );
+
+ @override
+ Future<vm_service.Success> setName(String isolateId, String name) =>
+ _delegate.setName(isolateId, name);
+
+ @override
+ Future<vm_service.Success> setVMName(String name) => _delegate.setVMName(name);
+
+ @override
+ Future<vm_service.Success> setVMTimelineFlags(List<String> recordedStreams) =>
+ _delegate.setVMTimelineFlags(recordedStreams);
+
+ @override
+ Future<vm_service.Success> streamCancel(String streamId) =>
+ _delegate.streamCancel(streamId);
+
+ @override
+ Future<vm_service.Success> streamListen(String streamId) =>
+ _delegate.streamListen(streamId);
+
+ @override
+ Future<vm_service.Response> callMethod(
+ String method, {
+ String isolateId,
+ Map<dynamic, dynamic> args,
+ }) => _delegate.callMethod(
+ method,
+ isolateId: isolateId,
+ args: args,
+ );
+
+ /// Invoke a specific service protocol extension method.
+ ///
+ /// See https://api.dart.dev/stable/dart-developer/dart-developer-library.html.
+ @override
+ Future<vm_service.Response> callServiceExtension(
+ String method, {
+ String isolateId,
+ Map<dynamic, dynamic> args,
+ }) => _delegate.callServiceExtension(
+ method,
+ isolateId: isolateId,
+ args: args,
+ );
+
+ @override
+ Stream<String> get onSend => _delegate.onSend;
+
+ @override
+ Stream<String> get onReceive => _delegate.onReceive;
+
+ @override
+ void dispose() => _delegate.dispose();
+
+ @override
+ Future<void> get onDone => _delegate.onDone;
+
+ @override
+ void registerServiceCallback(String service, vm_service.ServiceCallback cb) =>
+ _delegate.registerServiceCallback(service, cb);
+
+
+ // Flutter specific methods follow.
+
Future<vm_service.Response> callMethodWrapper(
String method, {
diff --git a/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart b/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart
index 24265fb..e15cda7 100644
--- a/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart
+++ b/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart
@@ -362,7 +362,7 @@
FlutterDriverService setUpDriverService({
Logger logger,
ProcessManager processManager,
- vm_service.VmService vmService,
+ FlutterVmService vmService,
}) {
logger ??= BufferLogger.test();
return FlutterDriverService(
diff --git a/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart
index f866c85..cb7c7d6 100644
--- a/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart
+++ b/packages/flutter_tools/test/general.shard/ios/ios_device_logger_test.dart
@@ -12,6 +12,7 @@
import 'package:flutter_tools/src/ios/devices.dart';
import 'package:flutter_tools/src/ios/ios_deploy.dart';
import 'package:flutter_tools/src/ios/mac.dart';
+import 'package:flutter_tools/src/vmservice.dart';
import 'package:mockito/mockito.dart';
import 'package:vm_service/vm_service.dart';
@@ -325,5 +326,5 @@
});
}
-class MockVmService extends Mock implements VmService {}
+class MockVmService extends Mock implements FlutterVmService {}
class MockIOSDeployDebugger extends Mock implements IOSDeployDebugger {}
diff --git a/packages/flutter_tools/test/general.shard/resident_runner_test.dart b/packages/flutter_tools/test/general.shard/resident_runner_test.dart
index 85fb96c..8ff03fb 100644
--- a/packages/flutter_tools/test/general.shard/resident_runner_test.dart
+++ b/packages/flutter_tools/test/general.shard/resident_runner_test.dart
@@ -3126,7 +3126,7 @@
class MockFlutterDevice extends Mock implements FlutterDevice {}
class MockDartDevelopmentService extends Mock implements DartDevelopmentService {}
-class MockVMService extends Mock implements vm_service.VmService {}
+class MockVMService extends Mock implements FlutterVmService {}
class MockDevFS extends Mock implements DevFS {}
class MockDevice extends Mock implements Device {}
class MockDeviceLogReader extends Mock implements DeviceLogReader {}
diff --git a/packages/flutter_tools/test/general.shard/vmservice_test.dart b/packages/flutter_tools/test/general.shard/vmservice_test.dart
index 2edce09..70de59e 100644
--- a/packages/flutter_tools/test/general.shard/vmservice_test.dart
+++ b/packages/flutter_tools/test/general.shard/vmservice_test.dart
@@ -218,7 +218,7 @@
testWithoutContext('setAssetDirectory forwards arguments correctly', () async {
final Completer<String> completer = Completer<String>();
- final vm_service.VmService vmService = vm_service.VmService(
+ final FlutterVmService vmService = FlutterVmService(
const Stream<String>.empty(),
completer.complete,
);
@@ -243,7 +243,7 @@
testWithoutContext('getSkSLs forwards arguments correctly', () async {
final Completer<String> completer = Completer<String>();
- final vm_service.VmService vmService = vm_service.VmService(
+ final FlutterVmService vmService = FlutterVmService(
const Stream<String>.empty(),
completer.complete,
);
@@ -264,7 +264,7 @@
testWithoutContext('flushUIThreadTasks forwards arguments correctly', () async {
final Completer<String> completer = Completer<String>();
- final vm_service.VmService vmService = vm_service.VmService(
+ final FlutterVmService vmService = FlutterVmService(
const Stream<String>.empty(),
completer.complete,
);
@@ -447,13 +447,6 @@
expect(fakeVmServiceHost.hasRemainingExpectations, false);
});
- testWithoutContext('expandos are null safe', () {
- vm_service.VmService vmService;
-
- expect(vmService.httpAddress, null);
- expect(vmService.wsAddress, null);
- });
-
testWithoutContext('Can process log events from the vm service', () {
final vm_service.Event event = vm_service.Event(
bytes: base64.encode(utf8.encode('Hello There\n')),
@@ -466,7 +459,7 @@
}
class MockDevice extends Mock implements Device {}
-class MockVMService extends Mock implements vm_service.VmService {}
+class MockVMService extends Mock implements FlutterVmService {}
class MockFlutterVersion extends Mock implements FlutterVersion {
@override
Map<String, Object> toJson() => const <String, Object>{'Mock': 'Version'};
diff --git a/packages/flutter_tools/test/src/common.dart b/packages/flutter_tools/test/src/common.dart
index 53a8419..f36b4b7 100644
--- a/packages/flutter_tools/test/src/common.dart
+++ b/packages/flutter_tools/test/src/common.dart
@@ -23,6 +23,7 @@
import 'package:flutter_tools/src/runner/flutter_command.dart';
import 'package:flutter_tools/src/runner/flutter_command_runner.dart';
import 'package:flutter_tools/src/globals.dart' as globals;
+import 'package:flutter_tools/src/vmservice.dart';
import 'package:meta/meta.dart';
import 'package:fake_async/fake_async.dart';
import 'package:test_api/test_api.dart' as test_package show TypeMatcher, test; // ignore: deprecated_member_use
@@ -285,7 +286,7 @@
FakeVmServiceHost({
@required List<VmServiceExpectation> requests,
}) : _requests = requests {
- _vmService = vm_service.VmService(
+ _vmService = FlutterVmService(
_input.stream,
_output.add,
);
@@ -328,8 +329,8 @@
final StreamController<String> _input = StreamController<String>();
final StreamController<String> _output = StreamController<String>();
- vm_service.VmService get vmService => _vmService;
- vm_service.VmService _vmService;
+ FlutterVmService get vmService => _vmService;
+ FlutterVmService _vmService;
bool get hasRemainingExpectations => _requests.isNotEmpty;