react-native 0.83.0-nightly-20251104-502efe1cc → 0.83.0-rc.0

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.
Files changed (35) hide show
  1. package/Libraries/Core/ReactNativeVersion.js +1 -1
  2. package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +0 -3
  3. package/React/Base/RCTVersion.m +1 -1
  4. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +8 -0
  5. package/ReactAndroid/gradle.properties +1 -1
  6. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +7 -1
  7. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +11 -1
  8. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +3 -1
  9. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +3 -1
  10. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +12 -1
  11. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +3 -1
  12. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  13. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +2 -1
  14. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +4 -5
  15. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -1
  16. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -1
  17. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  18. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +2 -0
  19. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +55 -3
  20. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -1
  21. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -1
  22. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +36 -18
  23. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +4 -2
  24. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +5 -1
  25. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +10 -1
  26. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +2 -1
  27. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +6 -1
  28. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -1
  29. package/package.json +9 -9
  30. package/sdks/.hermesversion +1 -0
  31. package/sdks/hermes-engine/version.properties +1 -1
  32. package/src/private/featureflags/ReactNativeFeatureFlags.js +6 -1
  33. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -1
  34. package/src/private/webapis/intersectionobserver/IntersectionObserver.js +0 -48
  35. package/ReactCommon/jsinspector-modern/tests/TracingTest.h +0 -82
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
29
29
  static major: number = 0;
30
30
  static minor: number = 83;
31
31
  static patch: number = 0;
32
- static prerelease: string | null = 'nightly-20251104-502efe1cc';
32
+ static prerelease: string | null = 'rc.0';
33
33
 
34
34
  static getVersionString(): string {
35
35
  return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
@@ -727,9 +727,6 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame)
727
727
  return @"Join";
728
728
  case UIReturnKeyEmergencyCall:
729
729
  return @"Emergency Call";
730
- case UIReturnKeyDefault:
731
- case UIReturnKeyContinue:
732
- case UIReturnKeyDone:
733
730
  default:
734
731
  return @"Done";
735
732
  }
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(83),
26
26
  RCTVersionPatch: @(0),
27
- RCTVersionPrerelease: @"nightly-20251104-502efe1cc",
27
+ RCTVersionPrerelease: @"rc.0",
28
28
  };
29
29
  });
30
30
  return __rnVersion;
@@ -289,6 +289,7 @@ protected:
289
289
  methodMap_["shouldPressibilityUseW3CPointerEventsForHover"] = MethodMetadata {.argCount = 0, .invoker = __shouldPressibilityUseW3CPointerEventsForHover};
290
290
  methodMap_["shouldTriggerResponderTransferOnScrollAndroid"] = MethodMetadata {.argCount = 0, .invoker = __shouldTriggerResponderTransferOnScrollAndroid};
291
291
  methodMap_["skipActivityIdentityAssertionOnHostPause"] = MethodMetadata {.argCount = 0, .invoker = __skipActivityIdentityAssertionOnHostPause};
292
+ methodMap_["sweepActiveTouchOnChildNativeGesturesAndroid"] = MethodMetadata {.argCount = 0, .invoker = __sweepActiveTouchOnChildNativeGesturesAndroid};
292
293
  methodMap_["traceTurboModulePromiseRejectionsOnAndroid"] = MethodMetadata {.argCount = 0, .invoker = __traceTurboModulePromiseRejectionsOnAndroid};
293
294
  methodMap_["updateRuntimeShadowNodeReferencesOnCommit"] = MethodMetadata {.argCount = 0, .invoker = __updateRuntimeShadowNodeReferencesOnCommit};
294
295
  methodMap_["useAlwaysAvailableJSErrorHandling"] = MethodMetadata {.argCount = 0, .invoker = __useAlwaysAvailableJSErrorHandling};
@@ -771,6 +772,13 @@ private:
771
772
  return bridging::callFromJs<bool>(rt, &T::skipActivityIdentityAssertionOnHostPause, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
772
773
  }
773
774
 
775
+ static jsi::Value __sweepActiveTouchOnChildNativeGesturesAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
776
+ static_assert(
777
+ bridging::getParameterCount(&T::sweepActiveTouchOnChildNativeGesturesAndroid) == 1,
778
+ "Expected sweepActiveTouchOnChildNativeGesturesAndroid(...) to have 1 parameters");
779
+ return bridging::callFromJs<bool>(rt, &T::sweepActiveTouchOnChildNativeGesturesAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
780
+ }
781
+
774
782
  static jsi::Value __traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
