Skip to content

Commit

Permalink
Revert "[ Service ] Start DDS and serve DevTools when the VM service …
Browse files Browse the repository at this point in the history
…is started via dart:developer"

This reverts commit 64d4689.

Reason for revert: Platform.executable doesn't return a path, just an executable name, which can cause breakages.

TEST=ci

Original change's description:
> [ Service ] Start DDS and serve DevTools when the VM service is started via dart:developer
>
> TEST=pkg/dds/test/control_web_server_starts_dds_test.dart
>
> Change-Id: I2e51783592912e5a719685f2ab5e7537b7a59586
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366560
> Commit-Queue: Ben Konyi <[email protected]>
> Reviewed-by: Derek Xu <[email protected]>

Change-Id: I4ceaee4b5ca8f5557e90cd914ee69fe9aa5f85a7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/373381
Reviewed-by: Siva Annamalai <[email protected]>
Reviewed-by: Derek Xu <[email protected]>
Commit-Queue: Siva Annamalai <[email protected]>
  • Loading branch information
bkonyi authored and Commit Queue committed Jun 26, 2024
1 parent 7d22d99 commit 4b88698
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 86 deletions.
51 changes: 0 additions & 51 deletions pkg/dds/test/control_web_server_starts_dds_test.dart

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Uri? wsServerUri;

Future<Null> testeeBefore() async {
print('testee before');
// First grab the URL where the VM service is listening and the
// First grab the URL where the observatory is listening on and the
// service protocol version numbers. We expect the URL to be null as
// the server has not been started yet.
ServiceProtocolInfo info = await Service.getInfo();
Expand Down
76 changes: 42 additions & 34 deletions sdk/lib/_internal/vm/bin/vmservice_io.dart
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class _DebuggingSession {
bool disableServiceAuthCodes,
bool enableDevTools,
) async {
final dartDir = File(Platform.executable).parent.path;
final dartDir = File(Platform.resolvedExecutable).parent.path;
final executable = [
dartDir,
'dart${Platform.isWindows ? '.exe' : ''}',
Expand Down Expand Up @@ -133,15 +133,15 @@ class _DebuggingSession {
// is changed to ensure consistency.
const devToolsMessagePrefix =
'The Dart DevTools debugger and profiler is available at:';
serverPrint('$devToolsMessagePrefix $devToolsUri');
print('$devToolsMessagePrefix $devToolsUri');
}
if (result
case {
'dtd': {
'uri': String dtdUri,
}
} when _printDtd) {
serverPrint('The Dart Tooling Daemon (DTD) is available at: $dtdUri');
print('The Dart Tooling Daemon (DTD) is available at: $dtdUri');
}
} else {
printError(result['error'] ?? result);
Expand Down Expand Up @@ -308,37 +308,18 @@ Future<List<Map<String, dynamic>>> listFilesCallback(Uri dirPath) async {

Uri? serverInformationCallback() => _lazyServerBoot().serverAddress;

Future<void> _toggleWebServer(Server server) async {
// Toggle HTTP server.
if (server.running) {
await server.shutdown(true).then((_) async {
ddsInstance?.shutdown();
ddsInstance = null;
await VMService().clearState();
serverFuture = null;
});
} else {
await server.startup().then((_) async {
if (_waitForDdsToAdvertiseService) {
ddsInstance = _DebuggingSession();
await ddsInstance!.start(
_ddsIP,
_ddsPort.toString(),
_authCodesDisabled,
_serveDevtools,
);
}
});
}
}

Future<Uri?> webServerControlCallback(bool enable, bool? silenceOutput) async {
if (silenceOutput != null) {
silentObservatory = silenceOutput;
}
final _server = _lazyServerBoot();
if (_server.running != enable) {
await _toggleWebServer(_server);
if (enable) {
await _server.startup();
// TODO: if dds is enabled a dds instance needs to be started.
} else {
await _server.shutdown(true);
}
}
return _server.serverAddress;
}
Expand All @@ -348,13 +329,32 @@ void webServerAcceptNewWebSocketConnections(bool enable) {
_server.acceptNewWebSocketConnections = enable;
}

Future<void> _onSignal(ProcessSignal signal) async {
_onSignal(ProcessSignal signal) async {
if (serverFuture != null) {
// Still waiting.
return;
}
final server = _lazyServerBoot();
await _toggleWebServer(server);
final _server = _lazyServerBoot();
// Toggle HTTP server.
if (_server.running) {
_server.shutdown(true).then((_) async {
ddsInstance?.shutdown();
await VMService().clearState();
serverFuture = null;
});
} else {
_server.startup().then((_) {
if (_waitForDdsToAdvertiseService) {
ddsInstance = _DebuggingSession()
..start(
_ddsIP,
_ddsPort.toString(),
_authCodesDisabled,
_serveDevtools,
);
}
});
}
}

Timer? _registerSignalHandlerTimer;
Expand Down Expand Up @@ -400,10 +400,18 @@ main() {
// can be delivered and waiting loaders can be cancelled.
VMService();
if (_autoStart) {
assert(server == null);
final _server = _lazyServerBoot();
assert(!_server.running);
_toggleWebServer(_server);
_server.startup().then((_) {
if (_waitForDdsToAdvertiseService) {
ddsInstance = _DebuggingSession()
..start(
_ddsIP,
_ddsPort.toString(),
_authCodesDisabled,
_serveDevtools,
);
}
});
// It's just here to push an event on the event loop so that we invoke the
// scheduled microtasks.
Timer.run(() {});
Expand Down

0 comments on commit 4b88698

Please sign in to comment.