Unverified Commit 5a36bddd authored by Ben Konyi's avatar Ben Konyi Committed by GitHub

Stop serving Observatory by default (#122419)

Observatory can still be enabled by providing `--serve-observatory` or
invoking the `_serveObservatory` private service RPC via web socket or
HTTP.

Related to https://github.com/dart-lang/sdk/issues/50233
parent 897e3db4
...@@ -937,7 +937,7 @@ class DebuggingOptions { ...@@ -937,7 +937,7 @@ class DebuggingOptions {
this.nativeNullAssertions = false, this.nativeNullAssertions = false,
this.enableImpeller = ImpellerStatus.platformDefault, this.enableImpeller = ImpellerStatus.platformDefault,
this.uninstallFirst = false, this.uninstallFirst = false,
this.serveObservatory = true, this.serveObservatory = false,
this.enableDartProfiling = true, this.enableDartProfiling = true,
this.enableEmbedderApi = false, this.enableEmbedderApi = false,
}) : debuggingEnabled = true; }) : debuggingEnabled = true;
......
...@@ -474,7 +474,6 @@ abstract class FlutterCommand extends Command<void> { ...@@ -474,7 +474,6 @@ abstract class FlutterCommand extends Command<void> {
void addServeObservatoryOptions({required bool verboseHelp}) { void addServeObservatoryOptions({required bool verboseHelp}) {
argParser.addFlag('serve-observatory', argParser.addFlag('serve-observatory',
hide: !verboseHelp, hide: !verboseHelp,
defaultsTo: true,
help: 'Serve the legacy Observatory developer tooling through the VM service.', help: 'Serve the legacy Observatory developer tooling through the VM service.',
); );
} }
......
...@@ -153,10 +153,6 @@ const FakeVmServiceRequest evictShader = FakeVmServiceRequest( ...@@ -153,10 +153,6 @@ const FakeVmServiceRequest evictShader = FakeVmServiceRequest(
} }
); );
const FakeVmServiceRequest serveObservatory = FakeVmServiceRequest(
method: '_serveObservatory',
);
final Uri testUri = Uri.parse('foo://bar'); final Uri testUri = Uri.parse('foo://bar');
void main() { void main() {
...@@ -196,7 +192,6 @@ void main() { ...@@ -196,7 +192,6 @@ void main() {
testUsingContext('ResidentRunner can attach to device successfully', () => testbed.run(() async { testUsingContext('ResidentRunner can attach to device successfully', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
]); ]);
final Completer<DebugConnectionInfo> futureConnectionInfo = Completer<DebugConnectionInfo>.sync(); final Completer<DebugConnectionInfo> futureConnectionInfo = Completer<DebugConnectionInfo>.sync();
...@@ -220,7 +215,6 @@ void main() { ...@@ -220,7 +215,6 @@ void main() {
.createSync(recursive: true); .createSync(recursive: true);
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
]); ]);
final FakeResidentCompiler residentCompiler = FakeResidentCompiler() final FakeResidentCompiler residentCompiler = FakeResidentCompiler()
...@@ -312,7 +306,6 @@ void main() { ...@@ -312,7 +306,6 @@ void main() {
.createSync(recursive: true); .createSync(recursive: true);
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
]); ]);
final FakeResidentCompiler residentCompiler = FakeResidentCompiler() final FakeResidentCompiler residentCompiler = FakeResidentCompiler()
...@@ -337,7 +330,6 @@ void main() { ...@@ -337,7 +330,6 @@ void main() {
testUsingContext('ResidentRunner can attach to device successfully with --fast-start', () => testbed.run(() async { testUsingContext('ResidentRunner can attach to device successfully with --fast-start', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
FakeVmServiceRequest( FakeVmServiceRequest(
...@@ -406,7 +398,6 @@ void main() { ...@@ -406,7 +398,6 @@ void main() {
testUsingContext('ResidentRunner can handle an RPC exception from hot reload', () => testbed.run(() async { testUsingContext('ResidentRunner can handle an RPC exception from hot reload', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
]); ]);
...@@ -440,7 +431,6 @@ void main() { ...@@ -440,7 +431,6 @@ void main() {
testUsingContext('ResidentRunner fails its operation if the device initialization is not complete', () => testbed.run(() async { testUsingContext('ResidentRunner fails its operation if the device initialization is not complete', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
]); ]);
final Completer<DebugConnectionInfo> futureConnectionInfo = Completer<DebugConnectionInfo>.sync(); final Completer<DebugConnectionInfo> futureConnectionInfo = Completer<DebugConnectionInfo>.sync();
...@@ -462,7 +452,6 @@ void main() { ...@@ -462,7 +452,6 @@ void main() {
testUsingContext('ResidentRunner can handle an reload-barred exception from hot reload', () => testbed.run(() async { testUsingContext('ResidentRunner can handle an reload-barred exception from hot reload', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
]); ]);
...@@ -498,7 +487,6 @@ void main() { ...@@ -498,7 +487,6 @@ void main() {
testUsingContext('ResidentRunner reports hot reload event with null safety analytics', () => testbed.run(() async { testUsingContext('ResidentRunner reports hot reload event with null safety analytics', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
]); ]);
...@@ -546,7 +534,6 @@ void main() { ...@@ -546,7 +534,6 @@ void main() {
testUsingContext('ResidentRunner does not reload sources if no sources changed', () => testbed.run(() async { testUsingContext('ResidentRunner does not reload sources if no sources changed', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
FakeVmServiceRequest( FakeVmServiceRequest(
...@@ -591,7 +578,6 @@ void main() { ...@@ -591,7 +578,6 @@ void main() {
testUsingContext('ResidentRunner reports error with missing entrypoint file', () => testbed.run(() async { testUsingContext('ResidentRunner reports error with missing entrypoint file', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
FakeVmServiceRequest( FakeVmServiceRequest(
...@@ -652,7 +638,6 @@ void main() { ...@@ -652,7 +638,6 @@ void main() {
testUsingContext('ResidentRunner resets compilation time on reload reject', () => testbed.run(() async { testUsingContext('ResidentRunner resets compilation time on reload reject', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
FakeVmServiceRequest( FakeVmServiceRequest(
...@@ -717,7 +702,6 @@ void main() { ...@@ -717,7 +702,6 @@ void main() {
testUsingContext('ResidentRunner can send target platform to analytics from hot reload', () => testbed.run(() async { testUsingContext('ResidentRunner can send target platform to analytics from hot reload', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
FakeVmServiceRequest( FakeVmServiceRequest(
...@@ -781,7 +765,6 @@ void main() { ...@@ -781,7 +765,6 @@ void main() {
testUsingContext('ResidentRunner can perform fast reassemble', () => testbed.run(() async { testUsingContext('ResidentRunner can perform fast reassemble', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
FakeVmServiceRequest( FakeVmServiceRequest(
method: 'getVM', method: 'getVM',
jsonResponse: fakeVM.toJson(), jsonResponse: fakeVM.toJson(),
...@@ -872,7 +855,6 @@ void main() { ...@@ -872,7 +855,6 @@ void main() {
testUsingContext('ResidentRunner reports hot reload time details', () => testbed.run(() async { testUsingContext('ResidentRunner reports hot reload time details', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
FakeVmServiceRequest( FakeVmServiceRequest(
method: 'getVM', method: 'getVM',
jsonResponse: fakeVM.toJson(), jsonResponse: fakeVM.toJson(),
...@@ -962,7 +944,6 @@ void main() { ...@@ -962,7 +944,6 @@ void main() {
testUsingContext('ResidentRunner can send target platform to analytics from full restart', () => testbed.run(() async { testUsingContext('ResidentRunner can send target platform to analytics from full restart', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
FakeVmServiceRequest( FakeVmServiceRequest(
...@@ -1023,7 +1004,6 @@ void main() { ...@@ -1023,7 +1004,6 @@ void main() {
testUsingContext('ResidentRunner can remove breakpoints and exception-pause-mode from paused isolate during hot restart', () => testbed.run(() async { testUsingContext('ResidentRunner can remove breakpoints and exception-pause-mode from paused isolate during hot restart', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
FakeVmServiceRequest( FakeVmServiceRequest(
...@@ -1097,7 +1077,6 @@ void main() { ...@@ -1097,7 +1077,6 @@ void main() {
testUsingContext('ResidentRunner will alternative the name of the dill file uploaded for a hot restart', () => testbed.run(() async { testUsingContext('ResidentRunner will alternative the name of the dill file uploaded for a hot restart', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
listViews, listViews,
FakeVmServiceRequest( FakeVmServiceRequest(
...@@ -1220,7 +1199,6 @@ void main() { ...@@ -1220,7 +1199,6 @@ void main() {
testUsingContext('ResidentRunner Can handle an RPC exception from hot restart', () => testbed.run(() async { testUsingContext('ResidentRunner Can handle an RPC exception from hot restart', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
]); ]);
final Completer<DebugConnectionInfo> futureConnectionInfo = Completer<DebugConnectionInfo>.sync(); final Completer<DebugConnectionInfo> futureConnectionInfo = Completer<DebugConnectionInfo>.sync();
...@@ -1653,7 +1631,6 @@ flutter: ...@@ -1653,7 +1631,6 @@ flutter:
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
listViews, listViews,
serveObservatory,
]); ]);
residentRunner = ColdRunner( residentRunner = ColdRunner(
<FlutterDevice>[ <FlutterDevice>[
...@@ -1696,7 +1673,6 @@ flutter: ...@@ -1696,7 +1673,6 @@ flutter:
testUsingContext('HotRunner writes vm service file when providing debugging option', () => testbed.run(() async { testUsingContext('HotRunner writes vm service file when providing debugging option', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
], wsAddress: testUri); ], wsAddress: testUri);
globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true);
...@@ -1719,7 +1695,6 @@ flutter: ...@@ -1719,7 +1695,6 @@ flutter:
testUsingContext('HotRunner copies compiled app.dill to cache during startup', () => testbed.run(() async { testUsingContext('HotRunner copies compiled app.dill to cache during startup', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
], wsAddress: testUri); ], wsAddress: testUri);
globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true);
...@@ -1748,7 +1723,6 @@ flutter: ...@@ -1748,7 +1723,6 @@ flutter:
testUsingContext('HotRunner copies compiled app.dill to cache during startup with dart defines', () => testbed.run(() async { testUsingContext('HotRunner copies compiled app.dill to cache during startup with dart defines', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
], wsAddress: testUri); ], wsAddress: testUri);
globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true);
...@@ -1779,7 +1753,6 @@ flutter: ...@@ -1779,7 +1753,6 @@ flutter:
testUsingContext('HotRunner copies compiled app.dill to cache during startup with null safety', () => testbed.run(() async { testUsingContext('HotRunner copies compiled app.dill to cache during startup with null safety', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
], wsAddress: testUri); ], wsAddress: testUri);
globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true);
...@@ -1810,7 +1783,6 @@ flutter: ...@@ -1810,7 +1783,6 @@ flutter:
testUsingContext('HotRunner copies compiled app.dill to cache during startup with track-widget-creation', () => testbed.run(() async { testUsingContext('HotRunner copies compiled app.dill to cache during startup with track-widget-creation', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
], wsAddress: testUri); ], wsAddress: testUri);
globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true);
...@@ -1834,7 +1806,6 @@ flutter: ...@@ -1834,7 +1806,6 @@ flutter:
testUsingContext('HotRunner does not copy app.dill if a dillOutputPath is given', () => testbed.run(() async { testUsingContext('HotRunner does not copy app.dill if a dillOutputPath is given', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
], wsAddress: testUri); ], wsAddress: testUri);
globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true);
...@@ -1858,7 +1829,6 @@ flutter: ...@@ -1858,7 +1829,6 @@ flutter:
testUsingContext('HotRunner copies compiled app.dill to cache during startup with --track-widget-creation', () => testbed.run(() async { testUsingContext('HotRunner copies compiled app.dill to cache during startup with --track-widget-creation', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
], wsAddress: testUri); ], wsAddress: testUri);
globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true);
...@@ -1886,7 +1856,6 @@ flutter: ...@@ -1886,7 +1856,6 @@ flutter:
testUsingContext('HotRunner calls device dispose', () => testbed.run(() async { testUsingContext('HotRunner calls device dispose', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
], wsAddress: testUri); ], wsAddress: testUri);
globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true);
...@@ -1907,7 +1876,6 @@ flutter: ...@@ -1907,7 +1876,6 @@ flutter:
testUsingContext('HotRunner handles failure to write vmservice file', () => testbed.run(() async { testUsingContext('HotRunner handles failure to write vmservice file', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
listViews, listViews,
]); ]);
globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true);
...@@ -1932,7 +1900,6 @@ flutter: ...@@ -1932,7 +1900,6 @@ flutter:
testUsingContext('ColdRunner writes vm service file when providing debugging option', () => testbed.run(() async { testUsingContext('ColdRunner writes vm service file when providing debugging option', () => testbed.run(() async {
fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[ fakeVmServiceHost = FakeVmServiceHost(requests: <VmServiceExpectation>[
listViews, listViews,
serveObservatory,
], wsAddress: testUri); ], wsAddress: testUri);
globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true); globals.fs.file(globals.fs.path.join('lib', 'main.dart')).createSync(recursive: true);
residentRunner = ColdRunner( residentRunner = ColdRunner(
......
...@@ -197,24 +197,22 @@ void main() { ...@@ -197,24 +197,22 @@ void main() {
testWithoutContext('enables Observatory on run', () async { testWithoutContext('enables Observatory on run', () async {
await flutterRun.run( await flutterRun.run(
withDebugger: true, withDebugger: true,
// TODO(bkonyi): uncomment once Observatory is disabled by default serveObservatory: true,
// See https://github.com/dart-lang/sdk/issues/50233
// serveObservatory: true,
); );
expect(await isObservatoryAvailable(), true); expect(await isObservatoryAvailable(), true);
}); });
testWithoutContext('enables Observatory on attach', () async { testWithoutContext('enables Observatory on attach', () async {
await flutterRun.run(withDebugger: true, serveObservatory: false); await flutterRun.run(withDebugger: true);
// Bail out if Observatory is still served by default in the VM. // Bail out if Observatory is still served by default in the VM.
// TODO(bkonyi): replace this with the following once Observatory is disabled in the VM:
// expect(await isObservatoryAvailable(), isFalse);
if (await isObservatoryAvailable()) { if (await isObservatoryAvailable()) {
return; return;
} }
await flutterAttach.attach( await flutterAttach.attach(
flutterRun.vmServicePort!, flutterRun.vmServicePort!,
// TODO(bkonyi): uncomment once Observatory is disabled by default serveObservatory: true,
// See https://github.com/dart-lang/sdk/issues/50233
// serveObservatory: true,
); );
expect(await isObservatoryAvailable(), true); expect(await isObservatoryAvailable(), true);
}); });
......
...@@ -505,7 +505,7 @@ class FlutterRunTestDriver extends FlutterTestDriver { ...@@ -505,7 +505,7 @@ class FlutterRunTestDriver extends FlutterTestDriver {
bool expressionEvaluation = true, bool expressionEvaluation = true,
bool structuredErrors = false, bool structuredErrors = false,
bool singleWidgetReloads = false, bool singleWidgetReloads = false,
bool serveObservatory = true, bool serveObservatory = false,
String? script, String? script,
List<String>? additionalCommandArgs, List<String>? additionalCommandArgs,
}) async { }) async {
...@@ -545,7 +545,7 @@ class FlutterRunTestDriver extends FlutterTestDriver { ...@@ -545,7 +545,7 @@ class FlutterRunTestDriver extends FlutterTestDriver {
bool startPaused = false, bool startPaused = false,
bool pauseOnExceptions = false, bool pauseOnExceptions = false,
bool singleWidgetReloads = false, bool singleWidgetReloads = false,
bool serveObservatory = true, bool serveObservatory = false,
List<String>? additionalCommandArgs, List<String>? additionalCommandArgs,
}) async { }) async {
_attachPort = port; _attachPort = port;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment