Unverified Commit 0d087562 authored by Kenzie Davisson's avatar Kenzie Davisson Committed by GitHub

Register a service extension for `profileUserWidgetBuilds` (#101989)

parent 3ce2931c
...@@ -435,6 +435,14 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB ...@@ -435,6 +435,14 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB
debugProfileBuildsEnabled = value; debugProfileBuildsEnabled = value;
}, },
); );
registerBoolServiceExtension(
name: 'profileUserWidgetBuilds',
getter: () async => debugProfileBuildsEnabledUserWidgets,
setter: (bool value) async {
if (debugProfileBuildsEnabledUserWidgets != value)
debugProfileBuildsEnabledUserWidgets = value;
},
);
} }
assert(() { assert(() {
......
...@@ -171,9 +171,14 @@ void main() { ...@@ -171,9 +171,14 @@ void main() {
// 1. exit // 1. exit
// 2. showPerformanceOverlay // 2. showPerformanceOverlay
const int disabledExtensions = kIsWeb ? 2 : 0; const int disabledExtensions = kIsWeb ? 2 : 0;
// If you add a service extension... TEST IT! :-)
// ...then increment this number. // The expected number of registered service extensions in the Flutter
expect(binding.extensions.length, 35 + widgetInspectorExtensionCount - disabledExtensions); // framework, excluding any that are for the widget inspector
// (see widget_inspector_test.dart for tests of the ext.flutter.inspector
// service extensions).
const int serviceExtensionCount = 36;
expect(binding.extensions.length, serviceExtensionCount + widgetInspectorExtensionCount - disabledExtensions);
expect(console, isEmpty); expect(console, isEmpty);
debugPrint = debugPrintThrottled; debugPrint = debugPrintThrottled;
...@@ -442,6 +447,35 @@ void main() { ...@@ -442,6 +447,35 @@ void main() {
expect(binding.frameScheduled, isFalse); expect(binding.frameScheduled, isFalse);
}); });
test('Service extensions - profileUserWidgetBuilds', () async {
Map<String, dynamic> result;
expect(binding.frameScheduled, isFalse);
expect(debugProfileBuildsEnabledUserWidgets, false);
result = await binding.testExtension('profileUserWidgetBuilds', <String, String>{});
expect(result, <String, String>{'enabled': 'false'});
expect(debugProfileBuildsEnabledUserWidgets, false);
result = await binding.testExtension('profileUserWidgetBuilds', <String, String>{'enabled': 'true'});
expect(result, <String, String>{'enabled': 'true'});
expect(debugProfileBuildsEnabledUserWidgets, true);
result = await binding.testExtension('profileUserWidgetBuilds', <String, String>{});
expect(result, <String, String>{'enabled': 'true'});
expect(debugProfileBuildsEnabledUserWidgets, true);
result = await binding.testExtension('profileUserWidgetBuilds', <String, String>{'enabled': 'false'});
expect(result, <String, String>{'enabled': 'false'});
expect(debugProfileBuildsEnabledUserWidgets, false);
result = await binding.testExtension('profileUserWidgetBuilds', <String, String>{});
expect(result, <String, String>{'enabled': 'false'});
expect(debugProfileBuildsEnabledUserWidgets, false);
expect(binding.frameScheduled, isFalse);
});
test('Service extensions - profileRenderObjectPaints', () async { test('Service extensions - profileRenderObjectPaints', () async {
Map<String, dynamic> result; Map<String, dynamic> result;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment