[Feature flag cleanup] Remove `memoryObserver` flag (#9445)
diff --git a/packages/devtools_app/lib/src/framework/framework_core.dart b/packages/devtools_app/lib/src/framework/framework_core.dart index f141b01..28bb4d4 100644 --- a/packages/devtools_app/lib/src/framework/framework_core.dart +++ b/packages/devtools_app/lib/src/framework/framework_core.dart
@@ -23,7 +23,6 @@ import '../shared/analytics/analytics.dart' as ga; import '../shared/config_specific/framework_initialize/framework_initialize.dart'; import '../shared/console/eval/eval_service.dart'; -import '../shared/feature_flags.dart'; import '../shared/framework/app_error_handling.dart' as error_handling; import '../shared/framework/framework_controller.dart'; import '../shared/framework/screen_controllers.dart'; @@ -84,9 +83,7 @@ // preferences have been initialized. await extensionService.initialize(); - if (FeatureFlags.memoryObserver.isEnabled) { - _memoryObserver.init(); - } + _memoryObserver.init(); } /// Disposes framework level services and managers. @@ -99,9 +96,7 @@ preferences.dispose(); _themeManager?.dispose(); unawaited(dtdManager.dispose()); - if (FeatureFlags.memoryObserver.isEnabled) { - _memoryObserver.dispose(); - } + _memoryObserver.dispose(); } static void _initGlobals() {
diff --git a/packages/devtools_app/lib/src/screens/app_size/app_size_controller.dart b/packages/devtools_app/lib/src/screens/app_size/app_size_controller.dart index ecc58a4..96f06a5 100644 --- a/packages/devtools_app/lib/src/screens/app_size/app_size_controller.dart +++ b/packages/devtools_app/lib/src/screens/app_size/app_size_controller.dart
@@ -11,7 +11,6 @@ import 'package:vm_snapshot_analysis/v8_profile.dart'; import '../../shared/charts/treemap.dart'; -import '../../shared/feature_flags.dart'; import '../../shared/framework/screen.dart'; import '../../shared/framework/screen_controllers.dart'; import '../../shared/primitives/utils.dart'; @@ -772,12 +771,10 @@ @override void releaseMemory({bool partial = false}) { - if (FeatureFlags.memoryObserver.isEnabled) { - // This behavior is the same regardless of the value of `partial`. We can - // implement a partial clearing if it becomes necessary. - clear(AppSizeScreen.analysisTabKey); - clear(AppSizeScreen.diffTabKey); - } + // This behavior is the same regardless of the value of `partial`. We can + // implement a partial clearing if it becomes necessary. + clear(AppSizeScreen.analysisTabKey); + clear(AppSizeScreen.diffTabKey); } }
diff --git a/packages/devtools_app/lib/src/screens/logging/logging_controller.dart b/packages/devtools_app/lib/src/screens/logging/logging_controller.dart index 9563c10..8f9818c 100644 --- a/packages/devtools_app/lib/src/screens/logging/logging_controller.dart +++ b/packages/devtools_app/lib/src/screens/logging/logging_controller.dart
@@ -18,7 +18,6 @@ import '../../service/vm_service_wrapper.dart'; import '../../shared/diagnostics/diagnostics_node.dart'; import '../../shared/diagnostics/inspector_service.dart'; -import '../../shared/feature_flags.dart'; import '../../shared/framework/app_error_handling.dart' as error_handling; import '../../shared/framework/screen.dart'; import '../../shared/framework/screen_controllers.dart'; @@ -805,13 +804,11 @@ @override void releaseMemory({bool partial = false}) { - if (FeatureFlags.memoryObserver.isEnabled) { - if (partial) { - // Trim logs from the front so that the oldest logs are removed. - _updateData(data.sublist(data.length ~/ 2)); - } else { - clear(); - } + if (partial) { + // Trim logs from the front so that the oldest logs are removed. + _updateData(data.sublist(data.length ~/ 2)); + } else { + clear(); } } }
diff --git a/packages/devtools_app/lib/src/screens/memory/framework/memory_controller.dart b/packages/devtools_app/lib/src/screens/memory/framework/memory_controller.dart index 3f2a8f1..62c0bb9 100644 --- a/packages/devtools_app/lib/src/screens/memory/framework/memory_controller.dart +++ b/packages/devtools_app/lib/src/screens/memory/framework/memory_controller.dart
@@ -10,7 +10,6 @@ import 'package:devtools_app_shared/utils.dart'; import 'package:flutter/foundation.dart'; -import '../../../shared/feature_flags.dart'; import '../../../shared/framework/screen.dart'; import '../../../shared/framework/screen_controllers.dart'; import '../../../shared/globals.dart'; @@ -217,11 +216,9 @@ @override FutureOr<void> releaseMemory({bool partial = false}) async { - if (FeatureFlags.memoryObserver.isEnabled) { - diff.clearSnapshots(partial: partial); - // Clear all allocation traces since the traces form a single tracing - // profile. - await trace?.clear(); - } + diff.clearSnapshots(partial: partial); + // Clear all allocation traces since the traces form a single tracing + // profile. + await trace?.clear(); } }
diff --git a/packages/devtools_app/lib/src/screens/network/network_controller.dart b/packages/devtools_app/lib/src/screens/network/network_controller.dart index 1547315..62fd5c5 100644 --- a/packages/devtools_app/lib/src/screens/network/network_controller.dart +++ b/packages/devtools_app/lib/src/screens/network/network_controller.dart
@@ -11,7 +11,6 @@ import '../../shared/config_specific/import_export/import_export.dart'; import '../../shared/config_specific/logger/allowed_error.dart'; -import '../../shared/feature_flags.dart'; import '../../shared/framework/screen.dart'; import '../../shared/framework/screen_controllers.dart'; import '../../shared/globals.dart'; @@ -515,9 +514,7 @@ @override FutureOr<void> releaseMemory({bool partial = false}) async { - if (FeatureFlags.memoryObserver.isEnabled) { - await clear(partial: partial); - } + await clear(partial: partial); } }
diff --git a/packages/devtools_app/lib/src/screens/performance/performance_controller.dart b/packages/devtools_app/lib/src/screens/performance/performance_controller.dart index 85424fe..8bed01c 100644 --- a/packages/devtools_app/lib/src/screens/performance/performance_controller.dart +++ b/packages/devtools_app/lib/src/screens/performance/performance_controller.dart
@@ -14,7 +14,6 @@ import '../../service/service_registrations.dart' as registrations; import '../../shared/diagnostics/inspector_service.dart'; -import '../../shared/feature_flags.dart'; import '../../shared/framework/screen.dart'; import '../../shared/framework/screen_controllers.dart'; import '../../shared/globals.dart'; @@ -291,9 +290,7 @@ @override FutureOr<void> releaseMemory({bool partial = false}) async { - if (FeatureFlags.memoryObserver.isEnabled) { - await clearData(partial: partial, clearVmTimeline: !partial); - } + await clearData(partial: partial, clearVmTimeline: !partial); } }
diff --git a/packages/devtools_app/lib/src/screens/profiler/profiler_screen_controller.dart b/packages/devtools_app/lib/src/screens/profiler/profiler_screen_controller.dart index af58b7a..6086b47 100644 --- a/packages/devtools_app/lib/src/screens/profiler/profiler_screen_controller.dart +++ b/packages/devtools_app/lib/src/screens/profiler/profiler_screen_controller.dart
@@ -9,7 +9,6 @@ import 'package:vm_service/vm_service.dart'; import '../../shared/config_specific/logger/allowed_error.dart'; -import '../../shared/feature_flags.dart'; import '../../shared/framework/screen.dart'; import '../../shared/framework/screen_controllers.dart'; import '../../shared/globals.dart'; @@ -188,9 +187,7 @@ @override FutureOr<void> releaseMemory({bool partial = false}) async { - if (FeatureFlags.memoryObserver.isEnabled) { - // There is no way to partially release memory for this screen. - await clear(); - } + // There is no way to partially release memory for this screen. + await clear(); } }
diff --git a/packages/devtools_app/lib/src/shared/feature_flags.dart b/packages/devtools_app/lib/src/shared/feature_flags.dart index b9a331c..cdd187a 100644 --- a/packages/devtools_app/lib/src/shared/feature_flags.dart +++ b/packages/devtools_app/lib/src/shared/feature_flags.dart
@@ -44,15 +44,6 @@ /// to the [_booleanFlags] or [_flutterChannelFlags] map for debugging /// purposes. extension FeatureFlags on Never { - /// Flag to enable the DevTools memory observer, which attempts to help users - /// avoid OOM crashes. - /// - /// https://github.com/flutter/devtools/issues/7002 - static final memoryObserver = BooleanFeatureFlag( - name: 'memoryObserver', - enabled: true, - ); - /// Flag to enable save/load for the Memory screen. /// /// https://github.com/flutter/devtools/issues/8019 @@ -125,7 +116,6 @@ /// When adding a new boolean flag, you are responsible for adding it to this /// map as well. static final _booleanFlags = <BooleanFeatureFlag>{ - memoryObserver, memorySaveLoad, networkSaveLoad, devToolsExtensions,
diff --git a/packages/devtools_app/test/framework/observer/memory_observer_test.dart b/packages/devtools_app/test/framework/observer/memory_observer_test.dart index fb2ec91..1e3dfbe 100644 --- a/packages/devtools_app/test/framework/observer/memory_observer_test.dart +++ b/packages/devtools_app/test/framework/observer/memory_observer_test.dart
@@ -6,7 +6,6 @@ import 'package:devtools_app/devtools_app.dart'; import 'package:devtools_app/src/framework/observer/memory_observer.dart'; -import 'package:devtools_app/src/shared/feature_flags.dart'; import 'package:devtools_app/src/shared/primitives/byte_utils.dart'; import 'package:devtools_app_shared/utils.dart'; import 'package:devtools_test/devtools_test.dart'; @@ -36,10 +35,6 @@ return memoryUsageBytes; } - setUpAll(() { - FeatureFlags.memoryObserver.setEnabledForTests(true); - }); - setUp(() { measurementComplete = Completer(); observer = MemoryObserver( @@ -57,10 +52,6 @@ observer.dispose(); }); - tearDownAll(() { - FeatureFlags.memoryObserver.setEnabledForTests(false); - }); - test( 'does not add banner message when memory limit is not reached', () async {
diff --git a/packages/devtools_app/test/screens/cpu_profiler/profiler_screen_controller_test.dart b/packages/devtools_app/test/screens/cpu_profiler/profiler_screen_controller_test.dart index fca7471..799f30c 100644 --- a/packages/devtools_app/test/screens/cpu_profiler/profiler_screen_controller_test.dart +++ b/packages/devtools_app/test/screens/cpu_profiler/profiler_screen_controller_test.dart
@@ -4,7 +4,6 @@ import 'package:devtools_app/devtools_app.dart'; import 'package:devtools_app/src/screens/profiler/cpu_profiler_controller.dart'; -import 'package:devtools_app/src/shared/feature_flags.dart'; import 'package:devtools_app_shared/utils.dart'; import 'package:devtools_test/devtools_test.dart'; import 'package:flutter_test/flutter_test.dart'; @@ -18,7 +17,6 @@ late ProfilerScreenController controller; setUp(() { - FeatureFlags.memoryObserver.setEnabledForTests(true); final fakeServiceConnection = FakeServiceConnectionManager( service: FakeServiceManager.createFakeService( cpuSamples: CpuSamples.parse(goldenCpuSamplesJson), @@ -63,7 +61,6 @@ }); test('releaseMemory', () async { - FeatureFlags.memoryObserver.setEnabledForTests(true); await controller.cpuProfilerController.loadAllSamples(); expect(controller.cpuProfilerController.dataNotifier.value, isNotNull); expect( @@ -75,7 +72,6 @@ controller.cpuProfilerController.dataNotifier.value, CpuProfilerController.baseStateCpuProfileData, ); - FeatureFlags.memoryObserver.setEnabledForTests(false); }); }); }
diff --git a/packages/devtools_app/test/screens/logging/logging_controller_test.dart b/packages/devtools_app/test/screens/logging/logging_controller_test.dart index 5dac954..4362b58 100644 --- a/packages/devtools_app/test/screens/logging/logging_controller_test.dart +++ b/packages/devtools_app/test/screens/logging/logging_controller_test.dart
@@ -8,7 +8,6 @@ import 'dart:convert'; import 'package:devtools_app/devtools_app.dart'; -import 'package:devtools_app/src/shared/feature_flags.dart'; import 'package:devtools_app/src/shared/primitives/message_bus.dart'; import 'package:devtools_app_shared/utils.dart'; import 'package:devtools_test/devtools_test.dart'; @@ -338,14 +337,9 @@ group('releaseMemory', () { setUp(() { - FeatureFlags.memoryObserver.setEnabledForTests(true); prepareTestLogs(); }); - tearDown(() { - FeatureFlags.memoryObserver.setEnabledForTests(false); - }); - test('releaseMemory - full release', () { expect(controller.data, isNotEmpty); expect(controller.filteredData.value, isNotEmpty);
diff --git a/packages/devtools_app/test/screens/memory/framework/memory_controller_test.dart b/packages/devtools_app/test/screens/memory/framework/memory_controller_test.dart index 2fcc090..01e8302 100644 --- a/packages/devtools_app/test/screens/memory/framework/memory_controller_test.dart +++ b/packages/devtools_app/test/screens/memory/framework/memory_controller_test.dart
@@ -7,7 +7,6 @@ import 'package:devtools_app/devtools_app.dart'; import 'package:devtools_app/src/screens/memory/shared/heap/class_filter.dart'; -import 'package:devtools_app/src/shared/feature_flags.dart'; import 'package:devtools_app_shared/utils.dart'; import 'package:devtools_test/devtools_test.dart'; import 'package:devtools_test/helpers.dart'; @@ -106,14 +105,6 @@ ); group('release memory', () { - setUp(() { - FeatureFlags.memoryObserver.setEnabledForTests(true); - }); - - tearDown(() { - FeatureFlags.memoryObserver.setEnabledForTests(false); - }); - testWidgetsWithWindowSize('full release', _windowSize, ( WidgetTester tester, ) async {
diff --git a/packages/devtools_app/test/shared/primitives/feature_flags_test.dart b/packages/devtools_app/test/shared/primitives/feature_flags_test.dart index bc5f69d..3939d55 100644 --- a/packages/devtools_app/test/shared/primitives/feature_flags_test.dart +++ b/packages/devtools_app/test/shared/primitives/feature_flags_test.dart
@@ -16,7 +16,6 @@ expect(enableExperiments, false); expect(enableBeta, false); expect(isExternalBuild, true); - expect(FeatureFlags.memoryObserver.isEnabled, true); expect(FeatureFlags.memorySaveLoad.isEnabled, false); expect(FeatureFlags.networkSaveLoad.isEnabled, true); expect(FeatureFlags.devToolsExtensions.isEnabled, isExternalBuild);