Fix launching DevTools with Flutter Web applications (#72110)

diff --git a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart
index c320c3e..5b50176 100644
--- a/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart
+++ b/packages/flutter_tools/lib/src/isolated/resident_web_runner.dart
@@ -808,6 +808,11 @@
       });
 
       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 @@
     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));
+  }
 }
diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart
index 1e8acae..ef5e4aa 100644
--- a/packages/flutter_tools/lib/src/vmservice.dart
+++ b/packages/flutter_tools/lib/src/vmservice.dart
@@ -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> _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;
 }