diff --git a/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm b/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm index 46d1cbae02132..272ddec44fe88 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterDartProject.mm @@ -167,6 +167,12 @@ settings.enable_impeller = enableImpeller.boolValue; } + NSNumber* enableTraceSystrace = [mainBundle objectForInfoDictionaryKey:@"FLTTraceSystrace"]; + // Change the default only if the option is present. + if (enableTraceSystrace != nil) { + settings.trace_systrace = enableTraceSystrace.boolValue; + } + // Leak Dart VM settings, set whether leave or clean up the VM after the last shell shuts down. NSNumber* leakDartVM = [mainBundle objectForInfoDictionaryKey:@"FLTLeakDartVM"]; // It will change the default leak_vm value in settings only if the key exists. diff --git a/shell/platform/darwin/ios/framework/Source/FlutterDartProjectTest.mm b/shell/platform/darwin/ios/framework/Source/FlutterDartProjectTest.mm index 57d98ea85dd3e..33e7e2a973f6c 100644 --- a/shell/platform/darwin/ios/framework/Source/FlutterDartProjectTest.mm +++ b/shell/platform/darwin/ios/framework/Source/FlutterDartProjectTest.mm @@ -71,6 +71,15 @@ - (void)testEnableImpellerSettingIsCorrectlyParsed { XCTAssertEqual(settings.enable_impeller, NO); } +- (void)testEnableTraceSystraceSettingIsCorrectlyParsed { + NSBundle* mainBundle = [NSBundle mainBundle]; + NSNumber* enableTraceSystrace = [mainBundle objectForInfoDictionaryKey:@"FLTTraceSystrace"]; + XCTAssertNotNil(enableTraceSystrace); + XCTAssertEqual(enableTraceSystrace.boolValue, NO); + auto settings = FLTDefaultSettingsForBundle(); + XCTAssertEqual(settings.trace_systrace, NO); +} + - (void)testEmptySettingsAreCorrect { XCTAssertFalse([FlutterDartProject allowsArbitraryLoads:[[NSDictionary alloc] init]]); XCTAssertEqualObjects(@"", [FlutterDartProject domainNetworkPolicy:[[NSDictionary alloc] init]]); diff --git a/testing/ios/IosUnitTests/App/Info.plist b/testing/ios/IosUnitTests/App/Info.plist index 73bfcb252cd67..252bc671749da 100644 --- a/testing/ios/IosUnitTests/App/Info.plist +++ b/testing/ios/IosUnitTests/App/Info.plist @@ -48,6 +48,8 @@ FLTEnableImpeller + FLTTraceSystrace + UIRequiredDeviceCapabilities armv7