Fix launching DevTools with Flutter Web applications (#72110)

This commit is contained in:
Gary Roumanis 2021-01-07 15:49:09 -08:00 committed by GitHub
parent 918100f8e8
commit 705811fee2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 3 deletions

View File

@ -808,6 +808,11 @@ class _ResidentWebRunner extends ResidentWebRunner {
});
websocketUri = Uri.parse(_connectionResult.debugConnection.uri);
device.vmService = _vmService;
// Update caches to enable the FlutterVmService extensions.
setHttpAddress(_httpUriFromWebsocketUri(websocketUri), device.vmService);
setWsAddress(websocketUri, device.vmService);
// Always run main after connecting because start paused doesn't work yet.
if (!debuggingOptions.startPaused || !supportsServiceProtocol) {
_connectionResult.appConnection.runMain();
@ -859,4 +864,10 @@ class _ResidentWebRunner extends ResidentWebRunner {
await device.exitApps();
appFinished();
}
Uri _httpUriFromWebsocketUri(Uri websocketUri) {
const String wsPath = '/ws';
final String path = websocketUri.path;
return websocketUri.replace(scheme: 'http', path: path.substring(0, path.length - wsPath.length));
}
}

View File

@ -3,7 +3,7 @@
// found in the LICENSE file.
import 'package:file/file.dart';
import 'package:meta/meta.dart' show required, visibleForTesting;
import 'package:meta/meta.dart' show required;
import 'package:vm_service/vm_service.dart' as vm_service;
import 'base/context.dart';
@ -152,13 +152,17 @@ final Expando<Uri> _httpAddressExpando = Expando<Uri>();
final Expando<Uri> _wsAddressExpando = Expando<Uri>();
@visibleForTesting
void setHttpAddress(Uri uri, vm_service.VmService vmService) {
if(vmService == null) {
return;
}
_httpAddressExpando[vmService] = uri;
}
@visibleForTesting
void setWsAddress(Uri uri, vm_service.VmService vmService) {
if(vmService == null) {
return;
}
_wsAddressExpando[vmService] = uri;
}