react-native 0.84.0-nightly-20251112-7dcedf1de → 0.84.0-nightly-20251114-dd6805dec
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/React/Base/RCTAssert.m +2 -2
- package/React/Base/RCTModuleData.mm +2 -2
- package/React/Base/RCTVersion.m +1 -1
- package/React/CxxModule/RCTCxxMethod.mm +1 -1
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +24 -8
- package/ReactAndroid/api/ReactAndroid.api +1 -0
- package/ReactAndroid/build.gradle.kts +2 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +28 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/FrameTiming.kt +68 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +20 -8
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +31 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +7 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +7 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +34 -12
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +7 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/soloader/OpenSourceMergedSoMapping.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +11 -2
- package/ReactAndroid/src/main/jni/CMakeLists.txt +8 -0
- package/ReactAndroid/src/main/jni/react/devsupport/CMakeLists.txt +3 -1
- package/ReactAndroid/src/main/jni/react/devsupport/JFrameTiming.cpp +46 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JFrameTiming.h +32 -0
- package/ReactAndroid/src/main/jni/react/devsupport/OnLoad.cpp +2 -0
- package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +14 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +43 -15
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +10 -4
- package/ReactAndroid/src/main/jni/react/tracing/CMakeLists.txt +27 -0
- package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +2 -0
- package/ReactCommon/React-Fabric.podspec +8 -2
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +9 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +13 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +17 -7
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +117 -81
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +8 -4
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +13 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +28 -10
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +4 -2
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +2 -2
- package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +5 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +16 -6
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +7 -3
- package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.h +4 -0
- package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +66 -0
- package/ReactCommon/react/networking/NetworkReporter.cpp +19 -22
- package/ReactCommon/react/networking/React-networking.podspec +0 -1
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +1 -1
- package/ReactCommon/react/renderer/animated/AnimatedModule.cpp +3 -0
- package/ReactCommon/react/renderer/core/ConcreteComponentDescriptor.h +21 -1
- package/ReactCommon/react/renderer/core/ConcreteShadowNode.h +14 -0
- package/ReactCommon/react/renderer/core/Props.cpp +23 -8
- package/ReactCommon/react/renderer/core/Props.h +6 -4
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
- package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
- package/ReactCommon/react/renderer/graphics/BlendMode.h +2 -0
- package/ReactCommon/react/renderer/graphics/Filter.h +2 -0
- package/ReactCommon/react/renderer/imagemanager/ImageManager.h +3 -0
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +7 -2
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +6 -3
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageManager.cpp +16 -4
- package/ReactCommon/react/renderer/imagemanager/platform/ios/react/renderer/imagemanager/RCTSyncImageManager.mm +1 -1
- package/ReactCommon/react/renderer/textlayoutmanager/platform/ios/react/renderer/textlayoutmanager/RCTTextLayoutManager.mm +2 -3
- package/ReactCommon/yoga/yoga/algorithm/FlexDirection.h +6 -6
- package/ReactCommon/yoga/yoga/algorithm/SizingMode.h +4 -4
- package/ReactCommon/yoga/yoga/style/Style.h +8 -8
- package/package.json +8 -8
- package/scripts/react_native_pods.rb +1 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +18 -8
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +4 -2
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
|
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
|
|
|
29
29
|
static major: number = 0;
|
|
30
30
|
static minor: number = 84;
|
|
31
31
|
static patch: number = 0;
|
|
32
|
-
static prerelease: string | null = 'nightly-
|
|
32
|
+
static prerelease: string | null = 'nightly-20251114-dd6805dec';
|
|
33
33
|
|
|
34
34
|
static getVersionString(): string {
|
|
35
35
|
return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
|
package/React/Base/RCTAssert.m
CHANGED
|
@@ -146,7 +146,7 @@ void RCTFatal(NSError *error)
|
|
|
146
146
|
// userInfo: <underlying error userinfo, plus untruncated description plus JS stack trace>
|
|
147
147
|
@throw [[NSException alloc] initWithName:name reason:message userInfo:userInfo];
|
|
148
148
|
#if DEBUG
|
|
149
|
-
} @catch (NSException *
|
|
149
|
+
} @catch (NSException *) {
|
|
150
150
|
}
|
|
151
151
|
#endif
|
|
152
152
|
}
|
|
@@ -216,7 +216,7 @@ void RCTFatalException(NSException *exception)
|
|
|
216
216
|
#endif
|
|
217
217
|
@throw exception;
|
|
218
218
|
#if DEBUG
|
|
219
|
-
} @catch (NSException *
|
|
219
|
+
} @catch (NSException *) {
|
|
220
220
|
}
|
|
221
221
|
#endif
|
|
222
222
|
}
|
|
@@ -241,7 +241,7 @@ RCT_NOT_IMPLEMENTED(-(instancetype)init);
|
|
|
241
241
|
RCT_PROFILE_BEGIN_EVENT(RCTProfileTagAlways, @"[RCTModuleData setBridgeForInstance]", nil);
|
|
242
242
|
@try {
|
|
243
243
|
[(id)_instance setValue:_bridge forKey:@"bridge"];
|
|
244
|
-
} @catch (NSException *
|
|
244
|
+
} @catch (NSException *) {
|
|
245
245
|
RCTLogError(
|
|
246
246
|
@"%@ has no setter or ivar for its bridge, which is not "
|
|
247
247
|
"permitted. You must either @synthesize the bridge property, "
|
|
@@ -291,7 +291,7 @@ RCT_NOT_IMPLEMENTED(-(instancetype)init);
|
|
|
291
291
|
if (implementsMethodQueue) {
|
|
292
292
|
@try {
|
|
293
293
|
[(id)_instance setValue:_methodQueue forKey:@"methodQueue"];
|
|
294
|
-
} @catch (NSException *
|
|
294
|
+
} @catch (NSException *) {
|
|
295
295
|
RCTLogError(
|
|
296
296
|
@"%@ is returning nil for its methodQueue, which is not "
|
|
297
297
|
"permitted. You must either return a pre-initialized "
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
|
|
24
24
|
RCTVersionMajor: @(0),
|
|
25
25
|
RCTVersionMinor: @(84),
|
|
26
26
|
RCTVersionPatch: @(0),
|
|
27
|
-
RCTVersionPrerelease: @"nightly-
|
|
27
|
+
RCTVersionPrerelease: @"nightly-20251114-dd6805dec",
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
return __rnVersion;
|
|
@@ -129,7 +129,7 @@ using namespace facebook::react;
|
|
|
129
129
|
// TODO: we should convert this to JSValue directly
|
|
130
130
|
return convertFollyDynamicToId(result);
|
|
131
131
|
}
|
|
132
|
-
} catch (const facebook::xplat::JsArgumentException &ex) {
|
|
132
|
+
} catch ([[maybe_unused]] const facebook::xplat::JsArgumentException &ex) {
|
|
133
133
|
RCTLogError(
|
|
134
134
|
@"Method %@.%s argument error: %s",
|
|
135
135
|
RCTBridgeModuleNameForClass([module class]),
|
|
@@ -247,6 +247,7 @@ protected:
|
|
|
247
247
|
methodMap_["enableDoubleMeasurementFixAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enableDoubleMeasurementFixAndroid};
|
|
248
248
|
methodMap_["enableEagerMainQueueModulesOnIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableEagerMainQueueModulesOnIOS};
|
|
249
249
|
methodMap_["enableEagerRootViewAttachment"] = MethodMetadata {.argCount = 0, .invoker = __enableEagerRootViewAttachment};
|
|
250
|
+
methodMap_["enableExclusivePropsUpdateAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enableExclusivePropsUpdateAndroid};
|
|
250
251
|
methodMap_["enableFabricLogs"] = MethodMetadata {.argCount = 0, .invoker = __enableFabricLogs};
|
|
251
252
|
methodMap_["enableFabricRenderer"] = MethodMetadata {.argCount = 0, .invoker = __enableFabricRenderer};
|
|
252
253
|
methodMap_["enableFontScaleChangesUpdatingLayout"] = MethodMetadata {.argCount = 0, .invoker = __enableFontScaleChangesUpdatingLayout};
|
|
@@ -258,6 +259,7 @@ protected:
|
|
|
258
259
|
methodMap_["enableImmediateUpdateModeForContentOffsetChanges"] = MethodMetadata {.argCount = 0, .invoker = __enableImmediateUpdateModeForContentOffsetChanges};
|
|
259
260
|
methodMap_["enableImperativeFocus"] = MethodMetadata {.argCount = 0, .invoker = __enableImperativeFocus};
|
|
260
261
|
methodMap_["enableInteropViewManagerClassLookUpOptimizationIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableInteropViewManagerClassLookUpOptimizationIOS};
|
|
262
|
+
methodMap_["enableIntersectionObserverByDefault"] = MethodMetadata {.argCount = 0, .invoker = __enableIntersectionObserverByDefault};
|
|
261
263
|
methodMap_["enableKeyEvents"] = MethodMetadata {.argCount = 0, .invoker = __enableKeyEvents};
|
|
262
264
|
methodMap_["enableLayoutAnimationsOnAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enableLayoutAnimationsOnAndroid};
|
|
263
265
|
methodMap_["enableLayoutAnimationsOnIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableLayoutAnimationsOnIOS};
|
|
@@ -267,7 +269,6 @@ protected:
|
|
|
267
269
|
methodMap_["enableNetworkEventReporting"] = MethodMetadata {.argCount = 0, .invoker = __enableNetworkEventReporting};
|
|
268
270
|
methodMap_["enablePreparedTextLayout"] = MethodMetadata {.argCount = 0, .invoker = __enablePreparedTextLayout};
|
|
269
271
|
methodMap_["enablePropsUpdateReconciliationAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enablePropsUpdateReconciliationAndroid};
|
|
270
|
-
methodMap_["enableResourceTimingAPI"] = MethodMetadata {.argCount = 0, .invoker = __enableResourceTimingAPI};
|
|
271
272
|
methodMap_["enableSwiftUIBasedFilters"] = MethodMetadata {.argCount = 0, .invoker = __enableSwiftUIBasedFilters};
|
|
272
273
|
methodMap_["enableViewCulling"] = MethodMetadata {.argCount = 0, .invoker = __enableViewCulling};
|
|
273
274
|
methodMap_["enableViewRecycling"] = MethodMetadata {.argCount = 0, .invoker = __enableViewRecycling};
|
|
@@ -292,6 +293,7 @@ protected:
|
|
|
292
293
|
methodMap_["preparedTextCacheSize"] = MethodMetadata {.argCount = 0, .invoker = __preparedTextCacheSize};
|
|
293
294
|
methodMap_["preventShadowTreeCommitExhaustion"] = MethodMetadata {.argCount = 0, .invoker = __preventShadowTreeCommitExhaustion};
|
|
294
295
|
methodMap_["shouldPressibilityUseW3CPointerEventsForHover"] = MethodMetadata {.argCount = 0, .invoker = __shouldPressibilityUseW3CPointerEventsForHover};
|
|
296
|
+
methodMap_["shouldSetEnabledBasedOnAccessibilityState"] = MethodMetadata {.argCount = 0, .invoker = __shouldSetEnabledBasedOnAccessibilityState};
|
|
295
297
|
methodMap_["shouldTriggerResponderTransferOnScrollAndroid"] = MethodMetadata {.argCount = 0, .invoker = __shouldTriggerResponderTransferOnScrollAndroid};
|
|
296
298
|
methodMap_["skipActivityIdentityAssertionOnHostPause"] = MethodMetadata {.argCount = 0, .invoker = __skipActivityIdentityAssertionOnHostPause};
|
|
297
299
|
methodMap_["traceTurboModulePromiseRejectionsOnAndroid"] = MethodMetadata {.argCount = 0, .invoker = __traceTurboModulePromiseRejectionsOnAndroid};
|
|
@@ -481,6 +483,13 @@ private:
|
|
|
481
483
|
return bridging::callFromJs<bool>(rt, &T::enableEagerRootViewAttachment, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
482
484
|
}
|
|
483
485
|
|
|
486
|
+
static jsi::Value __enableExclusivePropsUpdateAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
487
|
+
static_assert(
|
|
488
|
+
bridging::getParameterCount(&T::enableExclusivePropsUpdateAndroid) == 1,
|
|
489
|
+
"Expected enableExclusivePropsUpdateAndroid(...) to have 1 parameters");
|
|
490
|
+
return bridging::callFromJs<bool>(rt, &T::enableExclusivePropsUpdateAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
491
|
+
}
|
|
492
|
+
|
|
484
493
|
static jsi::Value __enableFabricLogs(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
485
494
|
static_assert(
|
|
486
495
|
bridging::getParameterCount(&T::enableFabricLogs) == 1,
|
|
@@ -558,6 +567,13 @@ private:
|
|
|
558
567
|
return bridging::callFromJs<bool>(rt, &T::enableInteropViewManagerClassLookUpOptimizationIOS, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
559
568
|
}
|
|
560
569
|
|
|
570
|
+
static jsi::Value __enableIntersectionObserverByDefault(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
571
|
+
static_assert(
|
|
572
|
+
bridging::getParameterCount(&T::enableIntersectionObserverByDefault) == 1,
|
|
573
|
+
"Expected enableIntersectionObserverByDefault(...) to have 1 parameters");
|
|
574
|
+
return bridging::callFromJs<bool>(rt, &T::enableIntersectionObserverByDefault, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
575
|
+
}
|
|
576
|
+
|
|
561
577
|
static jsi::Value __enableKeyEvents(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
562
578
|
static_assert(
|
|
563
579
|
bridging::getParameterCount(&T::enableKeyEvents) == 1,
|
|
@@ -621,13 +637,6 @@ private:
|
|
|
621
637
|
return bridging::callFromJs<bool>(rt, &T::enablePropsUpdateReconciliationAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
622
638
|
}
|
|
623
639
|
|
|
624
|
-
static jsi::Value __enableResourceTimingAPI(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
625
|
-
static_assert(
|
|
626
|
-
bridging::getParameterCount(&T::enableResourceTimingAPI) == 1,
|
|
627
|
-
"Expected enableResourceTimingAPI(...) to have 1 parameters");
|
|
628
|
-
return bridging::callFromJs<bool>(rt, &T::enableResourceTimingAPI, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
629
|
-
}
|
|
630
|
-
|
|
631
640
|
static jsi::Value __enableSwiftUIBasedFilters(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
632
641
|
static_assert(
|
|
633
642
|
bridging::getParameterCount(&T::enableSwiftUIBasedFilters) == 1,
|
|
@@ -796,6 +805,13 @@ private:
|
|
|
796
805
|
return bridging::callFromJs<bool>(rt, &T::shouldPressibilityUseW3CPointerEventsForHover, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
797
806
|
}
|
|
798
807
|
|
|
808
|
+
static jsi::Value __shouldSetEnabledBasedOnAccessibilityState(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
809
|
+
static_assert(
|
|
810
|
+
bridging::getParameterCount(&T::shouldSetEnabledBasedOnAccessibilityState) == 1,
|
|
811
|
+
"Expected shouldSetEnabledBasedOnAccessibilityState(...) to have 1 parameters");
|
|
812
|
+
return bridging::callFromJs<bool>(rt, &T::shouldSetEnabledBasedOnAccessibilityState, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
813
|
+
}
|
|
814
|
+
|
|
799
815
|
static jsi::Value __shouldTriggerResponderTransferOnScrollAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
800
816
|
static_assert(
|
|
801
817
|
bridging::getParameterCount(&T::shouldTriggerResponderTransferOnScrollAndroid) == 1,
|
|
@@ -3186,6 +3186,7 @@ public final class com/facebook/react/soloader/OpenSourceMergedSoMapping : com/f
|
|
|
3186
3186
|
public final fun libreact_devsupportjni_so ()I
|
|
3187
3187
|
public final fun libreact_featureflagsjni_so ()I
|
|
3188
3188
|
public final fun libreact_newarchdefaults_so ()I
|
|
3189
|
+
public final fun libreact_performancetracerjni_so ()I
|
|
3189
3190
|
public final fun libreactnative_so ()I
|
|
3190
3191
|
public final fun libreactnativeblob_so ()I
|
|
3191
3192
|
public final fun libreactnativejni_common_so ()I
|
|
@@ -104,6 +104,8 @@ val preparePrefab by
|
|
|
104
104
|
Pair(File(buildDir, "third-party-ndk/glog/exported/").absolutePath, ""),
|
|
105
105
|
// jsiinpsector
|
|
106
106
|
Pair("../ReactCommon/jsinspector-modern/", "jsinspector-modern/"),
|
|
107
|
+
// jsitooling
|
|
108
|
+
Pair("../ReactCommon/jsitooling/", ""),
|
|
107
109
|
// mapbufferjni
|
|
108
110
|
Pair("src/main/jni/react/mapbuffer", ""),
|
|
109
111
|
// turbomodulejsijni
|
|
@@ -72,6 +72,7 @@ import com.facebook.react.devsupport.perfmonitor.PerfMonitorDevHelper
|
|
|
72
72
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorOverlayManager
|
|
73
73
|
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
74
74
|
import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags
|
|
75
|
+
import com.facebook.react.internal.tracing.PerformanceTracer
|
|
75
76
|
import com.facebook.react.modules.core.RCTNativeAppEventEmitter
|
|
76
77
|
import com.facebook.react.modules.debug.interfaces.DeveloperSettings
|
|
77
78
|
import com.facebook.react.packagerconnection.RequestHandler
|
|
@@ -211,6 +212,8 @@ public abstract class DevSupportManagerBase(
|
|
|
211
212
|
private var perfMonitorOverlayManager: PerfMonitorOverlayManager? = null
|
|
212
213
|
private var perfMonitorInitialized = false
|
|
213
214
|
private var tracingStateProvider: TracingStateProvider? = null
|
|
215
|
+
private var tracingStateSubscriptionId: Int? = null
|
|
216
|
+
private var frameTiming: FrameTiming? = null
|
|
214
217
|
|
|
215
218
|
public override var keyboardShortcutsEnabled: Boolean = true
|
|
216
219
|
public override var devMenuEnabled: Boolean = true
|
|
@@ -969,12 +972,37 @@ public abstract class DevSupportManagerBase(
|
|
|
969
972
|
isPackagerConnected = true
|
|
970
973
|
perfMonitorOverlayManager?.enable()
|
|
971
974
|
perfMonitorOverlayManager?.startBackgroundTrace()
|
|
975
|
+
|
|
976
|
+
// Subscribe to tracing state changes
|
|
977
|
+
tracingStateSubscriptionId =
|
|
978
|
+
PerformanceTracer.subscribeToTracingStateChanges(
|
|
979
|
+
object : PerformanceTracer.TracingStateCallback {
|
|
980
|
+
override fun onTracingStateChanged(isTracing: Boolean) {
|
|
981
|
+
if (isTracing) {
|
|
982
|
+
if (frameTiming == null) {
|
|
983
|
+
currentActivity?.window?.let { window ->
|
|
984
|
+
frameTiming = FrameTiming(window)
|
|
985
|
+
}
|
|
986
|
+
}
|
|
987
|
+
frameTiming?.startMonitoring()
|
|
988
|
+
} else {
|
|
989
|
+
frameTiming?.stopMonitoring()
|
|
990
|
+
}
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
)
|
|
972
994
|
}
|
|
973
995
|
|
|
974
996
|
override fun onPackagerDisconnected() {
|
|
975
997
|
isPackagerConnected = false
|
|
976
998
|
perfMonitorOverlayManager?.disable()
|
|
977
999
|
perfMonitorOverlayManager?.stopBackgroundTrace()
|
|
1000
|
+
|
|
1001
|
+
// Unsubscribe from tracing state changes
|
|
1002
|
+
tracingStateSubscriptionId?.let { subscriptionId ->
|
|
1003
|
+
PerformanceTracer.unsubscribeFromTracingStateChanges(subscriptionId)
|
|
1004
|
+
tracingStateSubscriptionId = null
|
|
1005
|
+
}
|
|
978
1006
|
}
|
|
979
1007
|
|
|
980
1008
|
override fun onPackagerReloadCommand() {
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.devsupport
|
|
9
|
+
|
|
10
|
+
import android.os.Build
|
|
11
|
+
import android.os.Handler
|
|
12
|
+
import android.os.Looper
|
|
13
|
+
import android.view.FrameMetrics
|
|
14
|
+
import android.view.Window
|
|
15
|
+
import com.facebook.proguard.annotations.DoNotStripAny
|
|
16
|
+
import com.facebook.soloader.SoLoader
|
|
17
|
+
|
|
18
|
+
@DoNotStripAny
|
|
19
|
+
internal class FrameTiming(private val window: Window) {
|
|
20
|
+
init {
|
|
21
|
+
SoLoader.loadLibrary("react_devsupportjni")
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
private var frameCounter: Int = 0
|
|
25
|
+
|
|
26
|
+
private external fun setLayerTreeId(frame: String, layerTreeId: Int)
|
|
27
|
+
|
|
28
|
+
private val frameMetricsListener =
|
|
29
|
+
Window.OnFrameMetricsAvailableListener { _, frameMetrics, dropCount ->
|
|
30
|
+
val metrics = FrameMetrics(frameMetrics)
|
|
31
|
+
|
|
32
|
+
val paintStartTime = metrics.getMetric(FrameMetrics.INTENDED_VSYNC_TIMESTAMP)
|
|
33
|
+
val totalDuration = metrics.getMetric(FrameMetrics.TOTAL_DURATION)
|
|
34
|
+
|
|
35
|
+
val currentFrame = frameCounter++
|
|
36
|
+
reportFrameTiming(
|
|
37
|
+
frame = currentFrame,
|
|
38
|
+
paintStartNanos = paintStartTime,
|
|
39
|
+
paintEndNanos = paintStartTime + totalDuration,
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
companion object {
|
|
44
|
+
@JvmStatic
|
|
45
|
+
private external fun reportFrameTiming(frame: Int, paintStartNanos: Long, paintEndNanos: Long)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
private val handler = Handler(Looper.getMainLooper())
|
|
49
|
+
|
|
50
|
+
internal fun startMonitoring() {
|
|
51
|
+
frameCounter = 0
|
|
52
|
+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
|
|
53
|
+
return
|
|
54
|
+
}
|
|
55
|
+
window.addOnFrameMetricsAvailableListener(frameMetricsListener, handler)
|
|
56
|
+
|
|
57
|
+
// Hardcoded frame identfier and layerTreeId. Needed for DevTools to
|
|
58
|
+
// begin parsing frame events.
|
|
59
|
+
setLayerTreeId("", 1)
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
internal fun stopMonitoring() {
|
|
63
|
+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
|
|
64
|
+
return
|
|
65
|
+
}
|
|
66
|
+
window.removeOnFrameMetricsAvailableListener(frameMetricsListener)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -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<<10999fe360a25451c316eed2d27b6d92>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -168,6 +168,12 @@ public object ReactNativeFeatureFlags {
|
|
|
168
168
|
@JvmStatic
|
|
169
169
|
public fun enableEagerRootViewAttachment(): Boolean = accessor.enableEagerRootViewAttachment()
|
|
170
170
|
|
|
171
|
+
/**
|
|
172
|
+
* When enabled, Android will disable Props 1.5 raw value merging when Props 2.0 is available.
|
|
173
|
+
*/
|
|
174
|
+
@JvmStatic
|
|
175
|
+
public fun enableExclusivePropsUpdateAndroid(): Boolean = accessor.enableExclusivePropsUpdateAndroid()
|
|
176
|
+
|
|
171
177
|
/**
|
|
172
178
|
* This feature flag enables logs for Fabric.
|
|
173
179
|
*/
|
|
@@ -234,6 +240,12 @@ public object ReactNativeFeatureFlags {
|
|
|
234
240
|
@JvmStatic
|
|
235
241
|
public fun enableInteropViewManagerClassLookUpOptimizationIOS(): Boolean = accessor.enableInteropViewManagerClassLookUpOptimizationIOS()
|
|
236
242
|
|
|
243
|
+
/**
|
|
244
|
+
* Enables the IntersectionObserver Web API in React Native.
|
|
245
|
+
*/
|
|
246
|
+
@JvmStatic
|
|
247
|
+
public fun enableIntersectionObserverByDefault(): Boolean = accessor.enableIntersectionObserverByDefault()
|
|
248
|
+
|
|
237
249
|
/**
|
|
238
250
|
* Enables key up/down/press events to be sent to JS from components
|
|
239
251
|
*/
|
|
@@ -271,7 +283,7 @@ public object ReactNativeFeatureFlags {
|
|
|
271
283
|
public fun enableNativeCSSParsing(): Boolean = accessor.enableNativeCSSParsing()
|
|
272
284
|
|
|
273
285
|
/**
|
|
274
|
-
* Enable network event reporting hooks in each native platform through `NetworkReporter
|
|
286
|
+
* Enable network event reporting hooks in each native platform through `NetworkReporter` (Web Perf APIs + CDP). This flag should be combined with `fuseboxNetworkInspectionEnabled` to enable Network CDP debugging.
|
|
275
287
|
*/
|
|
276
288
|
@JvmStatic
|
|
277
289
|
public fun enableNetworkEventReporting(): Boolean = accessor.enableNetworkEventReporting()
|
|
@@ -288,12 +300,6 @@ public object ReactNativeFeatureFlags {
|
|
|
288
300
|
@JvmStatic
|
|
289
301
|
public fun enablePropsUpdateReconciliationAndroid(): Boolean = accessor.enablePropsUpdateReconciliationAndroid()
|
|
290
302
|
|
|
291
|
-
/**
|
|
292
|
-
* Enables the reporting of network resource timings through `PerformanceObserver`.
|
|
293
|
-
*/
|
|
294
|
-
@JvmStatic
|
|
295
|
-
public fun enableResourceTimingAPI(): Boolean = accessor.enableResourceTimingAPI()
|
|
296
|
-
|
|
297
303
|
/**
|
|
298
304
|
* When enabled, it will use SwiftUI for filter effects like blur on iOS.
|
|
299
305
|
*/
|
|
@@ -438,6 +444,12 @@ public object ReactNativeFeatureFlags {
|
|
|
438
444
|
@JvmStatic
|
|
439
445
|
public fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean = accessor.shouldPressibilityUseW3CPointerEventsForHover()
|
|
440
446
|
|
|
447
|
+
/**
|
|
448
|
+
* Fix BaseViewManager to properly set view.setEnabled() based on accessibilityState.disabled.
|
|
449
|
+
*/
|
|
450
|
+
@JvmStatic
|
|
451
|
+
public fun shouldSetEnabledBasedOnAccessibilityState(): Boolean = accessor.shouldSetEnabledBasedOnAccessibilityState()
|
|
452
|
+
|
|
441
453
|
/**
|
|
442
454
|
* Do not emit touchcancel from Android ScrollView, instead native topScroll event will trigger responder transfer and terminate in RN renderer.
|
|
443
455
|
*/
|
|
@@ -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<<b935cd2546fdba877e317aea30fceaf9>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -43,6 +43,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
43
43
|
private var enableDoubleMeasurementFixAndroidCache: Boolean? = null
|
|
44
44
|
private var enableEagerMainQueueModulesOnIOSCache: Boolean? = null
|
|
45
45
|
private var enableEagerRootViewAttachmentCache: Boolean? = null
|
|
46
|
+
private var enableExclusivePropsUpdateAndroidCache: Boolean? = null
|
|
46
47
|
private var enableFabricLogsCache: Boolean? = null
|
|
47
48
|
private var enableFabricRendererCache: Boolean? = null
|
|
48
49
|
private var enableFontScaleChangesUpdatingLayoutCache: Boolean? = null
|
|
@@ -54,6 +55,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
54
55
|
private var enableImmediateUpdateModeForContentOffsetChangesCache: Boolean? = null
|
|
55
56
|
private var enableImperativeFocusCache: Boolean? = null
|
|
56
57
|
private var enableInteropViewManagerClassLookUpOptimizationIOSCache: Boolean? = null
|
|
58
|
+
private var enableIntersectionObserverByDefaultCache: Boolean? = null
|
|
57
59
|
private var enableKeyEventsCache: Boolean? = null
|
|
58
60
|
private var enableLayoutAnimationsOnAndroidCache: Boolean? = null
|
|
59
61
|
private var enableLayoutAnimationsOnIOSCache: Boolean? = null
|
|
@@ -63,7 +65,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
63
65
|
private var enableNetworkEventReportingCache: Boolean? = null
|
|
64
66
|
private var enablePreparedTextLayoutCache: Boolean? = null
|
|
65
67
|
private var enablePropsUpdateReconciliationAndroidCache: Boolean? = null
|
|
66
|
-
private var enableResourceTimingAPICache: Boolean? = null
|
|
67
68
|
private var enableSwiftUIBasedFiltersCache: Boolean? = null
|
|
68
69
|
private var enableViewCullingCache: Boolean? = null
|
|
69
70
|
private var enableViewRecyclingCache: Boolean? = null
|
|
@@ -88,6 +89,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
88
89
|
private var preparedTextCacheSizeCache: Double? = null
|
|
89
90
|
private var preventShadowTreeCommitExhaustionCache: Boolean? = null
|
|
90
91
|
private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
|
|
92
|
+
private var shouldSetEnabledBasedOnAccessibilityStateCache: Boolean? = null
|
|
91
93
|
private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
|
|
92
94
|
private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
|
|
93
95
|
private var traceTurboModulePromiseRejectionsOnAndroidCache: Boolean? = null
|
|
@@ -314,6 +316,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
314
316
|
return cached
|
|
315
317
|
}
|
|
316
318
|
|
|
319
|
+
override fun enableExclusivePropsUpdateAndroid(): Boolean {
|
|
320
|
+
var cached = enableExclusivePropsUpdateAndroidCache
|
|
321
|
+
if (cached == null) {
|
|
322
|
+
cached = ReactNativeFeatureFlagsCxxInterop.enableExclusivePropsUpdateAndroid()
|
|
323
|
+
enableExclusivePropsUpdateAndroidCache = cached
|
|
324
|
+
}
|
|
325
|
+
return cached
|
|
326
|
+
}
|
|
327
|
+
|
|
317
328
|
override fun enableFabricLogs(): Boolean {
|
|
318
329
|
var cached = enableFabricLogsCache
|
|
319
330
|
if (cached == null) {
|
|
@@ -413,6 +424,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
413
424
|
return cached
|
|
414
425
|
}
|
|
415
426
|
|
|
427
|
+
override fun enableIntersectionObserverByDefault(): Boolean {
|
|
428
|
+
var cached = enableIntersectionObserverByDefaultCache
|
|
429
|
+
if (cached == null) {
|
|
430
|
+
cached = ReactNativeFeatureFlagsCxxInterop.enableIntersectionObserverByDefault()
|
|
431
|
+
enableIntersectionObserverByDefaultCache = cached
|
|
432
|
+
}
|
|
433
|
+
return cached
|
|
434
|
+
}
|
|
435
|
+
|
|
416
436
|
override fun enableKeyEvents(): Boolean {
|
|
417
437
|
var cached = enableKeyEventsCache
|
|
418
438
|
if (cached == null) {
|
|
@@ -494,15 +514,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
494
514
|
return cached
|
|
495
515
|
}
|
|
496
516
|
|
|
497
|
-
override fun enableResourceTimingAPI(): Boolean {
|
|
498
|
-
var cached = enableResourceTimingAPICache
|
|
499
|
-
if (cached == null) {
|
|
500
|
-
cached = ReactNativeFeatureFlagsCxxInterop.enableResourceTimingAPI()
|
|
501
|
-
enableResourceTimingAPICache = cached
|
|
502
|
-
}
|
|
503
|
-
return cached
|
|
504
|
-
}
|
|
505
|
-
|
|
506
517
|
override fun enableSwiftUIBasedFilters(): Boolean {
|
|
507
518
|
var cached = enableSwiftUIBasedFiltersCache
|
|
508
519
|
if (cached == null) {
|
|
@@ -719,6 +730,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
719
730
|
return cached
|
|
720
731
|
}
|
|
721
732
|
|
|
733
|
+
override fun shouldSetEnabledBasedOnAccessibilityState(): Boolean {
|
|
734
|
+
var cached = shouldSetEnabledBasedOnAccessibilityStateCache
|
|
735
|
+
if (cached == null) {
|
|
736
|
+
cached = ReactNativeFeatureFlagsCxxInterop.shouldSetEnabledBasedOnAccessibilityState()
|
|
737
|
+
shouldSetEnabledBasedOnAccessibilityStateCache = cached
|
|
738
|
+
}
|
|
739
|
+
return cached
|
|
740
|
+
}
|
|
741
|
+
|
|
722
742
|
override fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean {
|
|
723
743
|
var cached = shouldTriggerResponderTransferOnScrollAndroidCache
|
|
724
744
|
if (cached == null) {
|
|
@@ -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<<b7a9d14c50bae9afa15b3ead8308fc9b>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -74,6 +74,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
74
74
|
|
|
75
75
|
@DoNotStrip @JvmStatic public external fun enableEagerRootViewAttachment(): Boolean
|
|
76
76
|
|
|
77
|
+
@DoNotStrip @JvmStatic public external fun enableExclusivePropsUpdateAndroid(): Boolean
|
|
78
|
+
|
|
77
79
|
@DoNotStrip @JvmStatic public external fun enableFabricLogs(): Boolean
|
|
78
80
|
|
|
79
81
|
@DoNotStrip @JvmStatic public external fun enableFabricRenderer(): Boolean
|
|
@@ -96,6 +98,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
96
98
|
|
|
97
99
|
@DoNotStrip @JvmStatic public external fun enableInteropViewManagerClassLookUpOptimizationIOS(): Boolean
|
|
98
100
|
|
|
101
|
+
@DoNotStrip @JvmStatic public external fun enableIntersectionObserverByDefault(): Boolean
|
|
102
|
+
|
|
99
103
|
@DoNotStrip @JvmStatic public external fun enableKeyEvents(): Boolean
|
|
100
104
|
|
|
101
105
|
@DoNotStrip @JvmStatic public external fun enableLayoutAnimationsOnAndroid(): Boolean
|
|
@@ -114,8 +118,6 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
114
118
|
|
|
115
119
|
@DoNotStrip @JvmStatic public external fun enablePropsUpdateReconciliationAndroid(): Boolean
|
|
116
120
|
|
|
117
|
-
@DoNotStrip @JvmStatic public external fun enableResourceTimingAPI(): Boolean
|
|
118
|
-
|
|
119
121
|
@DoNotStrip @JvmStatic public external fun enableSwiftUIBasedFilters(): Boolean
|
|
120
122
|
|
|
121
123
|
@DoNotStrip @JvmStatic public external fun enableViewCulling(): Boolean
|
|
@@ -164,6 +166,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
164
166
|
|
|
165
167
|
@DoNotStrip @JvmStatic public external fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean
|
|
166
168
|
|
|
169
|
+
@DoNotStrip @JvmStatic public external fun shouldSetEnabledBasedOnAccessibilityState(): Boolean
|
|
170
|
+
|
|
167
171
|
@DoNotStrip @JvmStatic public external fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean
|
|
168
172
|
|
|
169
173
|
@DoNotStrip @JvmStatic public external fun skipActivityIdentityAssertionOnHostPause(): Boolean
|
|
@@ -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<<4b24bc3165b6ab1583efc8e1a22444ed>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -69,6 +69,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
69
69
|
|
|
70
70
|
override fun enableEagerRootViewAttachment(): Boolean = false
|
|
71
71
|
|
|
72
|
+
override fun enableExclusivePropsUpdateAndroid(): Boolean = false
|
|
73
|
+
|
|
72
74
|
override fun enableFabricLogs(): Boolean = false
|
|
73
75
|
|
|
74
76
|
override fun enableFabricRenderer(): Boolean = false
|
|
@@ -91,6 +93,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
91
93
|
|
|
92
94
|
override fun enableInteropViewManagerClassLookUpOptimizationIOS(): Boolean = false
|
|
93
95
|
|
|
96
|
+
override fun enableIntersectionObserverByDefault(): Boolean = false
|
|
97
|
+
|
|
94
98
|
override fun enableKeyEvents(): Boolean = false
|
|
95
99
|
|
|
96
100
|
override fun enableLayoutAnimationsOnAndroid(): Boolean = false
|
|
@@ -109,8 +113,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
109
113
|
|
|
110
114
|
override fun enablePropsUpdateReconciliationAndroid(): Boolean = false
|
|
111
115
|
|
|
112
|
-
override fun enableResourceTimingAPI(): Boolean = false
|
|
113
|
-
|
|
114
116
|
override fun enableSwiftUIBasedFilters(): Boolean = false
|
|
115
117
|
|
|
116
118
|
override fun enableViewCulling(): Boolean = false
|
|
@@ -159,6 +161,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
159
161
|
|
|
160
162
|
override fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean = false
|
|
161
163
|
|
|
164
|
+
override fun shouldSetEnabledBasedOnAccessibilityState(): Boolean = true
|
|
165
|
+
|
|
162
166
|
override fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean = false
|
|
163
167
|
|
|
164
168
|
override fun skipActivityIdentityAssertionOnHostPause(): Boolean = false
|