Add option to launch DevTools in the same Chrome window (#1481)
diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md
index 3726abf..b4a35b6 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 5454308..785db4a 100644
--- a/dwds/lib/dwds.dart
+++ b/dwds/lib/dwds.dart
@@ -110,8 +110,11 @@
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 @@
useSseForDebugBackend ??= true;
useSseForInjectedClient ??= true;
enableDevtoolsLaunch ??= true;
+ launchDevToolsInNewWindow ??= true;
spawnDds ??= true;
globalLoadStrategy = loadStrategy;
emitDebugEvents ??= true;
@@ -183,6 +187,7 @@
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 f4fad99..8c4b0cc 100644
--- a/dwds/lib/src/handlers/dev_handler.dart
+++ b/dwds/lib/src/handlers/dev_handler.dart
@@ -63,6 +63,7 @@
final bool _useSseForInjectedClient;
final bool _serveDevTools;
final bool _spawnDds;
+ final bool _launchDevToolsInNewWindow;
final ExpressionCompiler _expressionCompiler;
final DwdsInjector _injected;
@@ -87,7 +88,8 @@
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 @@
if (!_serveDevTools) return;
emitEvent(DwdsEvent.devtoolsLaunch());
await remoteDebugger.sendCommand('Target.createTarget', params: {
- 'newWindow': true,
+ 'newWindow': _launchDevToolsInNewWindow,
'url': Uri(
scheme: 'http',
host: _devTools.hostname,