Allow overriding SSE to WS when using debug extension (#839)

* Allow overriding SSE to WS when using debug extension
diff --git a/dwds/CHANGELOG.md b/dwds/CHANGELOG.md
index 6cf6506..2fb1471 100644
--- a/dwds/CHANGELOG.md
+++ b/dwds/CHANGELOG.md
@@ -1,3 +1,8 @@
+## 0.8.4
+
+- Support using WebSockets for the debug (VM Service) proxy by passing
+  `useSseForDebugProxy: false` to `Dwds.start()`
+
 ## 0.8.3
 
 - Support nesting Dart applications in iframes.
diff --git a/dwds/lib/dwds.dart b/dwds/lib/dwds.dart
index 8b2fe05..8cc88ef 100644
--- a/dwds/lib/dwds.dart
+++ b/dwds/lib/dwds.dart
@@ -63,6 +63,7 @@
     @required bool enableDebugging,
     String hostname,
     ReloadConfiguration reloadConfiguration,
+    bool useSseForDebugProxy,
     bool serveDevTools,
     LogWriter logWriter,
     bool verbose,
@@ -75,6 +76,7 @@
     reloadConfiguration ??= ReloadConfiguration.none;
     enableDebugging ??= true;
     enableDebugExtension ??= false;
+    useSseForDebugProxy ??= true;
     serveDevTools ??= true;
     logWriter ??= (level, message) => print(message);
     verbose ??= false;
@@ -121,6 +123,7 @@
       extensionBackend,
       urlEncoder,
       restoreBreakpoints,
+      useSseForDebugProxy,
       serveDevTools,
     );
     cascade = cascade.add(devHandler.handler).add(assetHandler.handler);
diff --git a/dwds/lib/src/handlers/dev_handler.dart b/dwds/lib/src/handlers/dev_handler.dart
index 5a3cbee..8f0039f 100644
--- a/dwds/lib/src/handlers/dev_handler.dart
+++ b/dwds/lib/src/handlers/dev_handler.dart
@@ -54,6 +54,7 @@
       StreamController<DebugConnection>();
   final UrlEncoder _urlEncoder;
   final bool _restoreBreakpoints;
+  final bool _useSseForDebugProxy;
   final bool _serveDevTools;
 
   /// Null until [close] is called.
@@ -74,6 +75,7 @@
     this._extensionBackend,
     this._urlEncoder,
     this._restoreBreakpoints,
+    this._useSseForDebugProxy,
     this._serveDevTools,
   ) {
     _sub = buildResults.listen(_emitBuildResults);
@@ -378,7 +380,7 @@
                       'VmService proxy responded with an error:\n$response');
                 }
               : null,
-          useSse: true,
+          useSse: _useSseForDebugProxy,
         );
         var appServices =
             await _createAppDebugServices(devToolsRequest.appId, debugService);
diff --git a/dwds/lib/src/version.dart b/dwds/lib/src/version.dart
index 3e427d4..075a2c3 100644
--- a/dwds/lib/src/version.dart
+++ b/dwds/lib/src/version.dart
@@ -1,2 +1,2 @@
 // Generated code. Do not modify.
-const packageVersion = '0.8.3';
+const packageVersion = '0.8.4';
diff --git a/dwds/pubspec.yaml b/dwds/pubspec.yaml
index e4d362b..03acffd 100644
--- a/dwds/pubspec.yaml
+++ b/dwds/pubspec.yaml
@@ -1,5 +1,5 @@
 name: dwds
-version: 0.8.3
+version: 0.8.4
 author: Dart Team <misc@dartlang.org>
 homepage: https://github.com/dart-lang/webdev/tree/master/dwds
 description: >-