[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);