diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md index 3726abffc..b4a35b692 100644 --- a/dwds/CHANGELOG.md +++ b/dwds/CHANGELOG.md @@ -19,6 +19,8 @@ - Add `emitDebugEvents` argument to `Dwds.start` to suppress emitting debug events from the injected client. - Replace `sdkRoot` parameter by `sdkDir` in `ExpressionCompilerService`. +- Adds an additional parameter to launch Dart DevTools in the same window as + the connected Dart app. ## 11.5.1 diff --git a/dwds/lib/dwds.dart b/dwds/lib/dwds.dart index 5454308c1..785db4a8a 100644 --- a/dwds/lib/dwds.dart +++ b/dwds/lib/dwds.dart @@ -110,8 +110,11 @@ class Dwds { bool useSseForInjectedClient, UrlEncoder urlEncoder, bool spawnDds, + // TODO(elliette): DevTools is inconsistently capitalized throughout this + // file. Change all occurances of devtools/Devtools to devTools/DevTools. bool enableDevtoolsLaunch, DevtoolsLauncher devtoolsLauncher, + bool launchDevToolsInNewWindow, Uri sdkDir, Uri librariesPath, bool emitDebugEvents, @@ -123,6 +126,7 @@ class Dwds { useSseForDebugBackend ??= true; useSseForInjectedClient ??= true; enableDevtoolsLaunch ??= true; + launchDevToolsInNewWindow ??= true; spawnDds ??= true; globalLoadStrategy = loadStrategy; emitDebugEvents ??= true; @@ -183,6 +187,7 @@ class Dwds { expressionCompiler, injected, spawnDds, + launchDevToolsInNewWindow, ); return Dwds._( diff --git a/dwds/lib/src/handlers/dev_handler.dart b/dwds/lib/src/handlers/dev_handler.dart index f4fad9957..8c4b0ccbf 100644 --- a/dwds/lib/src/handlers/dev_handler.dart +++ b/dwds/lib/src/handlers/dev_handler.dart @@ -63,6 +63,7 @@ class DevHandler { final bool _useSseForInjectedClient; final bool _serveDevTools; final bool _spawnDds; + final bool _launchDevToolsInNewWindow; final ExpressionCompiler _expressionCompiler; final DwdsInjector _injected; @@ -87,7 +88,8 @@ class DevHandler { this._serveDevTools, this._expressionCompiler, this._injected, - this._spawnDds) { + this._spawnDds, + this._launchDevToolsInNewWindow) { _subs.add(buildResults.listen(_emitBuildResults)); _listen(); if (_extensionBackend != null) { @@ -525,7 +527,7 @@ class DevHandler { if (!_serveDevTools) return; emitEvent(DwdsEvent.devtoolsLaunch()); await remoteDebugger.sendCommand('Target.createTarget', params: { - 'newWindow': true, + 'newWindow': _launchDevToolsInNewWindow, 'url': Uri( scheme: 'http', host: _devTools.hostname,