react-native 0.83.4 → 0.83.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Utilities/Appearance.js +6 -1
- package/Libraries/Utilities/HMRClient.js +28 -1
- package/React/Base/RCTVersion.m +1 -1
- package/React/CoreModules/RCTDevLoadingView.mm +17 -0
- package/React/DevSupport/RCTFrameTimingsObserver.h +24 -0
- package/React/DevSupport/RCTFrameTimingsObserver.mm +298 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +16 -0
- package/ReactAndroid/api/ReactAndroid.api +0 -9
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +275 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{interfaces → inspector}/TracingStateProvider.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +13 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +21 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +23 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +39 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +20 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +6 -12
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +86 -4
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +10 -6
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +22 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +2 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +29 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +7 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +196 -17
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +168 -18
- package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +44 -2
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +45 -10
- package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +14 -7
- package/ReactCommon/jsinspector-modern/HostTarget.h +101 -14
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +39 -8
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
- package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
- package/ReactCommon/jsinspector-modern/HostTargetTracing.h +89 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +12 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +12 -0
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +3 -7
- package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
- package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +1 -1
- package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +19 -0
- package/ReactCommon/jsinspector-modern/RuntimeAgent.h +7 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +33 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +6 -0
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +29 -13
- package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
- package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +65 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +23 -2
- package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +1 -0
- package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +1 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +335 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +10 -0
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +3 -1
- package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +1 -0
- package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +61 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +165 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.h +50 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +16 -14
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracerSection.h +113 -0
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -0
- package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +100 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +60 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +44 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h +7 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
- package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +136 -0
- package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +11 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +65 -29
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +6 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +19 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +3 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +3 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +11 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +5 -1
- package/ReactCommon/react/performance/timeline/PerformanceObserver.cpp +18 -6
- package/ReactCommon/react/performance/timeline/PerformanceObserver.h +2 -0
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +115 -0
- package/ReactCommon/{jsinspector-modern → react/utils}/Base64.h +2 -2
- package/gradle/libs.versions.toml +1 -1
- package/package.json +10 -10
- package/scripts/cocoapods/utils.rb +1 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -1
- package/third-party-podspecs/RCT-Folly.podspec +1 -1
- package/third-party-podspecs/fmt.podspec +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.h +0 -42
- package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<3c510c97c279768dbf3bfd5c2b2c1903>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -1055,6 +1055,24 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxEnabledRelease() {
|
|
|
1055
1055
|
return flagValue.value();
|
|
1056
1056
|
}
|
|
1057
1057
|
|
|
1058
|
+
bool ReactNativeFeatureFlagsAccessor::fuseboxFrameRecordingEnabled() {
|
|
1059
|
+
auto flagValue = fuseboxFrameRecordingEnabled_.load();
|
|
1060
|
+
|
|
1061
|
+
if (!flagValue.has_value()) {
|
|
1062
|
+
// This block is not exclusive but it is not necessary.
|
|
1063
|
+
// If multiple threads try to initialize the feature flag, we would only
|
|
1064
|
+
// be accessing the provider multiple times but the end state of this
|
|
1065
|
+
// instance and the returned flag value would be the same.
|
|
1066
|
+
|
|
1067
|
+
markFlagAsAccessed(57, "fuseboxFrameRecordingEnabled");
|
|
1068
|
+
|
|
1069
|
+
flagValue = currentProvider_->fuseboxFrameRecordingEnabled();
|
|
1070
|
+
fuseboxFrameRecordingEnabled_ = flagValue;
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
return flagValue.value();
|
|
1074
|
+
}
|
|
1075
|
+
|
|
1058
1076
|
bool ReactNativeFeatureFlagsAccessor::fuseboxNetworkInspectionEnabled() {
|
|
1059
1077
|
auto flagValue = fuseboxNetworkInspectionEnabled_.load();
|
|
1060
1078
|
|
|
@@ -1064,7 +1082,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxNetworkInspectionEnabled() {
|
|
|
1064
1082
|
// be accessing the provider multiple times but the end state of this
|
|
1065
1083
|
// instance and the returned flag value would be the same.
|
|
1066
1084
|
|
|
1067
|
-
markFlagAsAccessed(
|
|
1085
|
+
markFlagAsAccessed(58, "fuseboxNetworkInspectionEnabled");
|
|
1068
1086
|
|
|
1069
1087
|
flagValue = currentProvider_->fuseboxNetworkInspectionEnabled();
|
|
1070
1088
|
fuseboxNetworkInspectionEnabled_ = flagValue;
|
|
@@ -1073,6 +1091,24 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxNetworkInspectionEnabled() {
|
|
|
1073
1091
|
return flagValue.value();
|
|
1074
1092
|
}
|
|
1075
1093
|
|
|
1094
|
+
bool ReactNativeFeatureFlagsAccessor::fuseboxScreenshotCaptureEnabled() {
|
|
1095
|
+
auto flagValue = fuseboxScreenshotCaptureEnabled_.load();
|
|
1096
|
+
|
|
1097
|
+
if (!flagValue.has_value()) {
|
|
1098
|
+
// This block is not exclusive but it is not necessary.
|
|
1099
|
+
// If multiple threads try to initialize the feature flag, we would only
|
|
1100
|
+
// be accessing the provider multiple times but the end state of this
|
|
1101
|
+
// instance and the returned flag value would be the same.
|
|
1102
|
+
|
|
1103
|
+
markFlagAsAccessed(59, "fuseboxScreenshotCaptureEnabled");
|
|
1104
|
+
|
|
1105
|
+
flagValue = currentProvider_->fuseboxScreenshotCaptureEnabled();
|
|
1106
|
+
fuseboxScreenshotCaptureEnabled_ = flagValue;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
return flagValue.value();
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1076
1112
|
bool ReactNativeFeatureFlagsAccessor::hideOffscreenVirtualViewsOnIOS() {
|
|
1077
1113
|
auto flagValue = hideOffscreenVirtualViewsOnIOS_.load();
|
|
1078
1114
|
|
|
@@ -1082,7 +1118,7 @@ bool ReactNativeFeatureFlagsAccessor::hideOffscreenVirtualViewsOnIOS() {
|
|
|
1082
1118
|
// be accessing the provider multiple times but the end state of this
|
|
1083
1119
|
// instance and the returned flag value would be the same.
|
|
1084
1120
|
|
|
1085
|
-
markFlagAsAccessed(
|
|
1121
|
+
markFlagAsAccessed(60, "hideOffscreenVirtualViewsOnIOS");
|
|
1086
1122
|
|
|
1087
1123
|
flagValue = currentProvider_->hideOffscreenVirtualViewsOnIOS();
|
|
1088
1124
|
hideOffscreenVirtualViewsOnIOS_ = flagValue;
|
|
@@ -1100,7 +1136,7 @@ bool ReactNativeFeatureFlagsAccessor::overrideBySynchronousMountPropsAtMountingA
|
|
|
1100
1136
|
// be accessing the provider multiple times but the end state of this
|
|
1101
1137
|
// instance and the returned flag value would be the same.
|
|
1102
1138
|
|
|
1103
|
-
markFlagAsAccessed(
|
|
1139
|
+
markFlagAsAccessed(61, "overrideBySynchronousMountPropsAtMountingAndroid");
|
|
1104
1140
|
|
|
1105
1141
|
flagValue = currentProvider_->overrideBySynchronousMountPropsAtMountingAndroid();
|
|
1106
1142
|
overrideBySynchronousMountPropsAtMountingAndroid_ = flagValue;
|
|
@@ -1118,7 +1154,7 @@ bool ReactNativeFeatureFlagsAccessor::perfIssuesEnabled() {
|
|
|
1118
1154
|
// be accessing the provider multiple times but the end state of this
|
|
1119
1155
|
// instance and the returned flag value would be the same.
|
|
1120
1156
|
|
|
1121
|
-
markFlagAsAccessed(
|
|
1157
|
+
markFlagAsAccessed(62, "perfIssuesEnabled");
|
|
1122
1158
|
|
|
1123
1159
|
flagValue = currentProvider_->perfIssuesEnabled();
|
|
1124
1160
|
perfIssuesEnabled_ = flagValue;
|
|
@@ -1136,7 +1172,7 @@ bool ReactNativeFeatureFlagsAccessor::perfMonitorV2Enabled() {
|
|
|
1136
1172
|
// be accessing the provider multiple times but the end state of this
|
|
1137
1173
|
// instance and the returned flag value would be the same.
|
|
1138
1174
|
|
|
1139
|
-
markFlagAsAccessed(
|
|
1175
|
+
markFlagAsAccessed(63, "perfMonitorV2Enabled");
|
|
1140
1176
|
|
|
1141
1177
|
flagValue = currentProvider_->perfMonitorV2Enabled();
|
|
1142
1178
|
perfMonitorV2Enabled_ = flagValue;
|
|
@@ -1154,7 +1190,7 @@ double ReactNativeFeatureFlagsAccessor::preparedTextCacheSize() {
|
|
|
1154
1190
|
// be accessing the provider multiple times but the end state of this
|
|
1155
1191
|
// instance and the returned flag value would be the same.
|
|
1156
1192
|
|
|
1157
|
-
markFlagAsAccessed(
|
|
1193
|
+
markFlagAsAccessed(64, "preparedTextCacheSize");
|
|
1158
1194
|
|
|
1159
1195
|
flagValue = currentProvider_->preparedTextCacheSize();
|
|
1160
1196
|
preparedTextCacheSize_ = flagValue;
|
|
@@ -1172,7 +1208,7 @@ bool ReactNativeFeatureFlagsAccessor::preventShadowTreeCommitExhaustion() {
|
|
|
1172
1208
|
// be accessing the provider multiple times but the end state of this
|
|
1173
1209
|
// instance and the returned flag value would be the same.
|
|
1174
1210
|
|
|
1175
|
-
markFlagAsAccessed(
|
|
1211
|
+
markFlagAsAccessed(65, "preventShadowTreeCommitExhaustion");
|
|
1176
1212
|
|
|
1177
1213
|
flagValue = currentProvider_->preventShadowTreeCommitExhaustion();
|
|
1178
1214
|
preventShadowTreeCommitExhaustion_ = flagValue;
|
|
@@ -1190,7 +1226,7 @@ bool ReactNativeFeatureFlagsAccessor::shouldPressibilityUseW3CPointerEventsForHo
|
|
|
1190
1226
|
// be accessing the provider multiple times but the end state of this
|
|
1191
1227
|
// instance and the returned flag value would be the same.
|
|
1192
1228
|
|
|
1193
|
-
markFlagAsAccessed(
|
|
1229
|
+
markFlagAsAccessed(66, "shouldPressibilityUseW3CPointerEventsForHover");
|
|
1194
1230
|
|
|
1195
1231
|
flagValue = currentProvider_->shouldPressibilityUseW3CPointerEventsForHover();
|
|
1196
1232
|
shouldPressibilityUseW3CPointerEventsForHover_ = flagValue;
|
|
@@ -1208,7 +1244,7 @@ bool ReactNativeFeatureFlagsAccessor::shouldTriggerResponderTransferOnScrollAndr
|
|
|
1208
1244
|
// be accessing the provider multiple times but the end state of this
|
|
1209
1245
|
// instance and the returned flag value would be the same.
|
|
1210
1246
|
|
|
1211
|
-
markFlagAsAccessed(
|
|
1247
|
+
markFlagAsAccessed(67, "shouldTriggerResponderTransferOnScrollAndroid");
|
|
1212
1248
|
|
|
1213
1249
|
flagValue = currentProvider_->shouldTriggerResponderTransferOnScrollAndroid();
|
|
1214
1250
|
shouldTriggerResponderTransferOnScrollAndroid_ = flagValue;
|
|
@@ -1226,7 +1262,7 @@ bool ReactNativeFeatureFlagsAccessor::skipActivityIdentityAssertionOnHostPause()
|
|
|
1226
1262
|
// be accessing the provider multiple times but the end state of this
|
|
1227
1263
|
// instance and the returned flag value would be the same.
|
|
1228
1264
|
|
|
1229
|
-
markFlagAsAccessed(
|
|
1265
|
+
markFlagAsAccessed(68, "skipActivityIdentityAssertionOnHostPause");
|
|
1230
1266
|
|
|
1231
1267
|
flagValue = currentProvider_->skipActivityIdentityAssertionOnHostPause();
|
|
1232
1268
|
skipActivityIdentityAssertionOnHostPause_ = flagValue;
|
|
@@ -1244,7 +1280,7 @@ bool ReactNativeFeatureFlagsAccessor::sweepActiveTouchOnChildNativeGesturesAndro
|
|
|
1244
1280
|
// be accessing the provider multiple times but the end state of this
|
|
1245
1281
|
// instance and the returned flag value would be the same.
|
|
1246
1282
|
|
|
1247
|
-
markFlagAsAccessed(
|
|
1283
|
+
markFlagAsAccessed(69, "sweepActiveTouchOnChildNativeGesturesAndroid");
|
|
1248
1284
|
|
|
1249
1285
|
flagValue = currentProvider_->sweepActiveTouchOnChildNativeGesturesAndroid();
|
|
1250
1286
|
sweepActiveTouchOnChildNativeGesturesAndroid_ = flagValue;
|
|
@@ -1262,7 +1298,7 @@ bool ReactNativeFeatureFlagsAccessor::traceTurboModulePromiseRejectionsOnAndroid
|
|
|
1262
1298
|
// be accessing the provider multiple times but the end state of this
|
|
1263
1299
|
// instance and the returned flag value would be the same.
|
|
1264
1300
|
|
|
1265
|
-
markFlagAsAccessed(
|
|
1301
|
+
markFlagAsAccessed(70, "traceTurboModulePromiseRejectionsOnAndroid");
|
|
1266
1302
|
|
|
1267
1303
|
flagValue = currentProvider_->traceTurboModulePromiseRejectionsOnAndroid();
|
|
1268
1304
|
traceTurboModulePromiseRejectionsOnAndroid_ = flagValue;
|
|
@@ -1280,7 +1316,7 @@ bool ReactNativeFeatureFlagsAccessor::updateRuntimeShadowNodeReferencesOnCommit(
|
|
|
1280
1316
|
// be accessing the provider multiple times but the end state of this
|
|
1281
1317
|
// instance and the returned flag value would be the same.
|
|
1282
1318
|
|
|
1283
|
-
markFlagAsAccessed(
|
|
1319
|
+
markFlagAsAccessed(71, "updateRuntimeShadowNodeReferencesOnCommit");
|
|
1284
1320
|
|
|
1285
1321
|
flagValue = currentProvider_->updateRuntimeShadowNodeReferencesOnCommit();
|
|
1286
1322
|
updateRuntimeShadowNodeReferencesOnCommit_ = flagValue;
|
|
@@ -1298,7 +1334,7 @@ bool ReactNativeFeatureFlagsAccessor::useAlwaysAvailableJSErrorHandling() {
|
|
|
1298
1334
|
// be accessing the provider multiple times but the end state of this
|
|
1299
1335
|
// instance and the returned flag value would be the same.
|
|
1300
1336
|
|
|
1301
|
-
markFlagAsAccessed(
|
|
1337
|
+
markFlagAsAccessed(72, "useAlwaysAvailableJSErrorHandling");
|
|
1302
1338
|
|
|
1303
1339
|
flagValue = currentProvider_->useAlwaysAvailableJSErrorHandling();
|
|
1304
1340
|
useAlwaysAvailableJSErrorHandling_ = flagValue;
|
|
@@ -1316,7 +1352,7 @@ bool ReactNativeFeatureFlagsAccessor::useFabricInterop() {
|
|
|
1316
1352
|
// be accessing the provider multiple times but the end state of this
|
|
1317
1353
|
// instance and the returned flag value would be the same.
|
|
1318
1354
|
|
|
1319
|
-
markFlagAsAccessed(
|
|
1355
|
+
markFlagAsAccessed(73, "useFabricInterop");
|
|
1320
1356
|
|
|
1321
1357
|
flagValue = currentProvider_->useFabricInterop();
|
|
1322
1358
|
useFabricInterop_ = flagValue;
|
|
@@ -1334,7 +1370,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeEqualsInNativeReadableArrayAndroi
|
|
|
1334
1370
|
// be accessing the provider multiple times but the end state of this
|
|
1335
1371
|
// instance and the returned flag value would be the same.
|
|
1336
1372
|
|
|
1337
|
-
markFlagAsAccessed(
|
|
1373
|
+
markFlagAsAccessed(74, "useNativeEqualsInNativeReadableArrayAndroid");
|
|
1338
1374
|
|
|
1339
1375
|
flagValue = currentProvider_->useNativeEqualsInNativeReadableArrayAndroid();
|
|
1340
1376
|
useNativeEqualsInNativeReadableArrayAndroid_ = flagValue;
|
|
@@ -1352,7 +1388,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeTransformHelperAndroid() {
|
|
|
1352
1388
|
// be accessing the provider multiple times but the end state of this
|
|
1353
1389
|
// instance and the returned flag value would be the same.
|
|
1354
1390
|
|
|
1355
|
-
markFlagAsAccessed(
|
|
1391
|
+
markFlagAsAccessed(75, "useNativeTransformHelperAndroid");
|
|
1356
1392
|
|
|
1357
1393
|
flagValue = currentProvider_->useNativeTransformHelperAndroid();
|
|
1358
1394
|
useNativeTransformHelperAndroid_ = flagValue;
|
|
@@ -1370,7 +1406,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() {
|
|
|
1370
1406
|
// be accessing the provider multiple times but the end state of this
|
|
1371
1407
|
// instance and the returned flag value would be the same.
|
|
1372
1408
|
|
|
1373
|
-
markFlagAsAccessed(
|
|
1409
|
+
markFlagAsAccessed(76, "useNativeViewConfigsInBridgelessMode");
|
|
1374
1410
|
|
|
1375
1411
|
flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
|
|
1376
1412
|
useNativeViewConfigsInBridgelessMode_ = flagValue;
|
|
@@ -1388,7 +1424,7 @@ bool ReactNativeFeatureFlagsAccessor::useOptimizedEventBatchingOnAndroid() {
|
|
|
1388
1424
|
// be accessing the provider multiple times but the end state of this
|
|
1389
1425
|
// instance and the returned flag value would be the same.
|
|
1390
1426
|
|
|
1391
|
-
markFlagAsAccessed(
|
|
1427
|
+
markFlagAsAccessed(77, "useOptimizedEventBatchingOnAndroid");
|
|
1392
1428
|
|
|
1393
1429
|
flagValue = currentProvider_->useOptimizedEventBatchingOnAndroid();
|
|
1394
1430
|
useOptimizedEventBatchingOnAndroid_ = flagValue;
|
|
@@ -1406,7 +1442,7 @@ bool ReactNativeFeatureFlagsAccessor::useRawPropsJsiValue() {
|
|
|
1406
1442
|
// be accessing the provider multiple times but the end state of this
|
|
1407
1443
|
// instance and the returned flag value would be the same.
|
|
1408
1444
|
|
|
1409
|
-
markFlagAsAccessed(
|
|
1445
|
+
markFlagAsAccessed(78, "useRawPropsJsiValue");
|
|
1410
1446
|
|
|
1411
1447
|
flagValue = currentProvider_->useRawPropsJsiValue();
|
|
1412
1448
|
useRawPropsJsiValue_ = flagValue;
|
|
@@ -1424,7 +1460,7 @@ bool ReactNativeFeatureFlagsAccessor::useShadowNodeStateOnClone() {
|
|
|
1424
1460
|
// be accessing the provider multiple times but the end state of this
|
|
1425
1461
|
// instance and the returned flag value would be the same.
|
|
1426
1462
|
|
|
1427
|
-
markFlagAsAccessed(
|
|
1463
|
+
markFlagAsAccessed(79, "useShadowNodeStateOnClone");
|
|
1428
1464
|
|
|
1429
1465
|
flagValue = currentProvider_->useShadowNodeStateOnClone();
|
|
1430
1466
|
useShadowNodeStateOnClone_ = flagValue;
|
|
@@ -1442,7 +1478,7 @@ bool ReactNativeFeatureFlagsAccessor::useSharedAnimatedBackend() {
|
|
|
1442
1478
|
// be accessing the provider multiple times but the end state of this
|
|
1443
1479
|
// instance and the returned flag value would be the same.
|
|
1444
1480
|
|
|
1445
|
-
markFlagAsAccessed(
|
|
1481
|
+
markFlagAsAccessed(80, "useSharedAnimatedBackend");
|
|
1446
1482
|
|
|
1447
1483
|
flagValue = currentProvider_->useSharedAnimatedBackend();
|
|
1448
1484
|
useSharedAnimatedBackend_ = flagValue;
|
|
@@ -1460,7 +1496,7 @@ bool ReactNativeFeatureFlagsAccessor::useTraitHiddenOnAndroid() {
|
|
|
1460
1496
|
// be accessing the provider multiple times but the end state of this
|
|
1461
1497
|
// instance and the returned flag value would be the same.
|
|
1462
1498
|
|
|
1463
|
-
markFlagAsAccessed(
|
|
1499
|
+
markFlagAsAccessed(81, "useTraitHiddenOnAndroid");
|
|
1464
1500
|
|
|
1465
1501
|
flagValue = currentProvider_->useTraitHiddenOnAndroid();
|
|
1466
1502
|
useTraitHiddenOnAndroid_ = flagValue;
|
|
@@ -1478,7 +1514,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModuleInterop() {
|
|
|
1478
1514
|
// be accessing the provider multiple times but the end state of this
|
|
1479
1515
|
// instance and the returned flag value would be the same.
|
|
1480
1516
|
|
|
1481
|
-
markFlagAsAccessed(
|
|
1517
|
+
markFlagAsAccessed(82, "useTurboModuleInterop");
|
|
1482
1518
|
|
|
1483
1519
|
flagValue = currentProvider_->useTurboModuleInterop();
|
|
1484
1520
|
useTurboModuleInterop_ = flagValue;
|
|
@@ -1496,7 +1532,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModules() {
|
|
|
1496
1532
|
// be accessing the provider multiple times but the end state of this
|
|
1497
1533
|
// instance and the returned flag value would be the same.
|
|
1498
1534
|
|
|
1499
|
-
markFlagAsAccessed(
|
|
1535
|
+
markFlagAsAccessed(83, "useTurboModules");
|
|
1500
1536
|
|
|
1501
1537
|
flagValue = currentProvider_->useTurboModules();
|
|
1502
1538
|
useTurboModules_ = flagValue;
|
|
@@ -1514,7 +1550,7 @@ double ReactNativeFeatureFlagsAccessor::viewCullingOutsetRatio() {
|
|
|
1514
1550
|
// be accessing the provider multiple times but the end state of this
|
|
1515
1551
|
// instance and the returned flag value would be the same.
|
|
1516
1552
|
|
|
1517
|
-
markFlagAsAccessed(
|
|
1553
|
+
markFlagAsAccessed(84, "viewCullingOutsetRatio");
|
|
1518
1554
|
|
|
1519
1555
|
flagValue = currentProvider_->viewCullingOutsetRatio();
|
|
1520
1556
|
viewCullingOutsetRatio_ = flagValue;
|
|
@@ -1532,7 +1568,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewHysteresisRatio() {
|
|
|
1532
1568
|
// be accessing the provider multiple times but the end state of this
|
|
1533
1569
|
// instance and the returned flag value would be the same.
|
|
1534
1570
|
|
|
1535
|
-
markFlagAsAccessed(
|
|
1571
|
+
markFlagAsAccessed(85, "virtualViewHysteresisRatio");
|
|
1536
1572
|
|
|
1537
1573
|
flagValue = currentProvider_->virtualViewHysteresisRatio();
|
|
1538
1574
|
virtualViewHysteresisRatio_ = flagValue;
|
|
@@ -1550,7 +1586,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewPrerenderRatio() {
|
|
|
1550
1586
|
// be accessing the provider multiple times but the end state of this
|
|
1551
1587
|
// instance and the returned flag value would be the same.
|
|
1552
1588
|
|
|
1553
|
-
markFlagAsAccessed(
|
|
1589
|
+
markFlagAsAccessed(86, "virtualViewPrerenderRatio");
|
|
1554
1590
|
|
|
1555
1591
|
flagValue = currentProvider_->virtualViewPrerenderRatio();
|
|
1556
1592
|
virtualViewPrerenderRatio_ = flagValue;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<c2d5d69c054d37738687e71db5da210d>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -89,7 +89,9 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
89
89
|
bool fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
|
90
90
|
bool fuseboxAssertSingleHostState();
|
|
91
91
|
bool fuseboxEnabledRelease();
|
|
92
|
+
bool fuseboxFrameRecordingEnabled();
|
|
92
93
|
bool fuseboxNetworkInspectionEnabled();
|
|
94
|
+
bool fuseboxScreenshotCaptureEnabled();
|
|
93
95
|
bool hideOffscreenVirtualViewsOnIOS();
|
|
94
96
|
bool overrideBySynchronousMountPropsAtMountingAndroid();
|
|
95
97
|
bool perfIssuesEnabled();
|
|
@@ -128,7 +130,7 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
128
130
|
std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
|
|
129
131
|
bool wasOverridden_;
|
|
130
132
|
|
|
131
|
-
std::array<std::atomic<const char*>,
|
|
133
|
+
std::array<std::atomic<const char*>, 87> accessedFeatureFlags_;
|
|
132
134
|
|
|
133
135
|
std::atomic<std::optional<bool>> commonTestFlag_;
|
|
134
136
|
std::atomic<std::optional<bool>> cdpInteractionMetricsEnabled_;
|
|
@@ -187,7 +189,9 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
187
189
|
std::atomic<std::optional<bool>> fixMappingOfEventPrioritiesBetweenFabricAndReact_;
|
|
188
190
|
std::atomic<std::optional<bool>> fuseboxAssertSingleHostState_;
|
|
189
191
|
std::atomic<std::optional<bool>> fuseboxEnabledRelease_;
|
|
192
|
+
std::atomic<std::optional<bool>> fuseboxFrameRecordingEnabled_;
|
|
190
193
|
std::atomic<std::optional<bool>> fuseboxNetworkInspectionEnabled_;
|
|
194
|
+
std::atomic<std::optional<bool>> fuseboxScreenshotCaptureEnabled_;
|
|
191
195
|
std::atomic<std::optional<bool>> hideOffscreenVirtualViewsOnIOS_;
|
|
192
196
|
std::atomic<std::optional<bool>> overrideBySynchronousMountPropsAtMountingAndroid_;
|
|
193
197
|
std::atomic<std::optional<bool>> perfIssuesEnabled_;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<d726518e7e191f59f8c89b5c14c168fd>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -255,10 +255,18 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
|
|
|
255
255
|
return false;
|
|
256
256
|
}
|
|
257
257
|
|
|
258
|
+
bool fuseboxFrameRecordingEnabled() override {
|
|
259
|
+
return false;
|
|
260
|
+
}
|
|
261
|
+
|
|
258
262
|
bool fuseboxNetworkInspectionEnabled() override {
|
|
259
263
|
return true;
|
|
260
264
|
}
|
|
261
265
|
|
|
266
|
+
bool fuseboxScreenshotCaptureEnabled() override {
|
|
267
|
+
return false;
|
|
268
|
+
}
|
|
269
|
+
|
|
262
270
|
bool hideOffscreenVirtualViewsOnIOS() override {
|
|
263
271
|
return false;
|
|
264
272
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<6e8731d9d7642d65b9b707741ef71873>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -558,6 +558,15 @@ class ReactNativeFeatureFlagsDynamicProvider : public ReactNativeFeatureFlagsDef
|
|
|
558
558
|
return ReactNativeFeatureFlagsDefaults::fuseboxEnabledRelease();
|
|
559
559
|
}
|
|
560
560
|
|
|
561
|
+
bool fuseboxFrameRecordingEnabled() override {
|
|
562
|
+
auto value = values_["fuseboxFrameRecordingEnabled"];
|
|
563
|
+
if (!value.isNull()) {
|
|
564
|
+
return value.getBool();
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
return ReactNativeFeatureFlagsDefaults::fuseboxFrameRecordingEnabled();
|
|
568
|
+
}
|
|
569
|
+
|
|
561
570
|
bool fuseboxNetworkInspectionEnabled() override {
|
|
562
571
|
auto value = values_["fuseboxNetworkInspectionEnabled"];
|
|
563
572
|
if (!value.isNull()) {
|
|
@@ -567,6 +576,15 @@ class ReactNativeFeatureFlagsDynamicProvider : public ReactNativeFeatureFlagsDef
|
|
|
567
576
|
return ReactNativeFeatureFlagsDefaults::fuseboxNetworkInspectionEnabled();
|
|
568
577
|
}
|
|
569
578
|
|
|
579
|
+
bool fuseboxScreenshotCaptureEnabled() override {
|
|
580
|
+
auto value = values_["fuseboxScreenshotCaptureEnabled"];
|
|
581
|
+
if (!value.isNull()) {
|
|
582
|
+
return value.getBool();
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
return ReactNativeFeatureFlagsDefaults::fuseboxScreenshotCaptureEnabled();
|
|
586
|
+
}
|
|
587
|
+
|
|
570
588
|
bool hideOffscreenVirtualViewsOnIOS() override {
|
|
571
589
|
auto value = values_["hideOffscreenVirtualViewsOnIOS"];
|
|
572
590
|
if (!value.isNull()) {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<886710691ddc524f90129b6921cb2c2a>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -82,7 +82,9 @@ class ReactNativeFeatureFlagsProvider {
|
|
|
82
82
|
virtual bool fixMappingOfEventPrioritiesBetweenFabricAndReact() = 0;
|
|
83
83
|
virtual bool fuseboxAssertSingleHostState() = 0;
|
|
84
84
|
virtual bool fuseboxEnabledRelease() = 0;
|
|
85
|
+
virtual bool fuseboxFrameRecordingEnabled() = 0;
|
|
85
86
|
virtual bool fuseboxNetworkInspectionEnabled() = 0;
|
|
87
|
+
virtual bool fuseboxScreenshotCaptureEnabled() = 0;
|
|
86
88
|
virtual bool hideOffscreenVirtualViewsOnIOS() = 0;
|
|
87
89
|
virtual bool overrideBySynchronousMountPropsAtMountingAndroid() = 0;
|
|
88
90
|
virtual bool perfIssuesEnabled() = 0;
|
|
@@ -470,7 +470,9 @@ void ObjCTurboModule::performVoidMethodInvocation(
|
|
|
470
470
|
@try {
|
|
471
471
|
[inv invokeWithTarget:strongModule];
|
|
472
472
|
} @catch (NSException *exception) {
|
|
473
|
-
|
|
473
|
+
// Void methods are always async, re-throw instead of converting to
|
|
474
|
+
// JSError, same as the async branch in performMethodInvocation.
|
|
475
|
+
@throw exception;
|
|
474
476
|
} @finally {
|
|
475
477
|
[retainedObjectsForInvocation removeAllObjects];
|
|
476
478
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<884b5382bd771ceb400f15ab4069bc75>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -329,11 +329,21 @@ bool NativeReactNativeFeatureFlags::fuseboxEnabledRelease(
|
|
|
329
329
|
return ReactNativeFeatureFlags::fuseboxEnabledRelease();
|
|
330
330
|
}
|
|
331
331
|
|
|
332
|
+
bool NativeReactNativeFeatureFlags::fuseboxFrameRecordingEnabled(
|
|
333
|
+
jsi::Runtime& /*runtime*/) {
|
|
334
|
+
return ReactNativeFeatureFlags::fuseboxFrameRecordingEnabled();
|
|
335
|
+
}
|
|
336
|
+
|
|
332
337
|
bool NativeReactNativeFeatureFlags::fuseboxNetworkInspectionEnabled(
|
|
333
338
|
jsi::Runtime& /*runtime*/) {
|
|
334
339
|
return ReactNativeFeatureFlags::fuseboxNetworkInspectionEnabled();
|
|
335
340
|
}
|
|
336
341
|
|
|
342
|
+
bool NativeReactNativeFeatureFlags::fuseboxScreenshotCaptureEnabled(
|
|
343
|
+
jsi::Runtime& /*runtime*/) {
|
|
344
|
+
return ReactNativeFeatureFlags::fuseboxScreenshotCaptureEnabled();
|
|
345
|
+
}
|
|
346
|
+
|
|
337
347
|
bool NativeReactNativeFeatureFlags::hideOffscreenVirtualViewsOnIOS(
|
|
338
348
|
jsi::Runtime& /*runtime*/) {
|
|
339
349
|
return ReactNativeFeatureFlags::hideOffscreenVirtualViewsOnIOS();
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<41e6644bf2ceca861bfb1e491c912c1d>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -150,8 +150,12 @@ class NativeReactNativeFeatureFlags
|
|
|
150
150
|
|
|
151
151
|
bool fuseboxEnabledRelease(jsi::Runtime& runtime);
|
|
152
152
|
|
|
153
|
+
bool fuseboxFrameRecordingEnabled(jsi::Runtime& runtime);
|
|
154
|
+
|
|
153
155
|
bool fuseboxNetworkInspectionEnabled(jsi::Runtime& runtime);
|
|
154
156
|
|
|
157
|
+
bool fuseboxScreenshotCaptureEnabled(jsi::Runtime& runtime);
|
|
158
|
+
|
|
155
159
|
bool hideOffscreenVirtualViewsOnIOS(jsi::Runtime& runtime);
|
|
156
160
|
|
|
157
161
|
bool overrideBySynchronousMountPropsAtMountingAndroid(jsi::Runtime& runtime);
|
|
@@ -25,16 +25,21 @@ void PerformanceObserver::handleEntry(const PerformanceEntry& entry) {
|
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
{
|
|
29
|
+
std::lock_guard lock(bufferMutex_);
|
|
30
|
+
buffer_.push_back(entry);
|
|
31
|
+
}
|
|
29
32
|
scheduleFlushBuffer();
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
std::vector<PerformanceEntry> PerformanceObserver::takeRecords() {
|
|
34
37
|
std::vector<PerformanceEntry> result;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
{
|
|
39
|
+
std::lock_guard lock(bufferMutex_);
|
|
40
|
+
buffer_.swap(result);
|
|
41
|
+
didScheduleFlushBuffer_ = false;
|
|
42
|
+
}
|
|
38
43
|
|
|
39
44
|
return result;
|
|
40
45
|
}
|
|
@@ -87,9 +92,16 @@ void PerformanceObserver::disconnect() noexcept {
|
|
|
87
92
|
}
|
|
88
93
|
|
|
89
94
|
void PerformanceObserver::scheduleFlushBuffer() {
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
bool shouldSchedule = false;
|
|
96
|
+
{
|
|
97
|
+
std::lock_guard lock(bufferMutex_);
|
|
98
|
+
if (!didScheduleFlushBuffer_) {
|
|
99
|
+
didScheduleFlushBuffer_ = true;
|
|
100
|
+
shouldSchedule = true;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
92
103
|
|
|
104
|
+
if (shouldSchedule) {
|
|
93
105
|
callback_();
|
|
94
106
|
}
|
|
95
107
|
}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
#include <functional>
|
|
16
16
|
#include <memory>
|
|
17
|
+
#include <mutex>
|
|
17
18
|
#include <unordered_set>
|
|
18
19
|
#include <vector>
|
|
19
20
|
|
|
@@ -126,6 +127,7 @@ class PerformanceObserver : public std::enable_shared_from_this<PerformanceObser
|
|
|
126
127
|
|
|
127
128
|
/// https://www.w3.org/TR/event-timing/#sec-modifications-perf-timeline
|
|
128
129
|
HighResDuration durationThreshold_ = DEFAULT_DURATION_THRESHOLD;
|
|
130
|
+
std::mutex bufferMutex_;
|
|
129
131
|
std::vector<PerformanceEntry> buffer_;
|
|
130
132
|
bool didScheduleFlushBuffer_ = false;
|
|
131
133
|
bool requiresDroppedEntries_ = false;
|