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
debugProfileBuildsEnabled = value;
},
);
registerBoolServiceExtension(
name: 'profileUserWidgetBuilds',
getter: () async => debugProfileBuildsEnabledUserWidgets,
setter: (bool value) async {
if (debugProfileBuildsEnabledUserWidgets != value)
debugProfileBuildsEnabledUserWidgets = value;
},
);
}
assert(() {
......
......@@ -171,9 +171,14 @@ void main() {
// 1. exit
// 2. showPerformanceOverlay
const int disabledExtensions = kIsWeb ? 2 : 0;
// If you add a service extension... TEST IT! :-)
// ...then increment this number.
expect(binding.extensions.length, 35 + widgetInspectorExtensionCount - disabledExtensions);
// The expected number of registered service extensions in the Flutter
// 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);
debugPrint = debugPrintThrottled;
......@@ -442,6 +447,35 @@ void main() {
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 {
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