775
783
  static_assert(
776
784
  bridging::getParameterCount(&T::traceTurboModulePromiseRejectionsOnAndroid) == 1,
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.83.0-nightly-20251104-502efe1cc
1
+ VERSION_NAME=0.83.0-rc.0
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
  react.internal.hermesPublishingGroup=com.facebook.hermes
4
4
 
@@ -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<<15ede8025e516f2bdc0329efe49f4a62>>
7
+ * @generated SignedSource<<d8dc8c3a2efe8b7e870546e5749ef5ad>>
8
8
  */
9
9
 
10
10
  /**
@@ -420,6 +420,12 @@ public object ReactNativeFeatureFlags {
420
420
  @JvmStatic
421
421
  public fun skipActivityIdentityAssertionOnHostPause(): Boolean = accessor.skipActivityIdentityAssertionOnHostPause()
422
422
 
423
+ /**
424
+ * A flag to tell Fabric to sweep active touches from JSTouchDispatcher in Android when a child native gesture is started.
425
+ */
426
+ @JvmStatic
427
+ public fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean = accessor.sweepActiveTouchOnChildNativeGesturesAndroid()
428
+
423
429
  /**
424
430
  * Enables storing js caller stack when creating promise in native module. This is useful in case of Promise rejection and tracing the cause.
425
431
  */
@@ -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<<c62242068e649aa652b1a8f700bf0ab3>>
7
+ * @generated SignedSource<<447ccc7271b71b0208a2297b7eba5995>>
8
8
  */
9
9
 
10
10
  /**
@@ -85,6 +85,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
85
85
  private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
86
86
  private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
87
87
  private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
88
+ private var sweepActiveTouchOnChildNativeGesturesAndroidCache: Boolean? = null
88
89
  private var traceTurboModulePromiseRejectionsOnAndroidCache: Boolean? = null
89
90
  private var updateRuntimeShadowNodeReferencesOnCommitCache: Boolean? = null
90
91
  private var useAlwaysAvailableJSErrorHandlingCache: Boolean? = null
@@ -688,6 +689,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
688
689
  return cached
689
690
  }
690
691
 
692
+ override fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean {
693
+ var cached = sweepActiveTouchOnChildNativeGesturesAndroidCache
694
+ if (cached == null) {
695
+ cached = ReactNativeFeatureFlagsCxxInterop.sweepActiveTouchOnChildNativeGesturesAndroid()
696
+ sweepActiveTouchOnChildNativeGesturesAndroidCache = cached
697
+ }
698
+ return cached
699
+ }
700
+
691
701
  override fun traceTurboModulePromiseRejectionsOnAndroid(): Boolean {
692
702
  var cached = traceTurboModulePromiseRejectionsOnAndroidCache
693
703
  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<<9a1bdbc2a3ae299433e690b254d7bf0a>>
7
+ * @generated SignedSource<<d6403b67e269ad80ef3e2389ac923c8a>>
8
8
  */
9
9
 
10
10
  /**
@@ -158,6 +158,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
158
158
 
159
159
  @DoNotStrip @JvmStatic public external fun skipActivityIdentityAssertionOnHostPause(): Boolean
160
160
 
161
+ @DoNotStrip @JvmStatic public external fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean
162
+
161
163
  @DoNotStrip @JvmStatic public external fun traceTurboModulePromiseRejectionsOnAndroid(): Boolean
162
164
 
163
165
  @DoNotStrip @JvmStatic public external fun updateRuntimeShadowNodeReferencesOnCommit(): 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<<0d78a0405db2a10c14bd69aaf2a3708a>>
7
+ * @generated SignedSource<<ab48ba86a7cf3cd35ec530a216aea774>>
8
8
  */
9
9
 
10
10
  /**
@@ -153,6 +153,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
153
153
 
154
154
  override fun skipActivityIdentityAssertionOnHostPause(): Boolean = false
155
155
 
156
+ override fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean = true
157
+
156
158
  override fun traceTurboModulePromiseRejectionsOnAndroid(): Boolean = false
157
159
 
158
160
  override fun updateRuntimeShadowNodeReferencesOnCommit(): Boolean = false
@@ -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<<98f16fd1bb180b247ee87bb24b10120e>>
7
+ * @generated SignedSource<<6f6b5abe79764b88cf3ed62fe0230786>>
8
8
  */
9
9
 
10
10
  /**
@@ -89,6 +89,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
89
89
  private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
90
90
  private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
91
91
  private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
92
+ private var sweepActiveTouchOnChildNativeGesturesAndroidCache: Boolean? = null
92
93
  private var traceTurboModulePromiseRejectionsOnAndroidCache: Boolean? = null
93
94
  private var updateRuntimeShadowNodeReferencesOnCommitCache: Boolean? = null
94
95
  private var useAlwaysAvailableJSErrorHandlingCache: Boolean? = null
@@ -757,6 +758,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
757
758
  return cached
758
759
  }
759
760
 
761
+ override fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean {
762
+ var cached = sweepActiveTouchOnChildNativeGesturesAndroidCache
763
+ if (cached == null) {
764
+ cached = currentProvider.sweepActiveTouchOnChildNativeGesturesAndroid()
765
+ accessedFeatureFlags.add("sweepActiveTouchOnChildNativeGesturesAndroid")
766
+ sweepActiveTouchOnChildNativeGesturesAndroidCache = cached
767
+ }
768
+ return cached
769
+ }
770
+
760
771
  override fun traceTurboModulePromiseRejectionsOnAndroid(): Boolean {
761
772
  var cached = traceTurboModulePromiseRejectionsOnAndroidCache
762
773
  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<<c810245ced5a83806ace12572e112a70>>
7
+ * @generated SignedSource<<6b61490a8d6b1df1d6264016455382f8>>
8
8
  */
9
9
 
10
10
  /**
@@ -153,6 +153,8 @@ public interface ReactNativeFeatureFlagsProvider {
153
153
 
154
154
  @DoNotStrip public fun skipActivityIdentityAssertionOnHostPause(): Boolean
155
155
 
156
+ @DoNotStrip public fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean
157
+
156
158
  @DoNotStrip public fun traceTurboModulePromiseRejectionsOnAndroid(): Boolean
157
159
 
158
160
  @DoNotStrip public fun updateRuntimeShadowNodeReferencesOnCommit(): Boolean
@@ -15,6 +15,6 @@ public object ReactNativeVersion {
15
15
  "major" to 0,
16
16
  "minor" to 83,
17
17
  "patch" to 0,
18
- "prerelease" to "nightly-20251104-502efe1cc"
18
+ "prerelease" to "rc.0"
19
19
  )
20
20
  }
@@ -14,6 +14,7 @@ import com.facebook.infer.annotation.Assertions
14
14
  import com.facebook.react.bridge.ReactContext
15
15
  import com.facebook.react.common.ReactConstants
16
16
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
17
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
17
18
  import com.facebook.react.uimanager.common.UIManagerType
18
19
  import com.facebook.react.uimanager.events.EventDispatcher
19
20
  import com.facebook.react.uimanager.events.TouchEvent
@@ -58,7 +59,7 @@ public class JSTouchDispatcher(private val viewGroup: ViewGroup) {
58
59
  dispatchCancelEvent(androidEvent, eventDispatcher)
59
60
  childIsHandlingNativeGesture = true
60
61
 
61
- if (targetTag != -1) {
62
+ if (targetTag != -1 && ReactNativeFeatureFlags.sweepActiveTouchOnChildNativeGesturesAndroid()) {
62
63
  val surfaceId = UIManagerHelper.getSurfaceId(viewGroup)
63
64
  sweepActiveTouchForTag(surfaceId, targetTag, reactContext)
64
65
  }
@@ -29,7 +29,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
29
29
  private lateinit var _eventName: String
30
30
  private var coalescingKey = UNSET_COALESCING_KEY
31
31
  private var pointersEventData: List<WritableMap>? = null
32
- private var eventState: PointerEventState? = null
32
+ private lateinit var eventState: PointerEventState
33
33
 
34
34
  private fun init(
35
35
  eventName: String,
@@ -84,7 +84,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
84
84
  return@EventAnimationDriverMatchSpec false
85
85
  }
86
86
  if (isBubblingEvent(eventName)) {
87
- for (viewTarget in checkNotNull(eventState).hitPathForActivePointer) {
87
+ for (viewTarget in eventState.hitPathForActivePointer) {
88
88
  if (viewTarget.getViewId() == viewTag) {
89
89
  return@EventAnimationDriverMatchSpec true
90
90
  }
@@ -97,10 +97,10 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
97
97
  }
98
98
 
99
99
  override fun onDispose() {
100
- eventState = null
101
100
  pointersEventData = null
101
+ val motionEvent = motionEvent
102
+ this.motionEvent = null
102
103
  motionEvent?.recycle()
103
- motionEvent = null
104
104
 
105
105
  // Either `this` is in the event pool, or motionEvent
106
106
  // is null. It is in theory not possible for a PointerEvent to
@@ -137,7 +137,6 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
137
137
  val pointerEvent = Arguments.createMap()
138
138
  val motionEvent = checkNotNull(motionEvent)
139
139
  val pointerId = motionEvent.getPointerId(index)
140
- val eventState = checkNotNull(eventState)
141
140
 
142
141
  // https://www.w3.org/TR/pointerevents/#pointerevent-interface
143
142
  pointerEvent.putDouble("pointerId", pointerId.toDouble())
@@ -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<<b83a74b94f72ed85c7a5323bb56a38a0>>
7
+ * @generated SignedSource<<13ed11b5c260fae79048ea80745d22fe>>
8
8
  */
9
9
 
10
10
  /**
@@ -429,6 +429,12 @@ class ReactNativeFeatureFlagsJavaProvider
429
429
  return method(javaProvider_);
430
430
  }
431
431
 
432
+ bool sweepActiveTouchOnChildNativeGesturesAndroid() override {
433
+ static const auto method =
434
+ getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("sweepActiveTouchOnChildNativeGesturesAndroid");
435
+ return method(javaProvider_);
436
+ }
437
+
432
438
  bool traceTurboModulePromiseRejectionsOnAndroid() override {
433
439
  static const auto method =
434
440
  getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("traceTurboModulePromiseRejectionsOnAndroid");
@@ -860,6 +866,11 @@ bool JReactNativeFeatureFlagsCxxInterop::skipActivityIdentityAssertionOnHostPaus
860
866
  return ReactNativeFeatureFlags::skipActivityIdentityAssertionOnHostPause();
861
867
  }
862
868
 
869
+ bool JReactNativeFeatureFlagsCxxInterop::sweepActiveTouchOnChildNativeGesturesAndroid(
870
+ facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
871
+ return ReactNativeFeatureFlags::sweepActiveTouchOnChildNativeGesturesAndroid();
872
+ }
873
+
863
874
  bool JReactNativeFeatureFlagsCxxInterop::traceTurboModulePromiseRejectionsOnAndroid(
864
875
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
865
876
  return ReactNativeFeatureFlags::traceTurboModulePromiseRejectionsOnAndroid();
@@ -1171,6 +1182,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
1171
1182
  makeNativeMethod(
1172
1183
  "skipActivityIdentityAssertionOnHostPause",
1173
1184
  JReactNativeFeatureFlagsCxxInterop::skipActivityIdentityAssertionOnHostPause),
1185
+ makeNativeMethod(
1186
+ "sweepActiveTouchOnChildNativeGesturesAndroid",
1187
+ JReactNativeFeatureFlagsCxxInterop::sweepActiveTouchOnChildNativeGesturesAndroid),
1174
1188
  makeNativeMethod(
1175
1189
  "traceTurboModulePromiseRejectionsOnAndroid",
1176
1190
  JReactNativeFeatureFlagsCxxInterop::traceTurboModulePromiseRejectionsOnAndroid),
@@ -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<<6238eb0739467af8477aa8fa79a023bf>>
7
+ * @generated SignedSource<<1e57bf8252c16fc10bbfcae08710af85>>
8
8
  */
9
9
 
10
10
  /**
@@ -225,6 +225,9 @@ class JReactNativeFeatureFlagsCxxInterop
225
225
  static bool skipActivityIdentityAssertionOnHostPause(
226
226
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
227
227
 
228
+ static bool sweepActiveTouchOnChildNativeGesturesAndroid(
229
+ facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
230
+
228
231
  static bool traceTurboModulePromiseRejectionsOnAndroid(
229
232
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
230
233
 
@@ -22,7 +22,7 @@ constexpr struct {
22
22
  int32_t Major = 0;
23
23
  int32_t Minor = 83;
24
24
  int32_t Patch = 0;
25
- std::string_view Prerelease = "nightly-20251104-502efe1cc";
25
+ std::string_view Prerelease = "rc.0";
26
26
  } ReactNativeVersion;
27
27
 
28
28
  } // namespace facebook::react
@@ -53,6 +53,7 @@ TracingAgent::~TracingAgent() {
53
53
 
54
54
  bool TracingAgent::handleRequest(const cdp::PreparsedRequest& req) {
55
55
  if (req.method == "Tracing.start") {
56
+ // @cdp Tracing.start support is experimental.
56
57
  if (sessionState_.isDebuggerDomainEnabled) {
57
58
  frontendChannel_(
58
59
  cdp::jsonError(
@@ -80,6 +81,7 @@ bool TracingAgent::handleRequest(const cdp::PreparsedRequest& req) {
80
81
 
81
82
  return true;
82
83
  } else if (req.method == "Tracing.end") {
84
+ // @cdp Tracing.end support is experimental.
83
85
  auto state = hostTargetController_.stopTracing();
84
86
 
85
87
  sessionState_.hasPendingTraceRecording = false;
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- #include "TracingTest.h"
8
+ #include "JsiIntegrationTest.h"
9
9
  #include "engines/JsiIntegrationTestHermesEngineAdapter.h"
10
10
 
11
11
  #include <folly/executors/QueuedImmediateExecutor.h>
@@ -31,13 +31,13 @@ struct NetworkReporterTestParams {
31
31
  */
32
32
  template <typename Params>
33
33
  requires std::convertible_to<Params, NetworkReporterTestParams>
34
- class NetworkReporterTestBase : public TracingTestBase<
34
+ class NetworkReporterTestBase : public JsiIntegrationPortableTestBase<
35
35
  JsiIntegrationTestHermesEngineAdapter,
36
36
  folly::QueuedImmediateExecutor>,
37
37
  public WithParamInterface<Params> {
38
38
  protected:
39
39
  NetworkReporterTestBase()
40
- : TracingTestBase({
40
+ : JsiIntegrationPortableTestBase({
41
41
  .networkInspectionEnabled = true,
42
42
  .enableNetworkEventReporting =
43
43
  WithParamInterface<Params>::GetParam()
@@ -68,6 +68,58 @@ class NetworkReporterTestBase : public TracingTestBase<
68
68
  urlMatcher);
69
69
  }
70
70
 
71
+ void startTracing() {
72
+ this->expectMessageFromPage(JsonEq(R"({
73
+ "id": 1,
74
+ "result": {}
75
+ })"));
76
+
77
+ this->toPage_->sendMessage(R"({
78
+ "id": 1,
79
+ "method": "Tracing.start"
80
+ })");
81
+ }
82
+
83
+ /**
84
+ * Helper method to end tracing and collect all trace events from potentially
85
+ * multiple chunked Tracing.dataCollected messages.
86
+ * \returns A vector containing all collected trace events
87
+ */
88
+ std::vector<folly::dynamic> endTracingAndCollectEvents() {
89
+ InSequence s;
90
+
91
+ this->expectMessageFromPage(JsonEq(R"({
92
+ "id": 1,
93
+ "result": {}
94
+ })"));
95
+
96
+ std::vector<folly::dynamic> allTraceEvents;
97
+
98
+ EXPECT_CALL(
99
+ fromPage(),
100
+ onMessage(JsonParsed(AtJsonPtr("/method", "Tracing.dataCollected"))))
101
+ .Times(AtLeast(1))
102
+ .WillRepeatedly(Invoke([&allTraceEvents](const std::string& message) {
103
+ auto parsedMessage = folly::parseJson(message);
104
+ auto& events = parsedMessage.at("params").at("value");
105
+ allTraceEvents.insert(
106
+ allTraceEvents.end(),
107
+ std::make_move_iterator(events.begin()),
108
+ std::make_move_iterator(events.end()));
109
+ }));
110
+
111
+ this->expectMessageFromPage(JsonParsed(AllOf(
112
+ AtJsonPtr("/method", "Tracing.tracingComplete"),
113
+ AtJsonPtr("/params/dataLossOccurred", false))));
114
+
115
+ this->toPage_->sendMessage(R"({
116
+ "id": 1,
117
+ "method": "Tracing.end"
118
+ })");
119
+
120
+ return allTraceEvents;
121
+ }
122
+
71
123
  private:
72
124
  std::optional<std::string> getScriptUrlById(const std::string& scriptId) {
73
125
  auto it = scriptUrlsById_.find(scriptId);
@@ -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<<6f88454830626622f9b5720ae0395938>>
7
+ * @generated SignedSource<<5d596cc470e66861d7c1b2ffbb15b268>>
8
8
  */
9
9
 
10
10
  /**
@@ -286,6 +286,10 @@ bool ReactNativeFeatureFlags::skipActivityIdentityAssertionOnHostPause() {
286
286
  return getAccessor().skipActivityIdentityAssertionOnHostPause();
287
287
  }
288
288
 
289
+ bool ReactNativeFeatureFlags::sweepActiveTouchOnChildNativeGesturesAndroid() {
290
+ return getAccessor().sweepActiveTouchOnChildNativeGesturesAndroid();
291
+ }
292
+
289
293
  bool ReactNativeFeatureFlags::traceTurboModulePromiseRejectionsOnAndroid() {
290
294
  return getAccessor().traceTurboModulePromiseRejectionsOnAndroid();
291
295
  }
@@ -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<<ce6f11b805b3de79c414d1893cd7b2cc>>
7
+ * @generated SignedSource<<41492e85e1feeb20d2e3e60b6cc6cbe7>>
8
8
  */
9
9
 
10
10
  /**
@@ -364,6 +364,11 @@ class ReactNativeFeatureFlags {
364
364
  */
365
365
  RN_EXPORT static bool skipActivityIdentityAssertionOnHostPause();
366
366
 
367
+ /**
368
+ * A flag to tell Fabric to sweep active touches from JSTouchDispatcher in Android when a child native gesture is started.
369
+ */
370
+ RN_EXPORT static bool sweepActiveTouchOnChildNativeGesturesAndroid();
371
+
367
372
  /**
368
373
  * Enables storing js caller stack when creating promise in native module. This is useful in case of Promise rejection and tracing the cause.
369
374
  */
@@ -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<<efd811822965d54da3cd791319673352>>
7
+ * @generated SignedSource<<cf152ea3a4e9635a71d2794a3139dadb>>
8
8
  */
9
9
 
10
10
  /**
@@ -1199,6 +1199,24 @@ bool ReactNativeFeatureFlagsAccessor::skipActivityIdentityAssertionOnHostPause()
1199
1199
  return flagValue.value();
1200
1200
  }
1201
1201
 
1202
+ bool ReactNativeFeatureFlagsAccessor::sweepActiveTouchOnChildNativeGesturesAndroid() {
1203
+ auto flagValue = sweepActiveTouchOnChildNativeGesturesAndroid_.load();
1204
+
1205
+ if (!flagValue.has_value()) {
1206
+ // This block is not exclusive but it is not necessary.
1207
+ // If multiple threads try to initialize the feature flag, we would only
1208
+ // be accessing the provider multiple times but the end state of this
1209
+ // instance and the returned flag value would be the same.
1210
+
1211
+ markFlagAsAccessed(65, "sweepActiveTouchOnChildNativeGesturesAndroid");
1212
+
1213
+ flagValue = currentProvider_->sweepActiveTouchOnChildNativeGesturesAndroid();
1214
+ sweepActiveTouchOnChildNativeGesturesAndroid_ = flagValue;
1215
+ }
1216
+
1217
+ return flagValue.value();
1218
+ }
1219
+
1202
1220
  bool ReactNativeFeatureFlagsAccessor::traceTurboModulePromiseRejectionsOnAndroid() {
1203
1221
  auto flagValue = traceTurboModulePromiseRejectionsOnAndroid_.load();
1204
1222
 
@@ -1208,7 +1226,7 @@ bool ReactNativeFeatureFlagsAccessor::traceTurboModulePromiseRejectionsOnAndroid
1208
1226
  // be accessing the provider multiple times but the end state of this
1209
1227
  // instance and the returned flag value would be the same.
1210
1228
 
1211
- markFlagAsAccessed(65, "traceTurboModulePromiseRejectionsOnAndroid");
1229
+ markFlagAsAccessed(66, "traceTurboModulePromiseRejectionsOnAndroid");
1212
1230
 
1213
1231
  flagValue = currentProvider_->traceTurboModulePromiseRejectionsOnAndroid();
1214
1232
  traceTurboModulePromiseRejectionsOnAndroid_ = flagValue;
@@ -1226,7 +1244,7 @@ bool ReactNativeFeatureFlagsAccessor::updateRuntimeShadowNodeReferencesOnCommit(
1226
1244
  // be accessing the provider multiple times but the end state of this
1227
1245
  // instance and the returned flag value would be the same.
1228
1246
 
1229
- markFlagAsAccessed(66, "updateRuntimeShadowNodeReferencesOnCommit");
1247
+ markFlagAsAccessed(67, "updateRuntimeShadowNodeReferencesOnCommit");
1230
1248
 
1231
1249
  flagValue = currentProvider_->updateRuntimeShadowNodeReferencesOnCommit();
1232
1250
  updateRuntimeShadowNodeReferencesOnCommit_ = flagValue;
@@ -1244,7 +1262,7 @@ bool ReactNativeFeatureFlagsAccessor::useAlwaysAvailableJSErrorHandling() {
1244
1262
  // be accessing the provider multiple times but the end state of this
1245
1263
  // instance and the returned flag value would be the same.
1246
1264
 
1247
- markFlagAsAccessed(67, "useAlwaysAvailableJSErrorHandling");
1265
+ markFlagAsAccessed(68, "useAlwaysAvailableJSErrorHandling");
1248
1266
 
1249
1267
  flagValue = currentProvider_->useAlwaysAvailableJSErrorHandling();
1250
1268
  useAlwaysAvailableJSErrorHandling_ = flagValue;
@@ -1262,7 +1280,7 @@ bool ReactNativeFeatureFlagsAccessor::useFabricInterop() {
1262
1280
  // be accessing the provider multiple times but the end state of this
1263
1281
  // instance and the returned flag value would be the same.
1264
1282
 
1265
- markFlagAsAccessed(68, "useFabricInterop");
1283
+ markFlagAsAccessed(69, "useFabricInterop");
1266
1284
 
1267
1285
  flagValue = currentProvider_->useFabricInterop();
1268
1286
  useFabricInterop_ = flagValue;
@@ -1280,7 +1298,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeEqualsInNativeReadableArrayAndroi
1280
1298
  // be accessing the provider multiple times but the end state of this
1281
1299
  // instance and the returned flag value would be the same.
1282
1300
 
1283
- markFlagAsAccessed(69, "useNativeEqualsInNativeReadableArrayAndroid");
1301
+ markFlagAsAccessed(70, "useNativeEqualsInNativeReadableArrayAndroid");
1284
1302
 
1285
1303
  flagValue = currentProvider_->useNativeEqualsInNativeReadableArrayAndroid();
1286
1304
  useNativeEqualsInNativeReadableArrayAndroid_ = flagValue;
@@ -1298,7 +1316,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeTransformHelperAndroid() {
1298
1316
  // be accessing the provider multiple times but the end state of this
1299
1317
  // instance and the returned flag value would be the same.
1300
1318
 
1301
- markFlagAsAccessed(70, "useNativeTransformHelperAndroid");
1319
+ markFlagAsAccessed(71, "useNativeTransformHelperAndroid");
1302
1320
 
1303
1321
  flagValue = currentProvider_->useNativeTransformHelperAndroid();
1304
1322
  useNativeTransformHelperAndroid_ = flagValue;
@@ -1316,7 +1334,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() {
1316
1334
  // be accessing the provider multiple times but the end state of this
1317
1335
  // instance and the returned flag value would be the same.
1318
1336
 
1319
- markFlagAsAccessed(71, "useNativeViewConfigsInBridgelessMode");
1337
+ markFlagAsAccessed(72, "useNativeViewConfigsInBridgelessMode");
1320
1338
 
1321
1339
  flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
1322
1340
  useNativeViewConfigsInBridgelessMode_ = flagValue;
@@ -1334,7 +1352,7 @@ bool ReactNativeFeatureFlagsAccessor::useOptimizedEventBatchingOnAndroid() {
1334
1352
  // be accessing the provider multiple times but the end state of this
1335
1353
  // instance and the returned flag value would be the same.
1336
1354
 
1337
- markFlagAsAccessed(72, "useOptimizedEventBatchingOnAndroid");
1355
+ markFlagAsAccessed(73, "useOptimizedEventBatchingOnAndroid");
1338
1356
 
1339
1357
  flagValue = currentProvider_->useOptimizedEventBatchingOnAndroid();
1340
1358
  useOptimizedEventBatchingOnAndroid_ = flagValue;
@@ -1352,7 +1370,7 @@ bool ReactNativeFeatureFlagsAccessor::useRawPropsJsiValue() {
1352
1370
  // be accessing the provider multiple times but the end state of this
1353
1371
  // instance and the returned flag value would be the same.
1354
1372
 
1355
- markFlagAsAccessed(73, "useRawPropsJsiValue");
1373
+ markFlagAsAccessed(74, "useRawPropsJsiValue");
1356
1374
 
1357
1375
  flagValue = currentProvider_->useRawPropsJsiValue();
1358
1376
  useRawPropsJsiValue_ = flagValue;
@@ -1370,7 +1388,7 @@ bool ReactNativeFeatureFlagsAccessor::useShadowNodeStateOnClone() {
1370
1388
  // be accessing the provider multiple times but the end state of this
1371
1389
  // instance and the returned flag value would be the same.
1372
1390
 
1373
- markFlagAsAccessed(74, "useShadowNodeStateOnClone");
1391
+ markFlagAsAccessed(75, "useShadowNodeStateOnClone");
1374
1392
 
1375
1393
  flagValue = currentProvider_->useShadowNodeStateOnClone();
1376
1394
  useShadowNodeStateOnClone_ = flagValue;
@@ -1388,7 +1406,7 @@ bool ReactNativeFeatureFlagsAccessor::useSharedAnimatedBackend() {
1388
1406
  // be accessing the provider multiple times but the end state of this
1389
1407
  // instance and the returned flag value would be the same.
1390
1408
 
1391
- markFlagAsAccessed(75, "useSharedAnimatedBackend");
1409
+ markFlagAsAccessed(76, "useSharedAnimatedBackend");
1392
1410
 
1393
1411
  flagValue = currentProvider_->useSharedAnimatedBackend();
1394
1412
  useSharedAnimatedBackend_ = flagValue;
@@ -1406,7 +1424,7 @@ bool ReactNativeFeatureFlagsAccessor::useTraitHiddenOnAndroid() {
1406
1424
  // be accessing the provider multiple times but the end state of this
1407
1425
  // instance and the returned flag value would be the same.
1408
1426
 
1409
- markFlagAsAccessed(76, "useTraitHiddenOnAndroid");
1427
+ markFlagAsAccessed(77, "useTraitHiddenOnAndroid");
1410
1428
 
1411
1429
  flagValue = currentProvider_->useTraitHiddenOnAndroid();
1412
1430
  useTraitHiddenOnAndroid_ = flagValue;
@@ -1424,7 +1442,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModuleInterop() {
1424
1442
  // be accessing the provider multiple times but the end state of this
1425
1443
  // instance and the returned flag value would be the same.
1426
1444
 
1427
- markFlagAsAccessed(77, "useTurboModuleInterop");
1445
+ markFlagAsAccessed(78, "useTurboModuleInterop");
1428
1446
 
1429
1447
  flagValue = currentProvider_->useTurboModuleInterop();
1430
1448
  useTurboModuleInterop_ = flagValue;
@@ -1442,7 +1460,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModules() {
1442
1460
  // be accessing the provider multiple times but the end state of this
1443
1461
  // instance and the returned flag value would be the same.
1444
1462
 
1445
- markFlagAsAccessed(78, "useTurboModules");
1463
+ markFlagAsAccessed(79, "useTurboModules");
1446
1464
 
1447
1465
  flagValue = currentProvider_->useTurboModules();
1448
1466
  useTurboModules_ = flagValue;
@@ -1460,7 +1478,7 @@ double ReactNativeFeatureFlagsAccessor::viewCullingOutsetRatio() {
1460
1478
  // be accessing the provider multiple times but the end state of this
1461
1479
  // instance and the returned flag value would be the same.
1462
1480
 
1463
- markFlagAsAccessed(79, "viewCullingOutsetRatio");
1481
+ markFlagAsAccessed(80, "viewCullingOutsetRatio");
1464
1482
 
1465
1483
  flagValue = currentProvider_->viewCullingOutsetRatio();
1466
1484
  viewCullingOutsetRatio_ = flagValue;
@@ -1478,7 +1496,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewHysteresisRatio() {
1478
1496
  // be accessing the provider multiple times but the end state of this
1479
1497
  // instance and the returned flag value would be the same.
1480
1498
 
1481
- markFlagAsAccessed(80, "virtualViewHysteresisRatio");
1499
+ markFlagAsAccessed(81, "virtualViewHysteresisRatio");
1482
1500
 
1483
1501
  flagValue = currentProvider_->virtualViewHysteresisRatio();
1484
1502
  virtualViewHysteresisRatio_ = flagValue;
@@ -1496,7 +1514,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewPrerenderRatio() {
1496
1514
  // be accessing the provider multiple times but the end state of this
1497
1515
  // instance and the returned flag value would be the same.
1498
1516
 
1499
- markFlagAsAccessed(81, "virtualViewPrerenderRatio");
1517
+ markFlagAsAccessed(82, "virtualViewPrerenderRatio");
1500
1518
 
1501
1519
  flagValue = currentProvider_->virtualViewPrerenderRatio();
1502
1520
  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<<fe818d80110561de44d8e5604d3e7195>>
7
+ * @generated SignedSource<<e7e8d311c0d1cca4e28bee7ddcf5065c>>
8
8
  */
9
9
 
10
10
  /**
@@ -97,6 +97,7 @@ class ReactNativeFeatureFlagsAccessor {
97
97
  bool shouldPressibilityUseW3CPointerEventsForHover();
98
98
  bool shouldTriggerResponderTransferOnScrollAndroid();
99
99
  bool skipActivityIdentityAssertionOnHostPause();
100
+ bool sweepActiveTouchOnChildNativeGesturesAndroid();
100
101
  bool traceTurboModulePromiseRejectionsOnAndroid();
101
102
  bool updateRuntimeShadowNodeReferencesOnCommit();
102
103
  bool useAlwaysAvailableJSErrorHandling();
@@ -125,7 +126,7 @@ class ReactNativeFeatureFlagsAccessor {
125
126
  std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
126
127
  bool wasOverridden_;
127
128
 
128
- std::array<std::atomic<const char*>, 82> accessedFeatureFlags_;
129
+ std::array<std::atomic<const char*>, 83> accessedFeatureFlags_;
129
130
 
130
131
  std::atomic<std::optional<bool>> commonTestFlag_;
131
132
  std::atomic<std::optional<bool>> cdpInteractionMetricsEnabled_;
@@ -192,6 +193,7 @@ class ReactNativeFeatureFlagsAccessor {
192
193
  std::atomic<std::optional<bool>> shouldPressibilityUseW3CPointerEventsForHover_;
193
194
  std::atomic<std::optional<bool>> shouldTriggerResponderTransferOnScrollAndroid_;
194
195
  std::atomic<std::optional<bool>> skipActivityIdentityAssertionOnHostPause_;
196
+ std::atomic<std::optional<bool>> sweepActiveTouchOnChildNativeGesturesAndroid_;
195
197
  std::atomic<std::optional<bool>> traceTurboModulePromiseRejectionsOnAndroid_;
196
198
  std::atomic<std::optional<bool>> updateRuntimeShadowNodeReferencesOnCommit_;
197
199
  std::atomic<std::optional<bool>> useAlwaysAvailableJSErrorHandling_;
@@ -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<<6120a91f22fd02a0ff5144df38bd1737>>
7
+ * @generated SignedSource<<a0a1898f3a4c14179bd03d5dbe97adfa>>
8
8
  */
9
9
 
10
10
  /**
@@ -287,6 +287,10 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
287
287
  return false;
288
288
  }
289
289
 
290
+ bool sweepActiveTouchOnChildNativeGesturesAndroid() override {
291
+ return true;
292
+ }
293
+
290
294
  bool traceTurboModulePromiseRejectionsOnAndroid() override {
291
295
  return false;
292
296
  }
@@ -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<<36163e6b41d151326f7a0948b332672f>>
7
+ * @generated SignedSource<<fc8f8541827a039fa5bc4a113e75fdf6>>
8
8
  */
9
9
 
10
10
  /**
@@ -630,6 +630,15 @@ class ReactNativeFeatureFlagsDynamicProvider : public ReactNativeFeatureFlagsDef
630
630
  return ReactNativeFeatureFlagsDefaults::skipActivityIdentityAssertionOnHostPause();
631
631
  }
632
632
 
633
+ bool sweepActiveTouchOnChildNativeGesturesAndroid() override {
634
+ auto value = values_["sweepActiveTouchOnChildNativeGesturesAndroid"];
635
+ if (!value.isNull()) {
636
+ return value.getBool();
637
+ }
638
+
639
+ return ReactNativeFeatureFlagsDefaults::sweepActiveTouchOnChildNativeGesturesAndroid();
640
+ }
641
+
633
642
  bool traceTurboModulePromiseRejectionsOnAndroid() override {
634
643
  auto value = values_["traceTurboModulePromiseRejectionsOnAndroid"];
635
644
  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<<0f6fd731ebddc32a0583ceb3c81f2b32>>
7
+ * @generated SignedSource<<5dcaab263795b1605da54dbbb617264f>>
8
8
  */
9
9
 
10
10
  /**
@@ -90,6 +90,7 @@ class ReactNativeFeatureFlagsProvider {
90
90
  virtual bool shouldPressibilityUseW3CPointerEventsForHover() = 0;
91
91
  virtual bool shouldTriggerResponderTransferOnScrollAndroid() = 0;
92
92
  virtual bool skipActivityIdentityAssertionOnHostPause() = 0;
93
+ virtual bool sweepActiveTouchOnChildNativeGesturesAndroid() = 0;
93
94
  virtual bool traceTurboModulePromiseRejectionsOnAndroid() = 0;
94
95
  virtual bool updateRuntimeShadowNodeReferencesOnCommit() = 0;
95
96
  virtual bool useAlwaysAvailableJSErrorHandling() = 0;
@@ -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<<d96a6f5f05faef9ab3e7b28bcbb51aae>>
7
+ * @generated SignedSource<<6bd64914d0e2f0c727490a420496fbb0>>
8
8
  */
9
9
 
10
10
  /**
@@ -369,6 +369,11 @@ bool NativeReactNativeFeatureFlags::skipActivityIdentityAssertionOnHostPause(
369
369
  return ReactNativeFeatureFlags::skipActivityIdentityAssertionOnHostPause();
370
370
  }
371
371
 
372
+ bool NativeReactNativeFeatureFlags::sweepActiveTouchOnChildNativeGesturesAndroid(
373
+ jsi::Runtime& /*runtime*/) {
374
+ return ReactNativeFeatureFlags::sweepActiveTouchOnChildNativeGesturesAndroid();
375
+ }
376
+
372
377
  bool NativeReactNativeFeatureFlags::traceTurboModulePromiseRejectionsOnAndroid(
373
378
  jsi::Runtime& /*runtime*/) {
374
379
  return ReactNativeFeatureFlags::traceTurboModulePromiseRejectionsOnAndroid();
@@ -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<<762f97c6e72f9339ef925adb8481713f>>
7
+ * @generated SignedSource<<99624bd7682ad34476ac395e8acc43c7>>
8
8
  */
9
9
 
10
10
  /**
@@ -166,6 +166,8 @@ class NativeReactNativeFeatureFlags
166
166
 
167
167
  bool skipActivityIdentityAssertionOnHostPause(jsi::Runtime& runtime);
168
168
 
169
+ bool sweepActiveTouchOnChildNativeGesturesAndroid(jsi::Runtime& runtime);
170
+
169
171
  bool traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime& runtime);
170
172
 
171
173
  bool updateRuntimeShadowNodeReferencesOnCommit(jsi::Runtime& runtime);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native",
3
- "version": "0.83.0-nightly-20251104-502efe1cc",
3
+ "version": "0.83.0-rc.0",
4
4
  "description": "A framework for building native apps using React",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -159,13 +159,13 @@
159
159
  },
160
160
  "dependencies": {
161
161
  "@jest/create-cache-key-function": "^29.7.0",
162
- "@react-native/assets-registry": "0.83.0-nightly-20251104-502efe1cc",
163
- "@react-native/codegen": "0.83.0-nightly-20251104-502efe1cc",
164
- "@react-native/community-cli-plugin": "0.83.0-nightly-20251104-502efe1cc",
165
- "@react-native/gradle-plugin": "0.83.0-nightly-20251104-502efe1cc",
166
- "@react-native/js-polyfills": "0.83.0-nightly-20251104-502efe1cc",
167
- "@react-native/normalize-colors": "0.83.0-nightly-20251104-502efe1cc",
168
- "@react-native/virtualized-lists": "0.83.0-nightly-20251104-502efe1cc",
162
+ "@react-native/assets-registry": "0.83.0-rc.0",
163
+ "@react-native/codegen": "0.83.0-rc.0",
164
+ "@react-native/community-cli-plugin": "0.83.0-rc.0",
165
+ "@react-native/gradle-plugin": "0.83.0-rc.0",
166
+ "@react-native/js-polyfills": "0.83.0-rc.0",
167
+ "@react-native/normalize-colors": "0.83.0-rc.0",
168
+ "@react-native/virtualized-lists": "0.83.0-rc.0",
169
169
  "abort-controller": "^3.0.0",
170
170
  "anser": "^1.4.9",
171
171
  "ansi-regex": "^5.0.0",
@@ -175,7 +175,7 @@
175
175
  "commander": "^12.0.0",
176
176
  "flow-enums-runtime": "^0.0.6",
177
177
  "glob": "^7.1.1",
178
- "hermes-compiler": "0.14.0-commitly-202511031701-9c948b8c9",
178
+ "hermes-compiler": "0.14.0",
179
179
  "invariant": "^2.2.4",
180
180
  "jest-environment-node": "^29.7.0",
181
181
  "memoize-one": "^5.0.0",
@@ -0,0 +1 @@
1
+ hermes-v0.14.0
@@ -1,2 +1,2 @@
1
- HERMES_VERSION_NAME=0.14.0-commitly-202511031701-9c948b8c9
1
+ HERMES_VERSION_NAME=0.14.0
2
2
  HERMES_V1_VERSION_NAME=250829098.0.2
@@ -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<<9284928dae8d148f3ce8041fdbe84990>>
7
+ * @generated SignedSource<<6bc2fbc946e21d0b51dd9bc71ac041e7>>
8
8
  * @flow strict
9
9
  * @noformat
10
10
  */
@@ -115,6 +115,7 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
115
115
  shouldPressibilityUseW3CPointerEventsForHover: Getter<boolean>,
116
116
  shouldTriggerResponderTransferOnScrollAndroid: Getter<boolean>,
117
117
  skipActivityIdentityAssertionOnHostPause: Getter<boolean>,
118
+ sweepActiveTouchOnChildNativeGesturesAndroid: Getter<boolean>,
118
119
  traceTurboModulePromiseRejectionsOnAndroid: Getter<boolean>,
119
120
  updateRuntimeShadowNodeReferencesOnCommit: Getter<boolean>,
120
121
  useAlwaysAvailableJSErrorHandling: Getter<boolean>,
@@ -473,6 +474,10 @@ export const shouldTriggerResponderTransferOnScrollAndroid: Getter<boolean> = cr
473
474
  * Skip activity identity assertion in ReactHostImpl::onHostPause()
474
475
  */
475
476
  export const skipActivityIdentityAssertionOnHostPause: Getter<boolean> = createNativeFlagGetter('skipActivityIdentityAssertionOnHostPause', false);
477
+ /**
478
+ * A flag to tell Fabric to sweep active touches from JSTouchDispatcher in Android when a child native gesture is started.
479
+ */
480
+ export const sweepActiveTouchOnChildNativeGesturesAndroid: Getter<boolean> = createNativeFlagGetter('sweepActiveTouchOnChildNativeGesturesAndroid', true);
476
481
  /**
477
482
  * Enables storing js caller stack when creating promise in native module. This is useful in case of Promise rejection and tracing the cause.
478
483
  */
@@ -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<<374975d041863bc8d509d2ce0aa8c883>>
7
+ * @generated SignedSource<<0b1f3b307c28d6798d4c15029ad5bc58>>
8
8
  * @flow strict
9
9
  * @noformat
10
10
  */
@@ -90,6 +90,7 @@ export interface Spec extends TurboModule {
90
90
  +shouldPressibilityUseW3CPointerEventsForHover?: () => boolean;
91
91
  +shouldTriggerResponderTransferOnScrollAndroid?: () => boolean;
92
92
  +skipActivityIdentityAssertionOnHostPause?: () => boolean;
93
+ +sweepActiveTouchOnChildNativeGesturesAndroid?: () => boolean;
93
94
  +traceTurboModulePromiseRejectionsOnAndroid?: () => boolean;
94
95
  +updateRuntimeShadowNodeReferencesOnCommit?: () => boolean;
95
96
  +useAlwaysAvailableJSErrorHandling?: () => boolean;
@@ -94,24 +94,6 @@ export default class IntersectionObserver {
94
94
  );
95
95
  }
96
96
 
97
- if (options != null && 'delay' in options) {
98
- throw new Error(
99
- "Failed to construct 'IntersectionObserver': The 'delay' option is not supported.",
100
- );
101
- }
102
-
103
- if (options != null && 'scrollMargin' in options) {
104
- throw new Error(
105
- "Failed to construct 'IntersectionObserver': The 'scrollMargin' option is not supported.",
106
- );
107
- }
108
-
109
- if (options != null && 'trackVisibility' in options) {
110
- throw new Error(
111
- "Failed to construct 'IntersectionObserver': The 'trackVisibility' option is not supported.",
112
- );
113
- }
114
-
115
97
  this._callback = callback;
116
98
 
117
99
  this._rootThresholds = normalizeRootThreshold(options?.rnRootThreshold);
@@ -170,36 +152,6 @@ export default class IntersectionObserver {
170
152
  return this._rootThresholds;
171
153
  }
172
154
 
173
- /**
174
- * The `delay` option is not supported.
175
- * @throws {Error} Always throws an error indicating this property is not supported.
176
- */
177
- get delay(): number {
178
- throw new Error(
179
- "Failed to read the 'delay' property from 'IntersectionObserver': This property is not supported.",
180
- );
181
- }
182
-
183
- /**
184
- * The `scrollMargin` option is not supported.
185
- * @throws {Error} Always throws an error indicating this property is not supported.
186
- */
187
- get scrollMargin(): string {
188
- throw new Error(
189
- "Failed to read the 'scrollMargin' property from 'IntersectionObserver': This property is not supported.",
190
- );
191
- }
192
-
193
- /**
194
- * The `trackVisibility` option is not supported.
195
- * @throws {Error} Always throws an error indicating this property is not supported.
196
- */
197
- get trackVisibility(): boolean {
198
- throw new Error(
199
- "Failed to read the 'trackVisibility' property from 'IntersectionObserver': This property is not supported.",
200
- );
201
- }
202
-
203
155
  /**
204
156
  * Adds an element to the set of target elements being watched by the
205
157
  * `IntersectionObserver`.
@@ -1,82 +0,0 @@
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
- #pragma once
9
-
10
- #include "JsiIntegrationTest.h"
11
-
12
- #include <folly/dynamic.h>
13
- #include <folly/json.h>
14
- #include <gmock/gmock.h>
15
- #include <vector>
16
-
17
- #include "FollyDynamicMatchers.h"
18
-
19
- namespace facebook::react::jsinspector_modern {
20
-
21
- /**
22
- * Base test class providing tracing-related test utilities for tests.
23
- */
24
- template <typename EngineAdapter, typename Executor>
25
- class TracingTestBase : public JsiIntegrationPortableTestBase<EngineAdapter, Executor> {
26
- protected:
27
- using JsiIntegrationPortableTestBase<EngineAdapter, Executor>::JsiIntegrationPortableTestBase;
28
-
29
- /**
30
- * Helper method to start tracing via Tracing.start CDP command.
31
- */
32
- void startTracing()
33
- {
34
- this->expectMessageFromPage(JsonEq(R"({
35
- "id": 1,
36
- "result": {}
37
- })"));
38
-
39
- this->toPage_->sendMessage(R"({
40
- "id": 1,
41
- "method": "Tracing.start"
42
- })");
43
- }
44
-
45
- /**
46
- * Helper method to end tracing and collect all trace events from potentially
47
- * multiple chunked Tracing.dataCollected messages.
48
- * \returns A vector containing all collected trace events
49
- */
50
- std::vector<folly::dynamic> endTracingAndCollectEvents()
51
- {
52
- testing::InSequence s;
53
-
54
- this->expectMessageFromPage(JsonEq(R"({
55
- "id": 1,
56
- "result": {}
57
- })"));
58
-
59
- std::vector<folly::dynamic> allTraceEvents;
60
-
61
- EXPECT_CALL(this->fromPage(), onMessage(JsonParsed(AtJsonPtr("/method", "Tracing.dataCollected"))))
62
- .Times(testing::AtLeast(1))
63
- .WillRepeatedly(testing::Invoke([&allTraceEvents](const std::string &message) {
64
- auto parsedMessage = folly::parseJson(message);
65
- auto &events = parsedMessage.at("params").at("value");
66
- allTraceEvents.insert(
67
- allTraceEvents.end(), std::make_move_iterator(events.begin()), std::make_move_iterator(events.end()));
68
- }));
69
-
70
- this->expectMessageFromPage(JsonParsed(
71
- testing::AllOf(AtJsonPtr("/method", "Tracing.tracingComplete"), AtJsonPtr("/params/dataLossOccurred", false))));
72
-
73
- this->toPage_->sendMessage(R"({
74
- "id": 1,
75
- "method": "Tracing.end"
76
- })");
77
-
78
- return allTraceEvents;
79
- }
80
- };
81
-
82
- } // namespace facebook::react::jsinspector_modern