From 4c00900f9a745fba8753a7e27474ceb8f7523231 Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Thu, 31 Mar 2022 15:11:17 -0700 Subject: [PATCH 1/9] Add screen field to DebuggerReady event From 498282659a59b2d2a8c41f252d6780ac0c377fef Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Mon, 4 Apr 2022 13:53:06 -0700 Subject: [PATCH 2/9] Fix breakpoints not hitting after changing a base in index.html --- dwds/CHANGELOG.md | 1 + .../src/loaders/frontend_server_require.dart | 23 +++++++++---- dwds/lib/src/loaders/require.dart | 11 +++++++ .../src/services/chrome_proxy_service.dart | 1 + dwds/lib/src/utilities/dart_uri.dart | 32 ++++++++++++------- dwds/test/fixtures/context.dart | 3 +- 6 files changed, 51 insertions(+), 20 deletions(-) diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md index 5cb792caf..2a1b08dc5 100644 --- a/dwds/CHANGELOG.md +++ b/dwds/CHANGELOG.md @@ -16,6 +16,7 @@ - Update error message on expression evaluation using unloaded libraries. - Add `screen` field to the `DebuggerReady` event. - Report `DebuggerReady` events for DevTools embedded into Chrome Devtools. +- Fix breakpoints not hitting after changing a base in index.html. **Breaking changes:** - `Dwds.start` and `ExpressionCompilerService` now take diff --git a/dwds/lib/src/loaders/frontend_server_require.dart b/dwds/lib/src/loaders/frontend_server_require.dart index ad5871cc0..8c4ed65d2 100644 --- a/dwds/lib/src/loaders/frontend_server_require.dart +++ b/dwds/lib/src/loaders/frontend_server_require.dart @@ -14,11 +14,13 @@ class FrontendServerRequireStrategyProvider { final ReloadConfiguration _configuration; final AssetReader _assetReader; final Future> Function() _digestsProvider; + final String _basePath; RequireStrategy _requireStrategy; - FrontendServerRequireStrategyProvider( - this._configuration, this._assetReader, this._digestsProvider); + FrontendServerRequireStrategyProvider(this._configuration, this._assetReader, + this._digestsProvider, String root) + : _basePath = basePathForServerUri(root); RequireStrategy get strategy => _requireStrategy ??= RequireStrategy( _configuration, @@ -32,28 +34,35 @@ class FrontendServerRequireStrategyProvider { _assetReader, ); + String _removeBasePath(String path) => + path.startsWith(_basePath) ? path.substring(_basePath.length) : null; + + String _addBasePath(String serverPath) => p.join(_basePath, serverPath); + Future> _moduleProvider( MetadataProvider metadataProvider) async => (await metadataProvider.moduleToModulePath).map((key, value) => MapEntry(key, relativizePath(removeJsExtension(value)))); Future _moduleForServerPath( - MetadataProvider metadataProvider, String serverPath) async => - (await metadataProvider.modulePathToModule)[serverPath]; + MetadataProvider metadataProvider, String serverPath) async { + var modulePathToModule = await metadataProvider.modulePathToModule; + return modulePathToModule[_removeBasePath(serverPath)]; + } Future _serverPathForModule( MetadataProvider metadataProvider, String module) async => - (await metadataProvider.moduleToModulePath)[module] ?? ''; + _addBasePath((await metadataProvider.moduleToModulePath)[module] ?? ''); Future _sourceMapPathForModule( MetadataProvider metadataProvider, String module) async { var path = (await metadataProvider.moduleToSourceMap)[module] ?? ''; - return relativizePath(path); + return _addBasePath(relativizePath(path)); } String _serverPathForAppUri(String appUri) { if (appUri.startsWith('org-dartlang-app:')) { - return Uri.parse(appUri).path.substring(1); + return _addBasePath(Uri.parse(appUri).path.substring(1)); } return null; } diff --git a/dwds/lib/src/loaders/require.dart b/dwds/lib/src/loaders/require.dart index 56868e27d..416418e5e 100644 --- a/dwds/lib/src/loaders/require.dart +++ b/dwds/lib/src/loaders/require.dart @@ -11,9 +11,20 @@ import 'package:shelf/shelf.dart'; import '../../dwds.dart'; +String basePathForServerUri(String url) { + var uri = Uri.parse(url); + var base = uri.path.endsWith('.html') ? p.dirname(uri.path) : uri.path; + if (base.isNotEmpty) { + base = makeAbsolutePath(base); + } + return base; +} + String relativizePath(String path) => path.startsWith('/') ? path.substring(1) : path; +String makeAbsolutePath(String path) => path.startsWith('/') ? path : '/$path'; + String removeJsExtension(String path) => path.endsWith('.js') ? p.withoutExtension(path) : path; diff --git a/dwds/lib/src/services/chrome_proxy_service.dart b/dwds/lib/src/services/chrome_proxy_service.dart index eb337dd17..7be4f0067 100644 --- a/dwds/lib/src/services/chrome_proxy_service.dart +++ b/dwds/lib/src/services/chrome_proxy_service.dart @@ -119,6 +119,7 @@ class ChromeProxyService implements VmServiceInterface { uri, ); _debuggerCompleter.complete(debugger); + _logger.info('Created chrome proxy service for $uri'); } static Future create( diff --git a/dwds/lib/src/utilities/dart_uri.dart b/dwds/lib/src/utilities/dart_uri.dart index 9903950af..e0acb8cea 100644 --- a/dwds/lib/src/utilities/dart_uri.dart +++ b/dwds/lib/src/utilities/dart_uri.dart @@ -12,6 +12,7 @@ import 'package:logging/logging.dart'; import 'package:package_config/package_config.dart'; import 'package:path/path.dart' as p; +import '../loaders/require.dart'; import '../loaders/strategy.dart'; import 'sdk_configuration.dart'; @@ -40,15 +41,21 @@ class DartUri { /// JS script. The dirname of that path should give us the missing prefix. factory DartUri(String uri, [String serverUri]) { var serverPath = globalLoadStrategy.serverPathForAppUri(uri); - if (serverPath != null) return DartUri._(serverPath); + if (serverPath != null) { + return DartUri._(serverPath); + } if (uri.startsWith('package:')) { return DartUri._fromPackageUri(uri, serverUri: serverUri); } - if (uri.startsWith('file:')) return DartUri._fromFileUri(uri); + if (uri.startsWith('file:')) { + return DartUri._fromFileUri(uri, serverUri: serverUri); + } if (uri.startsWith('/packages/')) { return DartUri._fromRelativePath(uri, serverUri: serverUri); } - if (uri.startsWith('/')) return DartUri._fromRelativePath(uri); + if (uri.startsWith('/')) { + return DartUri._fromRelativePath(uri, serverUri: serverUri); + } if (uri.startsWith('http:') || uri.startsWith('https:')) { return DartUri(Uri.parse(uri).path); } @@ -56,20 +63,24 @@ class DartUri { throw FormatException('Unsupported URI form', uri); } + @override + String toString() => 'DartUri: $serverPath'; + /// Construct from a package: URI factory DartUri._fromPackageUri(String uri, {String serverUri}) { + var basePath = basePathForServerUri(serverUri); var packagePath = 'packages/${uri.substring("package:".length)}'; if (serverUri != null) { - return DartUri._fromRelativePath( - p.url.join(_dirForServerUri(serverUri), packagePath)); + var relativePath = p.url.join(basePath, packagePath); + return DartUri._fromRelativePath(relativePath); } return DartUri._(packagePath); } /// Construct from a file: URI - factory DartUri._fromFileUri(String uri) { + factory DartUri._fromFileUri(String uri, {String serverUri}) { var libraryName = _resolvedUriToUri[uri]; - if (libraryName != null) return DartUri(libraryName); + if (libraryName != null) return DartUri(libraryName, serverUri); // This is not one of our recorded libraries. throw ArgumentError.value(uri, 'uri', 'Unknown library'); } @@ -80,8 +91,8 @@ class DartUri { uri = uri[0] == '/' ? uri.substring(1) : uri; if (serverUri != null) { - return DartUri._fromRelativePath( - p.url.join(_dirForServerUri(serverUri), uri)); + var basePath = basePathForServerUri(serverUri); + return DartUri._fromRelativePath(p.url.join(basePath, uri)); } return DartUri._(uri); } @@ -188,9 +199,6 @@ class DartUri { } } - /// Returns the dirname for the server URI. - static String _dirForServerUri(String uri) => p.dirname(Uri.parse(uri).path); - /// Load the .dart_tool/package_config.json file associated with the running /// application so we can resolve file URLs into package: URLs appropriately. static Future _loadPackageConfig(Uri uri) async { diff --git a/dwds/test/fixtures/context.dart b/dwds/test/fixtures/context.dart index b6395054a..61c38b2dd 100644 --- a/dwds/test/fixtures/context.dart +++ b/dwds/test/fixtures/context.dart @@ -270,7 +270,8 @@ class TestContext { assetHandler = webRunner.devFS.assetServer.handleRequest; requireStrategy = FrontendServerRequireStrategyProvider( - reloadConfiguration, assetReader, () async => {}).strategy; + reloadConfiguration, assetReader, () async => {}, '') + .strategy; buildResults = const Stream.empty(); } From 4fee2bb9132dacfd9caa93c41eb66ad51ae6fbbd Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Mon, 4 Apr 2022 14:02:41 -0700 Subject: [PATCH 3/9] Updated changelog --- dwds/CHANGELOG.md | 1 + dwds/lib/src/loaders/frontend_server_require.dart | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md index 2a1b08dc5..ad28d16b4 100644 --- a/dwds/CHANGELOG.md +++ b/dwds/CHANGELOG.md @@ -22,6 +22,7 @@ - `Dwds.start` and `ExpressionCompilerService` now take `sdkConfigurationProvider` argument instead of separate SDK-related file paths. +- Add `basePath` parameter to `FrontendServerRequireStrategy`. ## 12.1.0 - Update _fe_analyzer_shared to version ^34.0.0. diff --git a/dwds/lib/src/loaders/frontend_server_require.dart b/dwds/lib/src/loaders/frontend_server_require.dart index 8c4ed65d2..b025749b3 100644 --- a/dwds/lib/src/loaders/frontend_server_require.dart +++ b/dwds/lib/src/loaders/frontend_server_require.dart @@ -19,8 +19,8 @@ class FrontendServerRequireStrategyProvider { RequireStrategy _requireStrategy; FrontendServerRequireStrategyProvider(this._configuration, this._assetReader, - this._digestsProvider, String root) - : _basePath = basePathForServerUri(root); + this._digestsProvider, String basePath) + : _basePath = basePathForServerUri(basePath); RequireStrategy get strategy => _requireStrategy ??= RequireStrategy( _configuration, From 06656177713ab400dbbfb5c13b109c89b9127f0d Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Mon, 4 Apr 2022 14:09:02 -0700 Subject: [PATCH 4/9] Updated changelog. --- dwds/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md index ad28d16b4..b11aadc0f 100644 --- a/dwds/CHANGELOG.md +++ b/dwds/CHANGELOG.md @@ -24,6 +24,7 @@ paths. - Add `basePath` parameter to `FrontendServerRequireStrategy`. + ## 12.1.0 - Update _fe_analyzer_shared to version ^34.0.0. From 2098f37f5319f934a4ac574007ccb1b9e0c41a77 Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Mon, 4 Apr 2022 17:59:56 -0700 Subject: [PATCH 5/9] Fix failing tests --- dwds/lib/src/loaders/require.dart | 1 + dwds/test/dart_uri_test.dart | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/dwds/lib/src/loaders/require.dart b/dwds/lib/src/loaders/require.dart index 416418e5e..cb5838352 100644 --- a/dwds/lib/src/loaders/require.dart +++ b/dwds/lib/src/loaders/require.dart @@ -12,6 +12,7 @@ import 'package:shelf/shelf.dart'; import '../../dwds.dart'; String basePathForServerUri(String url) { + if (url == null) return null; var uri = Uri.parse(url); var base = uri.path.endsWith('.html') ? p.dirname(uri.path) : uri.path; if (base.isNotEmpty) { diff --git a/dwds/test/dart_uri_test.dart b/dwds/test/dart_uri_test.dart index f52b27ef1..8d9b4a19c 100644 --- a/dwds/test/dart_uri_test.dart +++ b/dwds/test/dart_uri_test.dart @@ -35,7 +35,7 @@ void main() { test('parses package : paths with root', () { var uri = DartUri( 'package:path/path.dart', 'http://localhost:8080/foo/bar/blah'); - expect(uri.serverPath, 'foo/bar/packages/path/path.dart'); + expect(uri.serverPath, 'foo/bar/blah/packages/path/path.dart'); }); test('parses org-dartlang-app paths', () { From 46934fb007f68817d0336131bcc6522f1d341237 Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Thu, 7 Apr 2022 16:31:55 -0700 Subject: [PATCH 6/9] Try fix breakpoint setting problem for org-dartlang uris --- dwds/lib/src/utilities/dart_uri.dart | 4 ++++ dwds/test/build_daemon_nested_directory_breakpoint_test.dart | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/dwds/lib/src/utilities/dart_uri.dart b/dwds/lib/src/utilities/dart_uri.dart index e0acb8cea..57bf5d946 100644 --- a/dwds/lib/src/utilities/dart_uri.dart +++ b/dwds/lib/src/utilities/dart_uri.dart @@ -42,6 +42,10 @@ class DartUri { factory DartUri(String uri, [String serverUri]) { var serverPath = globalLoadStrategy.serverPathForAppUri(uri); if (serverPath != null) { + if (serverUri != null) { + var basePath = basePathForServerUri(serverUri); + serverPath = serverPath.replaceAll(basePath, ''); + } return DartUri._(serverPath); } if (uri.startsWith('package:')) { diff --git a/dwds/test/build_daemon_nested_directory_breakpoint_test.dart b/dwds/test/build_daemon_nested_directory_breakpoint_test.dart index ec5cd7b59..e6203b485 100644 --- a/dwds/test/build_daemon_nested_directory_breakpoint_test.dart +++ b/dwds/test/build_daemon_nested_directory_breakpoint_test.dart @@ -71,7 +71,7 @@ void main() { // Remove breakpoint so it doesn't impact other tests. await service.removeBreakpoint(isolate.id, bp.id); - }); + },solo: true); test('set breakpoint again', () async { var line = await context.findBreakpointLine( From 4635f51300211c2b4fca31e74de65490fedc3c7f Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Wed, 20 Apr 2022 09:21:26 -0700 Subject: [PATCH 7/9] Fix finding dart location for js, remove adding root to absolute paths --- dwds/lib/src/debugging/location.dart | 15 +-- .../src/services/expression_evaluator.dart | 3 +- dwds/lib/src/utilities/dart_uri.dart | 6 +- ...emon_nested_directory_breakpoint_test.dart | 92 ------------------- 4 files changed, 12 insertions(+), 104 deletions(-) delete mode 100644 dwds/test/build_daemon_nested_directory_breakpoint_test.dart diff --git a/dwds/lib/src/debugging/location.dart b/dwds/lib/src/debugging/location.dart index 1dad90baa..e3c8d5138 100644 --- a/dwds/lib/src/debugging/location.dart +++ b/dwds/lib/src/debugging/location.dart @@ -162,12 +162,15 @@ class Locations { /// Find the [Location] for the given JS source position. /// /// The [line] number is 0-based. - Future locationForJs(String url, int line, int column) async => - (await locationsForUrl(url)).firstWhere( - (location) => - location.jsLocation.line == line && - location.jsLocation.column >= column, - orElse: () => null); + Future locationForJs(String url, int line, int column) async { + var locations = await locationsForUrl(url); + var locationsForLine = locations.where( + (location) => location.jsLocation.line == line, + ); + return locationsForLine.lastWhere( + (location) => location.jsLocation.column <= column, + orElse: () => null); + } /// Returns the tokenPosTable for the provided Dart script path as defined /// in: diff --git a/dwds/lib/src/services/expression_evaluator.dart b/dwds/lib/src/services/expression_evaluator.dart index 8c1494eef..f86fd5ffe 100644 --- a/dwds/lib/src/services/expression_evaluator.dart +++ b/dwds/lib/src/services/expression_evaluator.dart @@ -179,7 +179,8 @@ class ExpressionEvaluator { 'Cannot find Dart location for JS location: ' 'url: $url, ' 'function: $functionName, ' - 'line: $jsLine'); + 'line: $jsLine, ' + 'column: $jsColumn'); } var dartLocation = locationMap.dartLocation; diff --git a/dwds/lib/src/utilities/dart_uri.dart b/dwds/lib/src/utilities/dart_uri.dart index 57bf5d946..20b617242 100644 --- a/dwds/lib/src/utilities/dart_uri.dart +++ b/dwds/lib/src/utilities/dart_uri.dart @@ -42,10 +42,6 @@ class DartUri { factory DartUri(String uri, [String serverUri]) { var serverPath = globalLoadStrategy.serverPathForAppUri(uri); if (serverPath != null) { - if (serverUri != null) { - var basePath = basePathForServerUri(serverUri); - serverPath = serverPath.replaceAll(basePath, ''); - } return DartUri._(serverPath); } if (uri.startsWith('package:')) { @@ -58,7 +54,7 @@ class DartUri { return DartUri._fromRelativePath(uri, serverUri: serverUri); } if (uri.startsWith('/')) { - return DartUri._fromRelativePath(uri, serverUri: serverUri); + return DartUri._fromRelativePath(uri); } if (uri.startsWith('http:') || uri.startsWith('https:')) { return DartUri(Uri.parse(uri).path); diff --git a/dwds/test/build_daemon_nested_directory_breakpoint_test.dart b/dwds/test/build_daemon_nested_directory_breakpoint_test.dart deleted file mode 100644 index e6203b485..000000000 --- a/dwds/test/build_daemon_nested_directory_breakpoint_test.dart +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file -// for details. All rights reserved. Use of this source code is governed by a -// BSD-style license that can be found in the LICENSE file. - -// @dart = 2.9 - -@TestOn('vm') -import 'dart:async'; - -import 'package:dwds/src/connections/debug_connection.dart'; -import 'package:dwds/src/services/chrome_proxy_service.dart'; -import 'package:test/test.dart'; -import 'package:vm_service/vm_service.dart'; -import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart'; - -import 'fixtures/context.dart'; - -final context = TestContext( - directory: '../fixtures/_test', - entry: '../fixtures/_test/example/hello_world/main.dart', - path: 'hello_world/index.html', - pathToServe: 'example'); - -ChromeProxyService get service => - fetchChromeProxyService(context.debugConnection); -WipConnection get tabConnection => context.tabConnection; - -void main() { - group('shared context with evaluation', () { - setUpAll(() async { - await context.setUp(); - }); - - tearDownAll(() async { - await context.tearDown(); - }); - - group('breakpoint', () { - VM vm; - Isolate isolate; - ScriptList scripts; - ScriptRef mainScript; - Stream stream; - - setUp(() async { - vm = await service.getVM(); - isolate = await service.getIsolate(vm.isolates.first.id); - scripts = await service.getScripts(isolate.id); - - await service.streamListen('Debug'); - stream = service.onEvent('Debug'); - - mainScript = scripts.scripts - .firstWhere((each) => each.uri.contains('main.dart')); - }); - - tearDown(() async { - await service.resume(isolate.id); - }); - - test('set breakpoint', () async { - var line = await context.findBreakpointLine( - 'printLocal', isolate.id, mainScript); - var bp = await service.addBreakpointWithScriptUri( - isolate.id, mainScript.uri, line); - - await stream.firstWhere( - (Event event) => event.kind == EventKind.kPauseBreakpoint); - - expect(bp, isNotNull); - - // Remove breakpoint so it doesn't impact other tests. - await service.removeBreakpoint(isolate.id, bp.id); - },solo: true); - - test('set breakpoint again', () async { - var line = await context.findBreakpointLine( - 'printLocal', isolate.id, mainScript); - var bp = await service.addBreakpointWithScriptUri( - isolate.id, mainScript.uri, line); - - await stream.firstWhere( - (Event event) => event.kind == EventKind.kPauseBreakpoint); - - expect(bp, isNotNull); - - // Remove breakpoint so it doesn't impact other tests. - await service.removeBreakpoint(isolate.id, bp.id); - }); - }); - }); -} From c35efa0cc9af6e180a83bb6c48ab56033739bb7f Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Wed, 20 Apr 2022 13:30:09 -0700 Subject: [PATCH 8/9] Removed printing and locaton fixes, updted version --- dwds/CHANGELOG.md | 7 ++++--- dwds/lib/src/debugging/location.dart | 15 ++++++--------- dwds/lib/src/injected/client.js | 2 +- dwds/lib/src/services/chrome_proxy_service.dart | 1 - dwds/lib/src/version.dart | 2 +- dwds/pubspec.yaml | 3 +-- 6 files changed, 13 insertions(+), 17 deletions(-) diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md index fc24d4684..4e15311c8 100644 --- a/dwds/CHANGELOG.md +++ b/dwds/CHANGELOG.md @@ -1,4 +1,4 @@ -## 13.1.1-dev +## 14.0.0-dev - Add column information to breakpoints to allow precise breakpoint placement. - Split SDK validation methods to allow validation of separate components. - Remove dependency on `package:_fe_analyzer_shared`. @@ -10,6 +10,9 @@ - Remove clearing all scripts on page load for extension debugger. - Fix breakpoints not hitting after changing a base in index.html. +**Breaking changes:** +- Add `basePath` parameter to `FrontendServerRequireStrategy`. + ## 13.1.0 - Update _fe_analyzer_shared to version ^38.0.0. @@ -37,8 +40,6 @@ - `Dwds.start` and `ExpressionCompilerService` now take `sdkConfigurationProvider` argument instead of separate SDK-related file paths. -- Add `basePath` parameter to `FrontendServerRequireStrategy`. - ## 12.1.0 - Update _fe_analyzer_shared to version ^34.0.0. diff --git a/dwds/lib/src/debugging/location.dart b/dwds/lib/src/debugging/location.dart index e3c8d5138..1dad90baa 100644 --- a/dwds/lib/src/debugging/location.dart +++ b/dwds/lib/src/debugging/location.dart @@ -162,15 +162,12 @@ class Locations { /// Find the [Location] for the given JS source position. /// /// The [line] number is 0-based. - Future locationForJs(String url, int line, int column) async { - var locations = await locationsForUrl(url); - var locationsForLine = locations.where( - (location) => location.jsLocation.line == line, - ); - return locationsForLine.lastWhere( - (location) => location.jsLocation.column <= column, - orElse: () => null); - } + Future locationForJs(String url, int line, int column) async => + (await locationsForUrl(url)).firstWhere( + (location) => + location.jsLocation.line == line && + location.jsLocation.column >= column, + orElse: () => null); /// Returns the tokenPosTable for the provided Dart script path as defined /// in: diff --git a/dwds/lib/src/injected/client.js b/dwds/lib/src/injected/client.js index cc103b81f..94f9c6fd1 100644 --- a/dwds/lib/src/injected/client.js +++ b/dwds/lib/src/injected/client.js @@ -1,4 +1,4 @@ -// Generated by dart2js (NullSafetyMode.unsound, csp), the Dart to JavaScript compiler version: 2.18.0-9.0.dev. +// Generated by dart2js (NullSafetyMode.unsound, csp), the Dart to JavaScript compiler version: 2.18.0-29.0.dev. // The code supports the following hooks: // dartPrint(message): // if this function is defined it is called instead of the Dart [print] diff --git a/dwds/lib/src/services/chrome_proxy_service.dart b/dwds/lib/src/services/chrome_proxy_service.dart index 5584502a2..7b260f7f5 100644 --- a/dwds/lib/src/services/chrome_proxy_service.dart +++ b/dwds/lib/src/services/chrome_proxy_service.dart @@ -119,7 +119,6 @@ class ChromeProxyService implements VmServiceInterface { uri, ); _debuggerCompleter.complete(debugger); - _logger.info('Created chrome proxy service for $uri'); } static Future create( diff --git a/dwds/lib/src/version.dart b/dwds/lib/src/version.dart index 06dc05173..8bbf0255b 100644 --- a/dwds/lib/src/version.dart +++ b/dwds/lib/src/version.dart @@ -1,2 +1,2 @@ // Generated code. Do not modify. -const packageVersion = '13.1.1-dev'; +const packageVersion = '14.0.0-dev'; diff --git a/dwds/pubspec.yaml b/dwds/pubspec.yaml index d2d3ba4e3..f313b46fc 100644 --- a/dwds/pubspec.yaml +++ b/dwds/pubspec.yaml @@ -1,7 +1,6 @@ name: dwds # Every time this changes you need to run `dart run build_runner build`. -version: 13.1.1-dev -homepage: https://github.com/dart-lang/webdev/tree/master/dwds +version: 14.0.0-dev description: >- A service that proxies between the Chrome debug protocol and the Dart VM service protocol. From 1abb8995bf7a1f0244e97133a124c43176939915 Mon Sep 17 00:00:00 2001 From: Anna Gringauze Date: Wed, 20 Apr 2022 18:08:43 -0700 Subject: [PATCH 9/9] Address CR comments --- dwds/lib/src/loaders/require.dart | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dwds/lib/src/loaders/require.dart b/dwds/lib/src/loaders/require.dart index cb5838352..15f134ec5 100644 --- a/dwds/lib/src/loaders/require.dart +++ b/dwds/lib/src/loaders/require.dart @@ -11,12 +11,17 @@ import 'package:shelf/shelf.dart'; import '../../dwds.dart'; +/// Find the path we are serving from the url. +/// +/// Example: +/// https://localhost/base/index.html => /base +/// https://localhost/base => /base String basePathForServerUri(String url) { if (url == null) return null; var uri = Uri.parse(url); var base = uri.path.endsWith('.html') ? p.dirname(uri.path) : uri.path; if (base.isNotEmpty) { - base = makeAbsolutePath(base); + base = base.startsWith('/') ? base : '/$base'; } return base; } @@ -24,8 +29,6 @@ String basePathForServerUri(String url) { String relativizePath(String path) => path.startsWith('/') ? path.substring(1) : path; -String makeAbsolutePath(String path) => path.startsWith('/') ? path : '/$path'; - String removeJsExtension(String path) => path.endsWith('.js') ? p.withoutExtension(path) : path;