Fix a bug preventing Dart server apps from connecting to DevTools extensions (#6982)
diff --git a/packages/devtools_extensions/CHANGELOG.md b/packages/devtools_extensions/CHANGELOG.md index 53344ad..b22d13c 100644 --- a/packages/devtools_extensions/CHANGELOG.md +++ b/packages/devtools_extensions/CHANGELOG.md
@@ -1,3 +1,34 @@ +## 0.0.12 +* Fix a bug preventing Dart server apps from connecting to DevTools extensions. + +## 0.0.11 +* Add error messaging when `extensionManager` or `serviceManager` are accessed before they +are initialized. +* Improve dartdoc for `DevToolsExtension`, `extensionManager`, and `serviceManager`. +* Migrate from `dart:html` to `package:web`. +* Add `utils.dart` library with helper for message event parsing. + +## 0.0.10 +* Bump minimum Dart SDK version to `3.3.0-91.0.dev` and minimum Flutter SDK version to `3.17.0-0.0.pre`. +* Add a test target to the `app_that_uses_foo` example that can also be debugged +with the DevTools extension provided by `package:foo`. +* Add an example of performing expression evaluations from a DevTools extension. +* Add an example of registering a service extension and calling it from a DevTools extension. +* Document the DevTools extension examples. +* Add documentation to [ExtensionManager] public APIs. +* Fix some bugs with the `build_and_copy` command for Windows. +* Add an example `launch.json` file in the `example/foo` directory. +* Clean up the package readme to make instructions Windows-compatible. +* Update the README with instructions for joining the Flutter Discord server. +* Bump `package:devtools_shared` dependency to ^6.0.1 +* Bump `package:devtools_app_shared` dependency to ^0.0.7 +* Bump `package:vm_service` dependency to ^13.0.0. + +## 0.0.9 +* Add a link to the new #devtools-extension-authors Discord channel in the README.md. +* Fix typos that incorrectly used snake case instead of camel case for `config.yaml` examples. +* Add a VS Code launch config for the `app_that_uses_foo` example app. + ## 0.0.8 * Fix the `build_and_copy` command so that it succeeds when there is not an existing `extension/devtools/build` directory.
diff --git a/packages/devtools_extensions/lib/src/template/_simulated_devtools_environment/_simulated_devtools_controller.dart b/packages/devtools_extensions/lib/src/template/_simulated_devtools_environment/_simulated_devtools_controller.dart index 47d940f..1203c4c 100644 --- a/packages/devtools_extensions/lib/src/template/_simulated_devtools_environment/_simulated_devtools_controller.dart +++ b/packages/devtools_extensions/lib/src/template/_simulated_devtools_environment/_simulated_devtools_controller.dart
@@ -66,13 +66,9 @@ // persists on hot restart. // TODO(kenz): add some validation and error handling if [uri] is bad input. - final normalizedUri = - uri != null ? normalizeVmServiceUri(uri).toString() : null; final event = DevToolsExtensionEvent( DevToolsExtensionEventType.vmServiceConnection, - data: { - ExtensionEventParameters.vmServiceConnectionUri: normalizedUri, - }, + data: {ExtensionEventParameters.vmServiceConnectionUri: uri}, ); _postMessageToExtension(event); }
diff --git a/packages/devtools_extensions/lib/src/template/_simulated_devtools_environment/_simulated_devtools_environment.dart b/packages/devtools_extensions/lib/src/template/_simulated_devtools_environment/_simulated_devtools_environment.dart index d2f5a4c..1d0479a 100644 --- a/packages/devtools_extensions/lib/src/template/_simulated_devtools_environment/_simulated_devtools_environment.dart +++ b/packages/devtools_extensions/lib/src/template/_simulated_devtools_environment/_simulated_devtools_environment.dart
@@ -9,7 +9,6 @@ import 'package:devtools_app_shared/service.dart'; import 'package:devtools_app_shared/ui.dart'; import 'package:devtools_app_shared/utils.dart'; -import 'package:devtools_shared/devtools_shared.dart'; import 'package:flutter/material.dart'; import '../../api/api.dart';
diff --git a/packages/devtools_extensions/lib/src/template/devtools_extension.dart b/packages/devtools_extensions/lib/src/template/devtools_extension.dart index e4bcea0..e0dbd50 100644 --- a/packages/devtools_extensions/lib/src/template/devtools_extension.dart +++ b/packages/devtools_extensions/lib/src/template/devtools_extension.dart
@@ -9,6 +9,7 @@ import 'package:devtools_app_shared/service.dart'; import 'package:devtools_app_shared/ui.dart'; import 'package:devtools_app_shared/utils.dart'; +import 'package:devtools_shared/devtools_shared.dart'; import 'package:devtools_shared/service.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart';
diff --git a/packages/devtools_extensions/lib/src/template/extension_manager.dart b/packages/devtools_extensions/lib/src/template/extension_manager.dart index f4e22d9..df42dce 100644 --- a/packages/devtools_extensions/lib/src/template/extension_manager.dart +++ b/packages/devtools_extensions/lib/src/template/extension_manager.dart
@@ -165,8 +165,13 @@ try { final finishedCompleter = Completer<void>(); + final normalizedUri = normalizeVmServiceUri(vmServiceUri); + if (normalizedUri == null) { + throw Exception('unable to normalize uri because it is not absolute'); + } + final vmService = await connect<VmService>( - uri: Uri.parse(vmServiceUri), + uri: normalizedUri, finishedCompleter: finishedCompleter, createService: ({ // ignore: avoid-dynamic, code needs to match API from VmService.
diff --git a/packages/devtools_extensions/pubspec.yaml b/packages/devtools_extensions/pubspec.yaml index 095d0ec..c60cc48 100644 --- a/packages/devtools_extensions/pubspec.yaml +++ b/packages/devtools_extensions/pubspec.yaml
@@ -1,6 +1,6 @@ name: devtools_extensions description: A package for building and supporting extensions for Dart DevTools. -version: 0.0.8 +version: 0.0.12 repository: https://github.com/flutter/devtools/tree/master/packages/devtools_extensions