Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "Add support for Dart Development Service (DDS) in Flutter Tools" #61276

Merged
merged 1 commit into from Jul 10, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 0 additions & 4 deletions dev/tracing_tests/test/image_painting_event_test.dart
Expand Up @@ -38,10 +38,6 @@ void main() {
await binding.endOfFrame;
});

tearDownAll(() {
vmService.dispose();
});

test('Image painting events - deduplicates across frames', () async {
final Completer<Event> completer = Completer<Event>();
vmService.onExtensionEvent.first.then(completer.complete);
Expand Down
49 changes: 0 additions & 49 deletions packages/flutter_tools/lib/src/base/dds.dart

This file was deleted.

3 changes: 1 addition & 2 deletions packages/flutter_tools/lib/src/commands/attach.dart
Expand Up @@ -100,7 +100,6 @@ class AttachCommand extends FlutterCommand {
'and progress in machine friendly format.',
);
usesTrackWidgetCreation(verboseHelp: verboseHelp);
addDdsOptions(verboseHelp: verboseHelp);
hotRunnerFactory ??= HotRunnerFactory();
}

Expand Down Expand Up @@ -373,7 +372,7 @@ class AttachCommand extends FlutterCommand {
);
flutterDevice.observatoryUris = observatoryUris;
final List<FlutterDevice> flutterDevices = <FlutterDevice>[flutterDevice];
final DebuggingOptions debuggingOptions = DebuggingOptions.enabled(getBuildInfo(), disableDds: boolArg('disable-dds'));
final DebuggingOptions debuggingOptions = DebuggingOptions.enabled(getBuildInfo());

return getBuildInfo().isDebug
? hotRunnerFactory.build(
Expand Down
4 changes: 0 additions & 4 deletions packages/flutter_tools/lib/src/commands/drive.dart
Expand Up @@ -244,10 +244,6 @@ class DriveCommand extends RunCommandBase {
throwToolExit('Application failed to start. Will not run test. Quitting.', exitCode: 1);
}
observatoryUri = result.observatoryUri.toString();
// TODO(bkonyi): add web support (https://github.com/flutter/flutter/issues/61259)
if (!isWebPlatform) {
await device.dds.startDartDevelopmentService(Uri.parse(observatoryUri), ipv6);
}
} else {
globals.printStatus('Will connect to already running application instance.');
observatoryUri = stringArg('use-existing-app');
Expand Down
2 changes: 0 additions & 2 deletions packages/flutter_tools/lib/src/commands/run.dart
Expand Up @@ -218,7 +218,6 @@ class RunCommand extends RunCommandBase {
'Currently this is only supported on Android devices. This option '
'cannot be paired with --use-application-binary.'
);
addDdsOptions(verboseHelp: verboseHelp);
}

@override
Expand Down Expand Up @@ -384,7 +383,6 @@ class RunCommand extends RunCommandBase {
buildInfo,
startPaused: boolArg('start-paused'),
disableServiceAuthCodes: boolArg('disable-service-auth-codes'),
disableDds: boolArg('disable-dds'),
dartFlags: stringArg('dart-flags') ?? '',
useTestFonts: boolArg('use-test-fonts'),
enableSoftwareRendering: boolArg('enable-software-rendering'),
Expand Down
10 changes: 0 additions & 10 deletions packages/flutter_tools/lib/src/device.dart
Expand Up @@ -16,7 +16,6 @@ import 'application_package.dart';
import 'artifacts.dart';
import 'base/config.dart';
import 'base/context.dart';
import 'base/dds.dart';
import 'base/file_system.dart';
import 'base/io.dart';
import 'base/logger.dart';
Expand Down Expand Up @@ -548,12 +547,6 @@ abstract class Device {
/// Get the port forwarder for this device.
DevicePortForwarder get portForwarder;

/// Get the DDS instance for this device.
DartDevelopmentService get dds => _dds ??= DartDevelopmentService(
logger: globals.logger,
);
DartDevelopmentService _dds;

/// Clear the device's logs.
void clearLogs();

Expand Down Expand Up @@ -727,7 +720,6 @@ class DebuggingOptions {
this.buildInfo, {
this.startPaused = false,
this.disableServiceAuthCodes = false,
this.disableDds = false,
this.dartFlags = '',
this.enableSoftwareRendering = false,
this.skiaDeterministicRendering = false,
Expand Down Expand Up @@ -768,7 +760,6 @@ class DebuggingOptions {
startPaused = false,
dartFlags = '',
disableServiceAuthCodes = false,
disableDds = false,
enableSoftwareRendering = false,
skiaDeterministicRendering = false,
traceSkia = false,
Expand All @@ -788,7 +779,6 @@ class DebuggingOptions {
final bool startPaused;
final String dartFlags;
final bool disableServiceAuthCodes;
final bool disableDds;
final bool enableSoftwareRendering;
final bool skiaDeterministicRendering;
final bool traceSkia;
Expand Down
10 changes: 0 additions & 10 deletions packages/flutter_tools/lib/src/fuchsia/fuchsia_device.dart
Expand Up @@ -52,13 +52,6 @@ Future<vm_service.VmService> _kDefaultFuchsiaIsolateDiscoveryConnector(Uri uri)
return connectToVmService(uri);
}

Future<void> _kDefaultDartDevelopmentServiceStarter(
Device device,
Uri observatoryUri,
) async {
await device.dds.startDartDevelopmentService(observatoryUri, true);
}

/// Read the log for a particular device.
class _FuchsiaLogReader extends DeviceLogReader {
_FuchsiaLogReader(this._device, this._systemClock, [this._app]);
Expand Down Expand Up @@ -702,7 +695,6 @@ class FuchsiaIsolateDiscoveryProtocol {
this._device,
this._isolateName, [
this._vmServiceConnector = _kDefaultFuchsiaIsolateDiscoveryConnector,
this._ddsStarter = _kDefaultDartDevelopmentServiceStarter,
this._pollOnce = false,
]);

Expand All @@ -712,7 +704,6 @@ class FuchsiaIsolateDiscoveryProtocol {
final String _isolateName;
final Completer<Uri> _foundUri = Completer<Uri>();
final Future<vm_service.VmService> Function(Uri) _vmServiceConnector;
final Future<void> Function(Device, Uri) _ddsStarter;
// whether to only poll once.
final bool _pollOnce;
Timer _pollingTimer;
Expand Down Expand Up @@ -755,7 +746,6 @@ class FuchsiaIsolateDiscoveryProtocol {
final int localPort = await _device.portForwarder.forward(port);
try {
final Uri uri = Uri.parse('http://[$_ipv6Loopback]:$localPort');
await _ddsStarter(_device, uri);
service = await _vmServiceConnector(uri);
_ports[port] = service;
} on SocketException catch (err) {
Expand Down
2 changes: 1 addition & 1 deletion packages/flutter_tools/lib/src/ios/devices.dart
Expand Up @@ -437,7 +437,7 @@ class IOSDevice extends Device {
);
final Uri localUri = await fallbackDiscovery.discover(
assumedDevicePort: assumedObservatoryPort,
device: this,
deivce: this,
usesIpv6: ipv6,
hostVmservicePort: debuggingOptions.hostVmServicePort,
packageId: packageId,
Expand Down
4 changes: 2 additions & 2 deletions packages/flutter_tools/lib/src/ios/fallback_discovery.dart
Expand Up @@ -67,7 +67,7 @@ class FallbackDiscovery {
Future<Uri> discover({
@required int assumedDevicePort,
@required String packageId,
@required Device device,
@required Device deivce,
@required bool usesIpv6,
@required int hostVmservicePort,
@required String packageName,
Expand All @@ -84,7 +84,7 @@ class FallbackDiscovery {
try {
final Uri result = await _mDnsObservatoryDiscovery.getObservatoryUri(
packageId,
device,
deivce,
usesIpv6: usesIpv6,
hostVmservicePort: hostVmservicePort,
);
Expand Down
21 changes: 1 addition & 20 deletions packages/flutter_tools/lib/src/resident_runner.dart
Expand Up @@ -211,8 +211,6 @@ class FlutterDevice {
ReloadMethod reloadMethod,
GetSkSLMethod getSkSLMethod,
PrintStructuredErrorLogMethod printStructuredErrorLogMethod,
bool disableDds = false,
bool ipv6 = false,
}) {
final Completer<void> completer = Completer<void>();
StreamSubscription<void> subscription;
Expand All @@ -223,12 +221,7 @@ class FlutterDevice {
globals.printTrace('Connecting to service protocol: $observatoryUri');
isWaitingForVm = true;
vm_service.VmService service;
if (!disableDds) {
await device.dds.startDartDevelopmentService(
observatoryUri,
ipv6,
);
}

try {
service = await connectToVmService(
observatoryUri,
Expand Down Expand Up @@ -950,15 +943,13 @@ abstract class ResidentRunner {
Future<void> exit() async {
_exited = true;
await shutdownDevtools();
await shutdownDartDevelopmentService();
await stopEchoingDeviceLog();
await preExit();
await exitApp();
}

Future<void> detach() async {
await shutdownDevtools();
await shutdownDartDevelopmentService();
await stopEchoingDeviceLog();
await preExit();
appFinished();
Expand Down Expand Up @@ -1121,14 +1112,6 @@ abstract class ResidentRunner {
);
}

Future<void> shutdownDartDevelopmentService() async {
await Future.wait<void>(
flutterDevices.map<Future<void>>(
(FlutterDevice device) => device.device?.dds?.shutdown()
).where((Future<void> element) => element != null)
);
}

@protected
void cacheInitialDillCompilation() {
if (_dillOutputPath != null) {
Expand Down Expand Up @@ -1182,11 +1165,9 @@ abstract class ResidentRunner {
reloadSources: reloadSources,
restart: restart,
compileExpression: compileExpression,
disableDds: debuggingOptions.disableDds,
reloadMethod: reloadMethod,
getSkSLMethod: getSkSLMethod,
printStructuredErrorLogMethod: printStructuredErrorLog,
ipv6: ipv6,
);
// This will wait for at least one flutter view before returning.
final Status status = globals.logger.startProgress(
Expand Down
13 changes: 0 additions & 13 deletions packages/flutter_tools/lib/src/runner/flutter_command.dart
Expand Up @@ -289,19 +289,6 @@ abstract class FlutterCommand extends Command<void> {
_usesPortOption = true;
}

void addDdsOptions({@required bool verboseHelp}) {
argParser.addFlag(
'disable-dds',
hide: !verboseHelp,
help: 'Disable the Dart Developer Service (DDS). This flag should only be provided'
' when attaching to an application with an existing DDS instance (e.g.,'
' attaching to an application currently connected to by "flutter run") or'
' when running certain tests.\n'
'Note: passing this flag may degrade IDE functionality if a DDS instance is not'
' already connected to the target application.'
);
}

/// Gets the vmservice port provided to in the 'observatory-port' or
/// 'host-vmservice-port option.
///
Expand Down
15 changes: 6 additions & 9 deletions packages/flutter_tools/lib/src/test/flutter_platform.dart
Expand Up @@ -4,7 +4,6 @@

import 'dart:async';

import 'package:dds/dds.dart';
import 'package:meta/meta.dart';
import 'package:package_config/package_config.dart';
import 'package:stream_channel/stream_channel.dart';
Expand Down Expand Up @@ -515,7 +514,7 @@ class FlutterPlatform extends PlatformPlugin {
Uri processObservatoryUri;
_pipeStandardStreamsToConsole(
process,
reportObservatoryUri: (Uri detectedUri) async {
reportObservatoryUri: (Uri detectedUri) {
assert(processObservatoryUri == null);
assert(explicitObservatoryPort == null ||
explicitObservatoryPort == detectedUri.port);
Expand All @@ -528,14 +527,13 @@ class FlutterPlatform extends PlatformPlugin {
globals.printTrace('test $ourTestCount: using observatory uri $detectedUri from pid ${process.pid}');
}
processObservatoryUri = detectedUri;
await DartDevelopmentService.startDartDevelopmentService(processObservatoryUri);
{
globals.printTrace('Connecting to service protocol: $processObservatoryUri');
final Future<vm_service.VmService> localVmService = connectToVmService(processObservatoryUri,
compileExpression: _compileExpressionService);
unawaited(localVmService.then((vm_service.VmService vmservice) {
localVmService.then((vm_service.VmService vmservice) {
globals.printTrace('Successfully connected to service protocol: $processObservatoryUri');
}));
});
}
gotProcessObservatoryUri.complete();
watcher?.handleStartedProcess(
Expand Down Expand Up @@ -872,9 +870,8 @@ class FlutterPlatform extends PlatformPlugin {
void _pipeStandardStreamsToConsole(
Process process, {
void startTimeoutTimer(),
Future<void> reportObservatoryUri(Uri uri),
void reportObservatoryUri(Uri uri),
}) {

const String observatoryString = 'Observatory listening on ';
for (final Stream<List<int>> stream in <Stream<List<int>>>[
process.stderr,
Expand All @@ -884,7 +881,7 @@ class FlutterPlatform extends PlatformPlugin {
.transform<String>(utf8.decoder)
.transform<String>(const LineSplitter())
.listen(
(String line) async {
(String line) {
if (line == _kStartTimeoutTimerMessage) {
if (startTimeoutTimer != null) {
startTimeoutTimer();
Expand All @@ -897,7 +894,7 @@ class FlutterPlatform extends PlatformPlugin {
try {
final Uri uri = Uri.parse(line.substring(observatoryString.length));
if (reportObservatoryUri != null) {
await reportObservatoryUri(uri);
reportObservatoryUri(uri);
}
} on Exception catch (error) {
globals.printError('Could not parse shell observatory port message: $error');
Expand Down
6 changes: 6 additions & 0 deletions packages/flutter_tools/lib/src/tracing.dart
Expand Up @@ -22,6 +22,12 @@ class Tracing {
Tracing(this.vmService);

static const String firstUsefulFrameEventName = kFirstFrameRasterizedEventName;

static Future<Tracing> connect(Uri uri) async {
final vm_service.VmService observatory = await connectToVmService(uri);
return Tracing(observatory);
}

final vm_service.VmService vmService;

Future<void> startTracing() async {
Expand Down