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