@@ -6,7 +6,7 @@ import 'dart:async';
66import 'dart:convert' ;
77
88import 'package:build_daemon/data/build_status.dart' ;
9- import 'package:build_daemon/data/serializers.dart' ;
9+ import 'package:build_daemon/data/serializers.dart' as build_daemon ;
1010import 'package:logging/logging.dart' ;
1111import 'package:pedantic/pedantic.dart' ;
1212import 'package:shelf/shelf.dart' ;
@@ -16,13 +16,13 @@ import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart';
1616import '../../data/connect_request.dart' ;
1717import '../../data/devtools_request.dart' ;
1818import '../../data/isolate_events.dart' ;
19- import '../../data/run_request.dart' ;
20- import '../../data/serializers.dart' as dwds;
21- import '../../service.dart' ;
22- import '../app_debug_services.dart' ;
19+ import '../../data/serializers.dart' ;
20+ import '../connections/app_connection.dart' ;
2321import '../devtools.dart' ;
2422import '../dwds_vm_client.dart' ;
2523import '../handlers/asset_handler.dart' ;
24+ import '../services/app_debug_services.dart' ;
25+ import '../services/debug_service.dart' ;
2626
2727/// SSE handler to enable development features like hot reload and
2828/// opening DevTools.
@@ -33,14 +33,14 @@ class DevHandler {
3333 final DevTools _devTools;
3434 final AssetHandler _assetHandler;
3535 final String _hostname;
36- final _connectedApps = StreamController <DevConnection >.broadcast ();
36+ final _connectedApps = StreamController <AppConnection >.broadcast ();
3737 final _servicesByAppId = < String , Future <AppDebugServices >> {};
3838 final Stream <BuildResult > buildResults;
3939 final bool _verbose;
4040 final void Function (Level , String ) _logWriter;
4141 final Future <ChromeConnection > Function () _chromeConnection;
4242
43- Stream <DevConnection > get connectedApps => _connectedApps.stream;
43+ Stream <AppConnection > get connectedApps => _connectedApps.stream;
4444
4545 DevHandler (
4646 this ._chromeConnection,
@@ -73,7 +73,8 @@ class DevHandler {
7373 void _emitBuildResults (BuildResult result) {
7474 if (result.status != BuildStatus .succeeded) return ;
7575 for (var connection in _connections) {
76- connection.sink.add (jsonEncode (serializers.serialize (result)));
76+ connection.sink
77+ .add (jsonEncode (build_daemon.serializers.serialize (result)));
7778 }
7879 }
7980
@@ -104,20 +105,21 @@ class DevHandler {
104105 _connections.add (connection);
105106 String appId;
106107 connection.stream.listen ((data) async {
107- var message = dwds. serializers.deserialize (jsonDecode (data));
108+ var message = serializers.deserialize (jsonDecode (data));
108109 if (message is DevToolsRequest ) {
109110 if (_devTools == null ) {
110- connection.sink. add ( jsonEncode (dwds.serializers. serialize (
111- DevToolsResponse ((b) => b
111+ connection.sink
112+ . add ( jsonEncode (serializers. serialize ( DevToolsResponse ((b) => b
112113 ..success = false
113- ..error =
114- 'Debugging is not enabled, please pass the --debug flag '
115- 'when starting webdev .' ))));
114+ ..error = 'Debugging is not enabled. \n\n '
115+ 'If you are using webdev please pass the --debug flag. \n '
116+ 'Otherwise check the docs for the tool you are using .' ))));
116117 return ;
117118 }
119+
118120 if (appId != message.appId) {
119- connection.sink.add (jsonEncode (dwds. serializers.serialize (
120- DevToolsResponse ( (b) => b
121+ connection.sink.add (jsonEncode (serializers.serialize ( DevToolsResponse (
122+ (b) => b
121123 ..success = false
122124 ..error =
123125 'App ID has changed since the connection was established. '
@@ -131,22 +133,22 @@ class DevHandler {
131133 appServices =
132134 await loadAppServices (message.appId, message.instanceId);
133135 } catch (_) {
134- connection.sink. add (
135- jsonEncode (dwds. serializers.serialize (DevToolsResponse ((b) => b
136+ connection.sink
137+ . add ( jsonEncode (serializers.serialize (DevToolsResponse ((b) => b
136138 ..success = false
137- ..error = 'Webdev was unable to connect debug services to your '
139+ ..error = 'Unable to connect debug services to your '
138140 'application. Most likely this means you are trying to '
139141 'load in a different Chrome window than was launched by '
140- 'webdev .' ))));
142+ 'your development tool .' ))));
141143 return ;
142144 }
143145
144146 // Check if we are already running debug services for a different
145147 // instance of this app.
146148 if (appServices.connectedInstanceId != null &&
147149 appServices.connectedInstanceId != message.instanceId) {
148- connection.sink.add (jsonEncode (dwds. serializers.serialize (
149- DevToolsResponse ( (b) => b
150+ connection.sink.add (jsonEncode (serializers.serialize ( DevToolsResponse (
151+ (b) => b
150152 ..success = false
151153 ..error =
152154 'This app is already being debugged in a different tab. '
@@ -164,8 +166,8 @@ class DevHandler {
164166 await loadAppServices (message.appId, message.instanceId);
165167 }
166168
167- connection.sink.add (jsonEncode (dwds.serializers
168- .serialize (DevToolsResponse ((b) => b..success = true ))));
169+ connection.sink.add (jsonEncode (
170+ serializers .serialize (DevToolsResponse ((b) => b..success = true ))));
169171
170172 appServices.connectedInstanceId = message.instanceId;
171173 await appServices.chromeProxyService.tabConnection
@@ -195,7 +197,7 @@ class DevHandler {
195197 }
196198 }
197199
198- _connectedApps.add (DevConnection (message, connection));
200+ _connectedApps.add (AppConnection (message, connection));
199201 } else if (message is IsolateExit ) {
200202 (await loadAppServices (message.appId, message.instanceId))
201203 ? .chromeProxyService
@@ -257,18 +259,3 @@ Future<bool> _isCorrectTab(
257259 await tabConnection.runtime.evaluate (r'window["$dartAppInstanceId"];' );
258260 return result.value == instanceId;
259261}
260-
261- class DevConnection {
262- final ConnectRequest request;
263- final SseConnection _connection;
264- var _isStarted = false ;
265- DevConnection (this .request, this ._connection);
266-
267- void runMain () {
268- if (! _isStarted) {
269- _connection.sink
270- .add (jsonEncode (dwds.serializers.serialize (RunRequest ())));
271- }
272- _isStarted = true ;
273- }
274- }
0 commit comments