Unverified Commit 5d201a35 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] allow hiding web server device, provide flags to re-enable (#71434)

parent 0a08f8af
......@@ -18,6 +18,7 @@ import '../cache.dart';
import '../convert.dart';
import '../globals.dart' as globals;
import '../tester/flutter_tester.dart';
import '../web/web_device.dart';
const String kFlutterRootEnvironmentVariableName = 'FLUTTER_ROOT'; // should point to //flutter/ (root of flutter/flutter repo)
const String kFlutterEngineEnvironmentVariableName = 'FLUTTER_ENGINE'; // should point to //engine/src/ (root of flutter/engine repo)
......@@ -109,6 +110,11 @@ class FlutterCommandRunner extends CommandRunner<void> {
hide: !verboseHelp,
help: "List the special 'flutter-tester' device in device listings. "
'This headless device is used to\ntest Flutter tooling.');
argParser.addFlag('show-web-server-device',
negatable: false,
hide: !verboseHelp,
help: "List the special 'web-server' device in device listings. "
);
}
@override
......@@ -204,6 +210,10 @@ class FlutterCommandRunner extends CommandRunner<void> {
topLevelResults['device-id'] == FlutterTesterDevices.kTesterDeviceId) {
FlutterTesterDevices.showFlutterTesterDevice = true;
}
if (topLevelResults['show-web-server-device'] as bool ||
topLevelResults['device-id'] == WebServerDevice.kWebServerDeviceId) {
WebServerDevice.showWebServerDevice = true;
}
// Set up the tooling configuration.
final EngineBuildPaths engineBuildPaths = await globals.localEngineLocator.findEnginePath(
......
......@@ -345,7 +345,8 @@ class WebDevices extends PollingDeviceDiscovery {
return <Device>[];
}
return <Device>[
_webServerDevice,
if (WebServerDevice.showWebServerDevice)
_webServerDevice,
if (_chromeDevice.isSupported())
_chromeDevice,
if (await _edgeDevice?._meetsVersionConstraint() ?? false)
......@@ -375,6 +376,9 @@ class WebServerDevice extends Device {
ephemeral: false,
);
static const String kWebServerDeviceId = 'web-server';
static bool showWebServerDevice = true;
final Logger _logger;
@override
......
......@@ -159,7 +159,8 @@ void main() {
isNot(contains(isA<MicrosoftEdgeDevice>())));
});
testWithoutContext('Web Server device is listed by default', () async {
testWithoutContext('Web Server device is listed if enabled via showWebServerDevice', () async {
WebServerDevice.showWebServerDevice = true;
final WebDevices webDevices = WebDevices(
featureFlags: TestFeatureFlags(isWebEnabled: true),
fileSystem: MemoryFileSystem.test(),
......@@ -175,6 +176,23 @@ void main() {
contains(isA<WebServerDevice>()));
});
testWithoutContext('Web Server device is not listed if disabled via showWebServerDevice', () async {
WebServerDevice.showWebServerDevice = false;
final WebDevices webDevices = WebDevices(
featureFlags: TestFeatureFlags(isWebEnabled: true),
fileSystem: MemoryFileSystem.test(),
logger: BufferLogger.test(),
platform: FakePlatform(
operatingSystem: 'linux',
environment: <String, String>{}
),
processManager: FakeProcessManager.any(),
);
expect(await webDevices.pollingGetDevices(),
isNot(contains(isA<WebServerDevice>())));
});
testWithoutContext('Chrome invokes version command on non-Windows platforms', () async {
final FakeProcessManager processManager = FakeProcessManager.list(<FakeCommand>[
const FakeCommand(
......
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