Skip to content

Commit 98a52a8

Browse files
authored
Add feature flag scaffolding to support experiments restricted to a specific Flutter channel (#9440)
1 parent 54f2f15 commit 98a52a8

File tree

72 files changed

+583
-366
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+583
-366
lines changed

packages/devtools_app/lib/src/app.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class DevToolsApp extends StatefulWidget {
8686
/// flutter route parameters.
8787
class DevToolsAppState extends State<DevToolsApp> with AutoDisposeMixin {
8888
List<Screen> get _screens {
89-
if (FeatureFlags.devToolsExtensions) {
89+
if (FeatureFlags.devToolsExtensions.isEnabled) {
9090
// TODO(https://github.com/flutter/devtools/issues/6273): stop special
9191
// casing the package:provider extension.
9292
final containsProviderExtension = extensionService
@@ -177,7 +177,7 @@ class DevToolsAppState extends State<DevToolsApp> with AutoDisposeMixin {
177177
});
178178
}
179179

180-
if (FeatureFlags.devToolsExtensions) {
180+
if (FeatureFlags.devToolsExtensions.isEnabled) {
181181
addAutoDisposeListener(
182182
extensionService.currentExtensions,
183183
clearRoutesAndSetState,

packages/devtools_app/lib/src/framework/framework_core.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ extension FrameworkCore on Never {
8484
// preferences have been initialized.
8585
await extensionService.initialize();
8686

87-
if (FeatureFlags.memoryObserver) {
87+
if (FeatureFlags.memoryObserver.isEnabled) {
8888
_memoryObserver.init();
8989
}
9090
}
@@ -99,7 +99,7 @@ extension FrameworkCore on Never {
9999
preferences.dispose();
100100
_themeManager?.dispose();
101101
unawaited(dtdManager.dispose());
102-
if (FeatureFlags.memoryObserver) {
102+
if (FeatureFlags.memoryObserver.isEnabled) {
103103
_memoryObserver.dispose();
104104
}
105105
}

packages/devtools_app/lib/src/framework/scaffold/scaffold.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class DevToolsScaffold extends StatefulWidget {
5858

5959
static List<Widget> defaultActions({Color? color}) => [
6060
OpenSettingsAction(color: color),
61-
if (FeatureFlags.devToolsExtensions &&
61+
if (FeatureFlags.devToolsExtensions.isEnabled &&
6262
!DevToolsQueryParams.load().hideExtensions)
6363
ExtensionSettingsAction(color: color),
6464
ReportFeedbackButton(color: color),

packages/devtools_app/lib/src/framework/scaffold/settings_dialog.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ class SettingsDialog extends StatelessWidget {
7777
gaItem: gac.vmDeveloperMode,
7878
),
7979
),
80-
if (FeatureFlags.wasmOptInSetting) ...[
80+
if (FeatureFlags.wasmOptInSetting.isEnabled) ...[
8181
const SizedBox(height: largeSpacing),
8282
...dialogSubHeader(theme, 'Experimental features'),
8383
Flexible(

packages/devtools_app/lib/src/screens/app_size/app_size_controller.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -772,7 +772,7 @@ class AppSizeController extends DevToolsScreenController {
772772

773773
@override
774774
void releaseMemory({bool partial = false}) {
775-
if (FeatureFlags.memoryObserver) {
775+
if (FeatureFlags.memoryObserver.isEnabled) {
776776
// This behavior is the same regardless of the value of `partial`. We can
777777
// implement a partial clearing if it becomes necessary.
778778
clear(AppSizeScreen.analysisTabKey);

packages/devtools_app/lib/src/screens/debugger/debugger_controller.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ class DebuggerController extends DevToolsScreenController
575575
);
576576
}
577577
// Update the variables for the stack frame:
578-
if (FeatureFlags.dapDebugging) {
578+
if (FeatureFlags.dapDebugging.isEnabled) {
579579
serviceConnection.appState.setDapVariables(
580580
frame != null ? await _createDapVariablesForFrame(frame.frame) : [],
581581
);

packages/devtools_app/lib/src/screens/debugger/variables.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class Variables extends StatelessWidget {
2424
Widget build(BuildContext context) {
2525
// TODO(kenz): preserve expanded state of tree on switching frames and
2626
// on stepping.
27-
if (FeatureFlags.dapDebugging) {
27+
if (FeatureFlags.dapDebugging.isEnabled) {
2828
return TreeView<DapObjectNode>(
2929
dataRootsListenable: serviceConnection.appState.dapVariables,
3030
dataDisplayProvider: (variable, onPressed) {

packages/devtools_app/lib/src/screens/inspector_shared/inspector_controls.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ class InspectorControls extends StatelessWidget {
3030
final activeButtonColor = Theme.of(
3131
context,
3232
).colorScheme.activeToggleButtonColor;
33-
final isInspectorV2 = controller != null && FeatureFlags.inspectorV2;
33+
final isInspectorV2 =
34+
controller != null && FeatureFlags.inspectorV2.isEnabled;
3435
return Row(
3536
crossAxisAlignment: CrossAxisAlignment.start,
3637
children: [

packages/devtools_app/lib/src/screens/inspector_shared/inspector_screen.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class _InspectorScreenSwitcherState extends State<InspectorScreenSwitcher>
4646
late InspectorScreenController controller;
4747

4848
bool get shouldShowInspectorV2 =>
49-
FeatureFlags.inspectorV2 &&
49+
FeatureFlags.inspectorV2.isEnabled &&
5050
!preferences.inspector.legacyInspectorEnabled.value;
5151

5252
@override

packages/devtools_app/lib/src/screens/inspector_shared/inspector_settings_dialog.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class FlutterInspectorSettingsDialog extends StatelessWidget {
6565
const SizedBox(height: largeSpacing),
6666
// TODO(https://github.com/flutter/devtools/issues/7860): Clean-up
6767
// after Inspector V2 has been released.
68-
if (FeatureFlags.inspectorV2)
68+
if (FeatureFlags.inspectorV2.isEnabled)
6969
Flexible(
7070
child: CheckboxSetting(
7171
notifier:

0 commit comments

Comments
 (0)