Revert "Use FlutterFeatures to configure web and desktop devices (#36465)" (#36654)
This reverts commit bd52a78c7162e26721a383b76bac53744e5656a7.
diff --git a/packages/flutter_tools/lib/src/commands/assemble.dart b/packages/flutter_tools/lib/src/commands/assemble.dart
index 9919e65..e5a6659 100644
--- a/packages/flutter_tools/lib/src/commands/assemble.dart
+++ b/packages/flutter_tools/lib/src/commands/assemble.dart
@@ -30,6 +30,8 @@
@override
String get name => 'assemble';
+ @override
+ bool get isExperimental => true;
@override
Future<FlutterCommandResult> runCommand() {
@@ -125,6 +127,9 @@
String get name => 'run';
@override
+ bool get isExperimental => true;
+
+ @override
Future<FlutterCommandResult> runCommand() async {
final BuildResult result = await buildSystem.build(targetName, environment, BuildSystemConfig(
resourcePoolSize: argResults['resource-pool-size'],
@@ -151,6 +156,9 @@
String get name => 'describe';
@override
+ bool get isExperimental => true;
+
+ @override
Future<FlutterCommandResult> runCommand() {
try {
printStatus(
@@ -173,6 +181,9 @@
String get name => 'inputs';
@override
+ bool get isExperimental => true;
+
+ @override
Future<FlutterCommandResult> runCommand() {
try {
final List<Map<String, Object>> results = buildSystem.describe(targetName, environment);
@@ -199,6 +210,9 @@
String get name => 'build-dir';
@override
+ bool get isExperimental => true;
+
+ @override
Future<FlutterCommandResult> runCommand() {
printStatus(environment.buildDir.path);
return null;
diff --git a/packages/flutter_tools/lib/src/commands/build_bundle.dart b/packages/flutter_tools/lib/src/commands/build_bundle.dart
index d15cfa4..ef2235f 100644
--- a/packages/flutter_tools/lib/src/commands/build_bundle.dart
+++ b/packages/flutter_tools/lib/src/commands/build_bundle.dart
@@ -8,10 +8,10 @@
import '../base/file_system.dart';
import '../build_info.dart';
import '../bundle.dart';
-import '../features.dart';
import '../project.dart';
import '../reporting/usage.dart';
import '../runner/flutter_command.dart' show FlutterOptions, FlutterCommandResult;
+import '../version.dart';
import 'build.dart';
class BuildBundleCommand extends BuildSubCommand {
@@ -98,21 +98,13 @@
if (platform == null) {
throwToolExit('Unknown platform: $targetPlatform');
}
- // Check for target platforms that are only allowed via feature flags.
+ // Check for target platforms that are only allowed on unstable Flutter.
switch (platform) {
case TargetPlatform.darwin_x64:
- if (!featureFlags.isMacOSEnabled) {
- throwToolExit('macOS is not a supported target platform.');
- }
- break;
case TargetPlatform.windows_x64:
- if (!featureFlags.isWindowsEnabled) {
- throwToolExit('Windows is not a supported target platform.');
- }
- break;
case TargetPlatform.linux_x64:
- if (!featureFlags.isLinuxEnabled) {
- throwToolExit('Linux is not a supported target platform.');
+ if (!FlutterVersion.instance.isMaster) {
+ throwToolExit('$targetPlatform is not supported on stable Flutter.');
}
break;
default:
diff --git a/packages/flutter_tools/lib/src/commands/build_fuchsia.dart b/packages/flutter_tools/lib/src/commands/build_fuchsia.dart
index 39e0a84..473f943 100644
--- a/packages/flutter_tools/lib/src/commands/build_fuchsia.dart
+++ b/packages/flutter_tools/lib/src/commands/build_fuchsia.dart
@@ -25,6 +25,9 @@
final String name = 'fuchsia';
@override
+ bool isExperimental = true;
+
+ @override
bool hidden = true;
@override
diff --git a/packages/flutter_tools/lib/src/commands/build_linux.dart b/packages/flutter_tools/lib/src/commands/build_linux.dart
index e75e411..4175b6d 100644
--- a/packages/flutter_tools/lib/src/commands/build_linux.dart
+++ b/packages/flutter_tools/lib/src/commands/build_linux.dart
@@ -8,7 +8,6 @@
import '../base/platform.dart';
import '../build_info.dart';
import '../cache.dart';
-import '../features.dart';
import '../linux/build_linux.dart';
import '../project.dart';
import '../runner/flutter_command.dart' show FlutterCommandResult;
@@ -36,6 +35,9 @@
final String name = 'linux';
@override
+ bool isExperimental = true;
+
+ @override
bool hidden = true;
@override
@@ -52,9 +54,6 @@
Cache.releaseLockEarly();
final BuildInfo buildInfo = getBuildInfo();
final FlutterProject flutterProject = FlutterProject.current();
- if (!featureFlags.isLinuxEnabled) {
- throwToolExit('"build linux" is not currently supported.');
- }
if (!platform.isLinux) {
throwToolExit('"build linux" only supported on Linux hosts.');
}
diff --git a/packages/flutter_tools/lib/src/commands/build_macos.dart b/packages/flutter_tools/lib/src/commands/build_macos.dart
index f871186..e773f42 100644
--- a/packages/flutter_tools/lib/src/commands/build_macos.dart
+++ b/packages/flutter_tools/lib/src/commands/build_macos.dart
@@ -8,7 +8,6 @@
import '../base/platform.dart';
import '../build_info.dart';
import '../cache.dart';
-import '../features.dart';
import '../macos/build_macos.dart';
import '../project.dart';
import '../runner/flutter_command.dart' show FlutterCommandResult;
@@ -36,6 +35,9 @@
final String name = 'macos';
@override
+ bool isExperimental = true;
+
+ @override
bool hidden = true;
@override
@@ -45,16 +47,13 @@
};
@override
- String get description => 'build the macOS desktop target.';
+ String get description => 'build the macOS desktop target (Experimental).';
@override
Future<FlutterCommandResult> runCommand() async {
Cache.releaseLockEarly();
final BuildInfo buildInfo = getBuildInfo();
final FlutterProject flutterProject = FlutterProject.current();
- if (!featureFlags.isMacOSEnabled) {
- throwToolExit('"build macos" is not currently supported.');
- }
if (!platform.isMacOS) {
throwToolExit('"build macos" only supported on macOS hosts.');
}
diff --git a/packages/flutter_tools/lib/src/commands/build_web.dart b/packages/flutter_tools/lib/src/commands/build_web.dart
index 575d1b0..32cea06 100644
--- a/packages/flutter_tools/lib/src/commands/build_web.dart
+++ b/packages/flutter_tools/lib/src/commands/build_web.dart
@@ -4,9 +4,7 @@
import 'dart:async';
-import '../base/common.dart';
import '../build_info.dart';
-import '../features.dart';
import '../project.dart';
import '../runner/flutter_command.dart'
show DevelopmentArtifact, FlutterCommandResult;
@@ -34,13 +32,13 @@
bool get hidden => true;
@override
- final String description = 'build a web application bundle.';
+ bool get isExperimental => true;
+
+ @override
+ final String description = '(EXPERIMENTAL) build a web application bundle.';
@override
Future<FlutterCommandResult> runCommand() async {
- if (!featureFlags.isWebEnabled) {
- throwToolExit('"build web" is not currently supported.');
- }
final FlutterProject flutterProject = FlutterProject.current();
final String target = argResults['target'];
final BuildInfo buildInfo = getBuildInfo();
diff --git a/packages/flutter_tools/lib/src/commands/build_windows.dart b/packages/flutter_tools/lib/src/commands/build_windows.dart
index e41de03..884d26f 100644
--- a/packages/flutter_tools/lib/src/commands/build_windows.dart
+++ b/packages/flutter_tools/lib/src/commands/build_windows.dart
@@ -8,7 +8,6 @@
import '../base/platform.dart';
import '../build_info.dart';
import '../cache.dart';
-import '../features.dart';
import '../project.dart';
import '../runner/flutter_command.dart' show FlutterCommandResult;
import '../windows/build_windows.dart';
@@ -36,6 +35,9 @@
final String name = 'windows';
@override
+ bool isExperimental = true;
+
+ @override
bool hidden = true;
@override
@@ -45,16 +47,13 @@
};
@override
- String get description => 'build the desktop Windows target.';
+ String get description => 'build the desktop Windows target (Experimental).';
@override
Future<FlutterCommandResult> runCommand() async {
Cache.releaseLockEarly();
final FlutterProject flutterProject = FlutterProject.current();
final BuildInfo buildInfo = getBuildInfo();
- if (!featureFlags.isWindowsEnabled) {
- throwToolExit('"build windows" is not currently supported.');
- }
if (!platform.isWindows) {
throwToolExit('"build windows" only supported on Windows hosts.');
}
diff --git a/packages/flutter_tools/lib/src/commands/create.dart b/packages/flutter_tools/lib/src/commands/create.dart
index 875beae..17458ee 100644
--- a/packages/flutter_tools/lib/src/commands/create.dart
+++ b/packages/flutter_tools/lib/src/commands/create.dart
@@ -20,7 +20,6 @@
import '../convert.dart';
import '../dart/pub.dart';
import '../doctor.dart';
-import '../features.dart';
import '../globals.dart';
import '../project.dart';
import '../reporting/usage.dart';
@@ -614,7 +613,7 @@
'iosLanguage': iosLanguage,
'flutterRevision': FlutterVersion.instance.frameworkRevision,
'flutterChannel': FlutterVersion.instance.channel,
- 'web': web && featureFlags.isWebEnabled,
+ 'web': web && FlutterVersion.instance.isMaster
};
}
diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart
index 0254e3e..91de004 100644
--- a/packages/flutter_tools/lib/src/commands/run.dart
+++ b/packages/flutter_tools/lib/src/commands/run.dart
@@ -13,7 +13,6 @@
import '../build_info.dart';
import '../cache.dart';
import '../device.dart';
-import '../features.dart';
import '../globals.dart';
import '../macos/xcode.dart';
import '../project.dart';
@@ -411,11 +410,11 @@
);
flutterDevices.add(flutterDevice);
}
- // Only support "web mode" with a single web device due to resident runner
- // refactoring required otherwise.
- final bool webMode = featureFlags.isWebEnabled &&
- devices.length == 1 &&
- await devices.single.targetPlatform == TargetPlatform.web_javascript;
+ // Only support "web mode" on non-stable branches with a single web device
+ // in a "hot mode".
+ final bool webMode = FlutterVersion.instance.isMaster
+ && devices.length == 1
+ && await devices.single.targetPlatform == TargetPlatform.web_javascript;
ResidentRunner runner;
final String applicationBinaryPath = argResults['use-application-binary'];
diff --git a/packages/flutter_tools/lib/src/commands/unpack.dart b/packages/flutter_tools/lib/src/commands/unpack.dart
index 481c326..799815e 100644
--- a/packages/flutter_tools/lib/src/commands/unpack.dart
+++ b/packages/flutter_tools/lib/src/commands/unpack.dart
@@ -70,6 +70,9 @@
bool get hidden => true;
@override
+ bool get isExperimental => true;
+
+ @override
Future<Set<DevelopmentArtifact>> get requiredArtifacts async {
final Set<DevelopmentArtifact> result = <DevelopmentArtifact>{
DevelopmentArtifact.universal,