@@ -93,6 +93,7 @@ class DevHandler {
9393 this ._launchDevToolsInNewWindow,
9494 this ._sdkConfigurationProvider,
9595 ) {
96+ _validateDevToolsOptions ();
9697 _subs.add (buildResults.listen (_emitBuildResults));
9798 _listen ();
9899 if (_extensionBackend != null ) {
@@ -376,10 +377,12 @@ class DevHandler {
376377 debuggerStart: debuggerStart,
377378 devToolsStart: DateTime .now (),
378379 );
379- await _launchDevTools (
380- appServices.chromeProxyService.remoteDebugger,
381- _constructDevToolsUri (appServices.debugService.uri,
382- ideQueryParam: 'Dwds' ));
380+ if (_serveDevTools) {
381+ await _launchDevTools (
382+ appServices.chromeProxyService.remoteDebugger,
383+ _constructDevToolsUri (appServices.debugService.uri,
384+ ideQueryParam: 'Dwds' ));
385+ }
383386 }
384387
385388 Future <AppConnection > _handleConnectRequest (
@@ -533,29 +536,45 @@ class DevHandler {
533536 appServices.dwdsStats.updateLoadTime (
534537 debuggerStart: debuggerStart, devToolsStart: DateTime .now ());
535538
536- // If we only want the URI, this means we are embedding Dart DevTools in
537- // Chrome DevTools. Therefore return early.
538- if (devToolsRequest.uriOnly != null && devToolsRequest.uriOnly) {
539+ if (_serveDevTools) {
540+ // If we only want the URI, this means we are embedding Dart DevTools in
541+ // Chrome DevTools. Therefore return early.
542+ if (devToolsRequest.uriOnly != null && devToolsRequest.uriOnly) {
543+ final devToolsUri = _constructDevToolsUri (
544+ encodedUri,
545+ ideQueryParam: 'ChromeDevTools' ,
546+ );
547+ extensionDebugger.sendEvent ('dwds.devtoolsUri' , devToolsUri);
548+ return ;
549+ }
539550 final devToolsUri = _constructDevToolsUri (
540551 encodedUri,
541- ideQueryParam: 'ChromeDevTools ' ,
552+ ideQueryParam: 'DebugExtension ' ,
542553 );
543- extensionDebugger.sendEvent ('dwds.devtoolsUri' , devToolsUri);
544- return ;
554+ await _launchDevTools (extensionDebugger, devToolsUri);
545555 }
546- final devToolsUri = _constructDevToolsUri (
547- encodedUri,
548- ideQueryParam: 'DebugExtension' ,
549- );
550- await _launchDevTools (extensionDebugger, devToolsUri);
551556 });
552557 }
553558
559+ void _ensureServeDevtools () {
560+ if (! _serveDevTools) {
561+ _logger.severe ('Expected _serveDevTools' );
562+ throw StateError ('Expected _serveDevTools' );
563+ }
564+ }
565+
566+ void _validateDevToolsOptions () {
567+ if (_serveDevTools && _devTools == null ) {
568+ _logger.severe ('DevHandler: invalid DevTools options' );
569+ throw StateError ('DevHandler: invalid DevTools options' );
570+ }
571+ }
572+
554573 Future <void > _launchDevTools (
555574 RemoteDebugger remoteDebugger, String devToolsUri) async {
575+ _ensureServeDevtools ();
556576 // TODO(grouma) - We may want to log the debugServiceUri if we don't launch
557577 // DevTools so that users can manually connect.
558- if (! _serveDevTools) return ;
559578 emitEvent (DwdsEvent .devtoolsLaunch ());
560579 await remoteDebugger.sendCommand ('Target.createTarget' , params: {
561580 'newWindow' : _launchDevToolsInNewWindow,
@@ -567,6 +586,7 @@ class DevHandler {
567586 String debugServiceUri, {
568587 String ideQueryParam = '' ,
569588 }) {
589+ _ensureServeDevtools ();
570590 return Uri (
571591 scheme: 'http' ,
572592 host: _devTools.hostname,
0 commit comments