From 85d646002905171f4c4995b511bbd9462194afc5 Mon Sep 17 00:00:00 2001 From: Ben Konyi Date: Tue, 18 Jan 2022 16:50:26 -0800 Subject: [PATCH 1/2] Serve DevTools from Dart SDK via DDS instead of pub Removes dependencies on devtools_server and devtools. Fixes https://github.com/dart-lang/webdev/issues/1474 --- dwds/pubspec.yaml | 5 +---- dwds/test/fixtures/server.dart | 9 ++++++--- dwds/test/fixtures/utilities.dart | 1 + webdev/lib/src/serve/webdev_server.dart | 9 ++++++--- webdev/lib/src/util.dart | 1 + webdev/pubspec.yaml | 5 +---- 6 files changed, 16 insertions(+), 14 deletions(-) diff --git a/dwds/pubspec.yaml b/dwds/pubspec.yaml index a63542c06..3d9df129d 100644 --- a/dwds/pubspec.yaml +++ b/dwds/pubspec.yaml @@ -15,7 +15,7 @@ dependencies: built_collection: ^5.0.0 built_value: '>=6.7.0 <9.0.0' crypto: '>=2.0.6 <4.0.0' - dds: ^2.1.6 + dds: ^2.2.0 http: '>=0.12.0 <0.14.0' http_multi_server: ^3.0.0 logging: '>=0.11.3 <2.0.0' @@ -53,6 +53,3 @@ dev_dependencies: stream_channel: ^2.0.0 test: ^1.6.0 webdriver: '>=2.0.0 <4.0.0' - # devtools_server indirectly depends on devtools so keep this around. - devtools: ^2.9.3 - devtools_server: ^2.9.3 diff --git a/dwds/test/fixtures/server.dart b/dwds/test/fixtures/server.dart index 212c732ec..9f25a09fb 100644 --- a/dwds/test/fixtures/server.dart +++ b/dwds/test/fixtures/server.dart @@ -7,7 +7,7 @@ import 'dart:io'; import 'package:build_daemon/data/build_status.dart' as daemon; -import 'package:devtools_server/devtools_server.dart' as devtools_lancher; +import 'package:dds/devtools_server.dart'; import 'package:dwds/data/build_result.dart'; import 'package:dwds/dwds.dart'; import 'package:dwds/src/utilities/shared.dart'; @@ -112,8 +112,11 @@ class TestServer { expressionCompiler: expressionCompiler, devtoolsLauncher: serveDevTools ? (hostname) async { - var server = await devtools_lancher.serveDevTools( - hostname: hostname, enableStdinCommands: false); + var server = await DevToolsServer().serveDevTools( + hostname: hostname, + enableStdinCommands: false, + customDevToolsPath: devToolsPath, + ); return DevTools(server.address.host, server.port, server); } : null); diff --git a/dwds/test/fixtures/utilities.dart b/dwds/test/fixtures/utilities.dart index ceec0767e..f33299f08 100644 --- a/dwds/test/fixtures/utilities.dart +++ b/dwds/test/fixtures/utilities.dart @@ -29,6 +29,7 @@ final String _sdkDir = (() { final String dartSdkPath = _sdkDir; final String dartPath = p.join(_sdkDir, 'bin', 'dart'); +final String devToolsPath = p.join(_sdkDir, 'bin', 'resources', 'devtools'); /// Returns the port of the daemon asset server. int daemonPort(String workingDirectory) { diff --git a/webdev/lib/src/serve/webdev_server.dart b/webdev/lib/src/serve/webdev_server.dart index 5db5bdec4..f3327e3f4 100644 --- a/webdev/lib/src/serve/webdev_server.dart +++ b/webdev/lib/src/serve/webdev_server.dart @@ -8,7 +8,7 @@ import 'dart:async'; import 'dart:io'; import 'package:build_daemon/data/build_status.dart' as daemon; -import 'package:devtools_server/devtools_server.dart'; +import 'package:dds/devtools_server.dart'; import 'package:dwds/data/build_result.dart'; import 'package:dwds/dwds.dart'; import 'package:http/http.dart' as http; @@ -150,8 +150,11 @@ class WebDevServer { expressionCompiler: ddcService, devtoolsLauncher: shouldServeDevTools ? (String hostname) async { - var server = await serveDevTools( - hostname: hostname, enableStdinCommands: false); + var server = await DevToolsServer().serveDevTools( + hostname: hostname, + enableStdinCommands: false, + customDevToolsPath: devToolsPath, + ); return DevTools(server.address.host, server.port, server); } : null); diff --git a/webdev/lib/src/util.dart b/webdev/lib/src/util.dart index ea5de9a3b..3fc1f388b 100644 --- a/webdev/lib/src/util.dart +++ b/webdev/lib/src/util.dart @@ -35,3 +35,4 @@ final String _sdkDir = (() { })(); final String dartPath = p.join(_sdkDir, 'bin', 'dart'); +final String devToolsPath = p.join(_sdkDir, 'bin', 'resources', 'devtools'); diff --git a/webdev/pubspec.yaml b/webdev/pubspec.yaml index 8ba1b96de..077bb9ad7 100644 --- a/webdev/pubspec.yaml +++ b/webdev/pubspec.yaml @@ -17,7 +17,7 @@ dependencies: build_daemon: '>=2.0.0 <4.0.0' browser_launcher: ^1.0.0 crypto: ^3.0.0 - dds: ^2.1.6 + dds: ^2.2.0 dwds: ^11.5.1 http: ^0.13.0 http_multi_server: ^3.0.0 @@ -36,9 +36,6 @@ dependencies: vm_service: '>=3.0.0 <9.0.0' webkit_inspection_protocol: '>=0.4.0 <2.0.0' yaml: ^3.0.0 - # devtools_server indirectly depends on devtools so keep this around. - devtools: ^2.0.0 - devtools_server: ^2.0.0 dev_dependencies: build: ^2.0.0 From 95dfeea3d1208ca809769ccbd3ba23696270a179 Mon Sep 17 00:00:00 2001 From: Ben Konyi Date: Tue, 18 Jan 2022 16:58:22 -0800 Subject: [PATCH 2/2] Add missing include --- dwds/test/fixtures/server.dart | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dwds/test/fixtures/server.dart b/dwds/test/fixtures/server.dart index 9f25a09fb..e64f4394e 100644 --- a/dwds/test/fixtures/server.dart +++ b/dwds/test/fixtures/server.dart @@ -16,6 +16,8 @@ import 'package:logging/logging.dart'; import 'package:shelf/shelf.dart'; import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart'; +import 'utilities.dart'; + Logger _logger = Logger('TestServer'); Handler _interceptFavicon(Handler handler) {