react-native 0.84.0-nightly-20251105-5ec5cc3a3 → 0.84.0-nightly-20251107-f8198f662

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 (102) hide show
  1. package/Libraries/Animated/createAnimatedComponent.js +1 -0
  2. package/Libraries/Components/Button.js +0 -3
  3. package/Libraries/Core/ReactNativeVersion.js +1 -1
  4. package/Libraries/StyleSheet/PlatformColorValueTypes.android.js +2 -2
  5. package/Libraries/StyleSheet/PlatformColorValueTypes.ios.js +1 -1
  6. package/Libraries/StyleSheet/PlatformColorValueTypes.js.flow +4 -2
  7. package/React/Base/RCTVersion.m +1 -1
  8. package/React/CoreModules/React-CoreModules.podspec +1 -0
  9. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +8 -8
  10. package/React/Fabric/Surface/RCTFabricSurface.mm +1 -1
  11. package/React/Runtime/React-RCTRuntime.podspec +1 -0
  12. package/ReactAndroid/api/ReactAndroid.api +0 -13
  13. package/ReactAndroid/gradle.properties +1 -1
  14. package/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.kt +2 -3
  15. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CatalystInstanceImpl.java +2 -6
  16. package/ReactAndroid/src/main/java/com/facebook/react/bridge/ModuleHolder.kt +2 -2
  17. package/ReactAndroid/src/main/java/com/facebook/react/bridge/NativeModuleRegistry.kt +1 -16
  18. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +7 -7
  19. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +11 -11
  20. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +3 -3
  21. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +3 -3
  22. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +12 -12
  23. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +3 -3
  24. package/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.kt +2 -35
  25. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  26. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/FabricEventDispatcher.kt +3 -36
  27. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +4 -0
  28. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +4 -0
  29. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/VirtualViewContainerStateExperimental.kt +7 -0
  30. package/ReactAndroid/src/main/java/com/facebook/react/views/view/ReactViewGroup.kt +11 -1
  31. package/ReactAndroid/src/main/jni/react/fabric/FabricUIManagerBinding.cpp +36 -26
  32. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -15
  33. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -4
  34. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp +3 -13
  35. package/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.h +1 -4
  36. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h +0 -24
  37. package/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp +0 -1
  38. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp +1 -29
  39. package/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h +1 -2
  40. package/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp +0 -2
  41. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactInstance.cpp +2 -1
  42. package/ReactAndroid/src/main/jni/react/turbomodule/ReactCommon/TurboModuleManager.cpp +1 -35
  43. package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -0
  44. package/ReactCommon/cxxreact/ReactMarker.cpp +0 -1
  45. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  46. package/ReactCommon/jsiexecutor/CMakeLists.txt +3 -1
  47. package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +3 -0
  48. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.cpp +0 -40
  49. package/ReactCommon/jsiexecutor/jsireact/JSIExecutor.h +1 -6
  50. package/ReactCommon/jsinspector-modern/ConsoleTask.cpp +27 -0
  51. package/ReactCommon/jsinspector-modern/ConsoleTask.h +38 -0
  52. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.cpp +46 -0
  53. package/ReactCommon/jsinspector-modern/ConsoleTaskContext.h +102 -0
  54. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.cpp +55 -0
  55. package/ReactCommon/jsinspector-modern/ConsoleTaskOrchestrator.h +48 -0
  56. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +1 -1
  57. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +12 -0
  58. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +16 -13
  59. package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +106 -1
  60. package/ReactCommon/jsinspector-modern/tests/ConsoleCreateTaskTest.cpp +131 -0
  61. package/ReactCommon/jsinspector-modern/tests/ReactInstanceIntegrationTest.cpp +1 -0
  62. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +13 -2
  63. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +6 -2
  64. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +4 -0
  65. package/ReactCommon/jsinspector-modern/tracing/TargetTracingAgent.h +5 -0
  66. package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -0
  67. package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.cpp +54 -0
  68. package/ReactCommon/jsitooling/react/runtime/JSRuntimeBindings.h +20 -0
  69. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -5
  70. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -6
  71. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +83 -83
  72. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +3 -3
  73. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +5 -5
  74. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +10 -10
  75. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +2 -2
  76. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +6 -6
  77. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -3
  78. package/ReactCommon/react/performance/timeline/CMakeLists.txt +1 -0
  79. package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +9 -1
  80. package/ReactCommon/react/performance/timeline/React-performancetimeline.podspec +1 -0
  81. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +21 -16
  82. package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManagerProvider.cpp +9 -5
  83. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp +67 -32
  84. package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +14 -2
  85. package/ReactCommon/react/renderer/core/EventDispatcher.cpp +1 -1
  86. package/ReactCommon/react/renderer/core/EventQueueProcessor.cpp +3 -3
  87. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +0 -20
  88. package/ReactCommon/react/renderer/scheduler/SurfaceHandler.h +3 -3
  89. package/ReactCommon/react/renderer/scheduler/SurfaceManager.cpp +2 -3
  90. package/ReactCommon/react/runtime/ReactInstance.cpp +8 -6
  91. package/ReactCommon/react/runtime/ReactInstance.h +0 -1
  92. package/ReactCommon/react/utils/React-utils.podspec +3 -1
  93. package/flow/bom.js.flow +7 -0
  94. package/package.json +9 -8
  95. package/scripts/ios-configure-glog.sh +6 -1
  96. package/src/private/featureflags/ReactNativeFeatureFlags.js +6 -6
  97. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -2
  98. package/types_generated/Libraries/Components/Button.d.ts +1 -4
  99. package/types_generated/Libraries/StyleSheet/PlatformColorValueTypes.d.ts +3 -3
  100. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt +0 -25
  101. package/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt +0 -61
  102. package/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h +0 -37
@@ -7,14 +7,12 @@
7
7
 
8
8
  package com.facebook.react.uimanager.events
9
9
 
10
- import android.os.Handler
11
10
  import android.view.Choreographer
12
11
  import com.facebook.react.bridge.LifecycleEventListener
13
12
  import com.facebook.react.bridge.ReactApplicationContext
14
13
  import com.facebook.react.bridge.ReactSoftExceptionLogger
15
14
  import com.facebook.react.bridge.UiThreadUtil
16
15
  import com.facebook.react.common.annotations.UnstableReactNativeAPI
17
- import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
18
16
  import com.facebook.react.modules.core.ReactChoreographer
19
17
  import com.facebook.react.uimanager.UIManagerHelper
20
18
  import com.facebook.react.uimanager.common.UIManagerType
@@ -41,19 +39,6 @@ internal class FabricEventDispatcher(
41
39
  private val postEventDispatchListeners = CopyOnWriteArrayList<BatchEventDispatchedListener>()
42
40
  private val currentFrameCallback = ScheduleDispatchFrameCallback()
43
41
 
44
- private var isDispatchScheduled = false
45
- private val dispatchEventsRunnable = Runnable {
46
- isDispatchScheduled = false
47
- Systrace.beginSection(Systrace.TRACE_TAG_REACT, "BatchEventDispatchedListeners")
48
- try {
49
- for (listener in postEventDispatchListeners) {
50
- listener.onBatchEventDispatched()
51
- }
52
- } finally {
53
- Systrace.endSection(Systrace.TRACE_TAG_REACT)
54
- }
55
- }
56
-
57
42
  init {
58
43
  reactContext.addLifecycleEventListener(this)
59
44
  eventEmitter.registerFabricEventEmitter(fabricEventEmitter)
@@ -109,14 +94,7 @@ internal class FabricEventDispatcher(
109
94
  }
110
95
 
111
96
  private fun scheduleDispatchOfBatchedEvents() {
112
- if (ReactNativeFeatureFlags.useOptimizedEventBatchingOnAndroid()) {
113
- if (!isDispatchScheduled) {
114
- isDispatchScheduled = true
115
- uiThreadHandler.postAtFrontOfQueue(dispatchEventsRunnable)
116
- }
117
- } else {
118
- currentFrameCallback.maybeScheduleDispatchOfBatchedEvents()
119
- }
97
+ currentFrameCallback.maybeScheduleDispatchOfBatchedEvents()
120
98
  }
121
99
 
122
100
  /** Add a listener to this EventDispatcher. */
@@ -139,9 +117,7 @@ internal class FabricEventDispatcher(
139
117
 
140
118
  override fun onHostResume() {
141
119
  scheduleDispatchOfBatchedEvents()
142
- if (!ReactNativeFeatureFlags.useOptimizedEventBatchingOnAndroid()) {
143
- currentFrameCallback.resume()
144
- }
120
+ currentFrameCallback.resume()
145
121
  }
146
122
 
147
123
  override fun onHostPause() {
@@ -165,12 +141,7 @@ internal class FabricEventDispatcher(
165
141
 
166
142
  private fun cancelDispatchOfBatchedEvents() {
167
143
  UiThreadUtil.assertOnUiThread()
168
- if (ReactNativeFeatureFlags.useOptimizedEventBatchingOnAndroid()) {
169
- isDispatchScheduled = false
170
- uiThreadHandler.removeCallbacks(dispatchEventsRunnable)
171
- } else {
172
- currentFrameCallback.stop()
173
- }
144
+ currentFrameCallback.stop()
174
145
  }
175
146
 
176
147
  private inner class ScheduleDispatchFrameCallback : Choreographer.FrameCallback {
@@ -229,8 +200,4 @@ internal class FabricEventDispatcher(
229
200
  }
230
201
  }
231
202
  }
232
-
233
- private companion object {
234
- private val uiThreadHandler: Handler = UiThreadUtil.getUiThreadHandler()
235
- }
236
203
  }
@@ -291,6 +291,10 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
291
291
 
292
292
  @Override
293
293
  public void setRemoveClippedSubviews(boolean removeClippedSubviews) {
294
+ if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) {
295
+ return;
296
+ }
297
+
294
298
  if (removeClippedSubviews && mClippingRect == null) {
295
299
  mClippingRect = new Rect();
296
300
  }
@@ -719,6 +719,10 @@ public class ReactScrollView extends ScrollView
719
719
 
720
720
  @Override
721
721
  public void setRemoveClippedSubviews(boolean removeClippedSubviews) {
722
+ if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) {
723
+ return;
724
+ }
725
+
722
726
  if (removeClippedSubviews && mClippingRect == null) {
723
727
  mClippingRect = new Rect();
724
728
  }
@@ -49,6 +49,13 @@ internal class VirtualViewContainerStateExperimental(scrollView: ViewGroup) :
49
49
  }
50
50
  }
51
51
 
52
+ override fun remove(virtualView: VirtualView) {
53
+ super.remove(virtualView)
54
+ HPV.remove(virtualView.virtualViewID)
55
+ P.remove(virtualView.virtualViewID)
56
+ V.remove(virtualView.virtualViewID)
57
+ }
58
+
52
59
  /**
53
60
  * Perform mode update check on a single VirtualView. Does not check other VirtualViews in the
54
61
  * collection. Use carefully
@@ -32,6 +32,7 @@ import com.facebook.react.bridge.UiThreadUtil.assertOnUiThread
32
32
  import com.facebook.react.bridge.UiThreadUtil.runOnUiThread
33
33
  import com.facebook.react.common.ReactConstants.TAG
34
34
  import com.facebook.react.config.ReactFeatureFlags
35
+ import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
35
36
  import com.facebook.react.touch.OnInterceptTouchEventListener
36
37
  import com.facebook.react.touch.ReactHitSlopView
37
38
  import com.facebook.react.touch.ReactInterceptingViewGroup
@@ -362,8 +363,17 @@ public open class ReactViewGroup public constructor(context: Context?) :
362
363
  }
363
364
 
364
365
  override var removeClippedSubviews: Boolean
365
- get() = _removeClippedSubviews
366
+ get() {
367
+ if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) {
368
+ return false
369
+ }
370
+ return _removeClippedSubviews
371
+ }
366
372
  set(newValue) {
373
+ if (ReactNativeFeatureFlags.disableSubviewClippingAndroid()) {
374
+ return
375
+ }
376
+
367
377
  if (newValue == _removeClippedSubviews) {
368
378
  return
369
379
  }
@@ -166,34 +166,39 @@ void FabricUIManagerBinding::startSurface(
166
166
  return;
167
167
  }
168
168
 
169
- auto layoutContext = LayoutContext{};
170
- layoutContext.pointScaleFactor = pointScaleFactor_;
169
+ SurfaceHandler* surfaceHandler = nullptr;
170
+ {
171
+ std::unique_lock lock(surfaceHandlerRegistryMutex_);
172
+ auto [it, _] = surfaceHandlerRegistry_.try_emplace(
173
+ surfaceId,
174
+ std::in_place_index<0>,
175
+ moduleName->toStdString(),
176
+ surfaceId);
177
+ surfaceHandler = &std::get<SurfaceHandler>(it->second);
178
+ }
171
179
 
172
- auto surfaceHandler = SurfaceHandler{moduleName->toStdString(), surfaceId};
173
- surfaceHandler.setContextContainer(scheduler->getContextContainer());
180
+ surfaceHandler->setContextContainer(scheduler->getContextContainer());
174
181
  if (initialProps != nullptr) {
175
- surfaceHandler.setProps(initialProps->consume());
182
+ surfaceHandler->setProps(initialProps->consume());
176
183
  }
177
- surfaceHandler.constraintLayout({}, layoutContext);
178
184
 
179
- scheduler->registerSurface(surfaceHandler);
185
+ auto layoutContext = LayoutContext{};
186
+ layoutContext.pointScaleFactor = pointScaleFactor_;
187
+ surfaceHandler->constraintLayout({}, layoutContext);
188
+
189
+ scheduler->registerSurface(*surfaceHandler);
180
190
 
181
191
  auto mountingManager = getMountingManager("startSurface");
182
192
  if (mountingManager != nullptr) {
183
193
  mountingManager->onSurfaceStart(surfaceId);
184
194
  }
185
195
 
186
- surfaceHandler.start();
196
+ surfaceHandler->start();
187
197
 
188
198
  if (ReactNativeFeatureFlags::enableLayoutAnimationsOnAndroid()) {
189
- surfaceHandler.getMountingCoordinator()->setMountingOverrideDelegate(
199
+ surfaceHandler->getMountingCoordinator()->setMountingOverrideDelegate(
190
200
  animationDriver_);
191
201
  }
192
-
193
- {
194
- std::unique_lock lock(surfaceHandlerRegistryMutex_);
195
- surfaceHandlerRegistry_.emplace(surfaceId, std::move(surfaceHandler));
196
- }
197
202
  }
198
203
 
199
204
  jint FabricUIManagerBinding::findNextFocusableElement(
@@ -338,31 +343,36 @@ void FabricUIManagerBinding::startSurfaceWithConstraints(
338
343
  constraints.layoutDirection =
339
344
  isRTL != 0 ? LayoutDirection::RightToLeft : LayoutDirection::LeftToRight;
340
345
 
341
- auto surfaceHandler = SurfaceHandler{moduleName->toStdString(), surfaceId};
342
- surfaceHandler.setContextContainer(scheduler->getContextContainer());
346
+ SurfaceHandler* surfaceHandler = nullptr;
347
+ {
348
+ std::unique_lock lock(surfaceHandlerRegistryMutex_);
349
+ auto [it, _] = surfaceHandlerRegistry_.try_emplace(
350
+ surfaceId,
351
+ std::in_place_index<0>,
352
+ moduleName->toStdString(),
353
+ surfaceId);
354
+ surfaceHandler = &std::get<SurfaceHandler>(it->second);
355
+ }
356
+
357
+ surfaceHandler->setContextContainer(scheduler->getContextContainer());
343
358
  if (initialProps != nullptr) {
344
- surfaceHandler.setProps(initialProps->consume());
359
+ surfaceHandler->setProps(initialProps->consume());
345
360
  }
346
- surfaceHandler.constraintLayout(constraints, context);
361
+ surfaceHandler->constraintLayout(constraints, context);
347
362
 
348
- scheduler->registerSurface(surfaceHandler);
363
+ scheduler->registerSurface(*surfaceHandler);
349
364
 
350
365
  auto mountingManager = getMountingManager("startSurfaceWithConstraints");
351
366
  if (mountingManager != nullptr) {
352
367
  mountingManager->onSurfaceStart(surfaceId);
353
368
  }
354
369
 
355
- surfaceHandler.start();
370
+ surfaceHandler->start();
356
371
 
357
372
  if (ReactNativeFeatureFlags::enableLayoutAnimationsOnAndroid()) {
358
- surfaceHandler.getMountingCoordinator()->setMountingOverrideDelegate(
373
+ surfaceHandler->getMountingCoordinator()->setMountingOverrideDelegate(
359
374
  animationDriver_);
360
375
  }
361
-
362
- {
363
- std::unique_lock lock(surfaceHandlerRegistryMutex_);
364
- surfaceHandlerRegistry_.emplace(surfaceId, std::move(surfaceHandler));
365
- }
366
376
  }
367
377
 
368
378
  // Used by non-bridgeless+Fabric
@@ -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<<0527dbb4a838be34b80d76b11d18cea0>>
8
8
  */
9
9
 
10
10
  /**
@@ -87,6 +87,12 @@ class ReactNativeFeatureFlagsJavaProvider
87
87
  return method(javaProvider_);
88
88
  }
89
89
 
90
+ bool disableSubviewClippingAndroid() override {
91
+ static const auto method =
92
+ getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("disableSubviewClippingAndroid");
93
+ return method(javaProvider_);
94
+ }
95
+
90
96
  bool disableTextLayoutManagerCacheAndroid() override {
91
97
  static const auto method =
92
98
  getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("disableTextLayoutManagerCacheAndroid");
@@ -471,12 +477,6 @@ class ReactNativeFeatureFlagsJavaProvider
471
477
  return method(javaProvider_);
472
478
  }
473
479
 
474
- bool useOptimizedEventBatchingOnAndroid() override {
475
- static const auto method =
476
- getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("useOptimizedEventBatchingOnAndroid");
477
- return method(javaProvider_);
478
- }
479
-
480
480
  bool useRawPropsJsiValue() override {
481
481
  static const auto method =
482
482
  getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("useRawPropsJsiValue");
@@ -575,6 +575,11 @@ bool JReactNativeFeatureFlagsCxxInterop::disableOldAndroidAttachmentMetricsWorka
575
575
  return ReactNativeFeatureFlags::disableOldAndroidAttachmentMetricsWorkarounds();
576
576
  }
577
577
 
578
+ bool JReactNativeFeatureFlagsCxxInterop::disableSubviewClippingAndroid(
579
+ facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
580
+ return ReactNativeFeatureFlags::disableSubviewClippingAndroid();
581
+ }
582
+
578
583
  bool JReactNativeFeatureFlagsCxxInterop::disableTextLayoutManagerCacheAndroid(
579
584
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
580
585
  return ReactNativeFeatureFlags::disableTextLayoutManagerCacheAndroid();
@@ -895,11 +900,6 @@ bool JReactNativeFeatureFlagsCxxInterop::useNativeViewConfigsInBridgelessMode(
895
900
  return ReactNativeFeatureFlags::useNativeViewConfigsInBridgelessMode();
896
901
  }
897
902
 
898
- bool JReactNativeFeatureFlagsCxxInterop::useOptimizedEventBatchingOnAndroid(
899
- facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
900
- return ReactNativeFeatureFlags::useOptimizedEventBatchingOnAndroid();
901
- }
902
-
903
903
  bool JReactNativeFeatureFlagsCxxInterop::useRawPropsJsiValue(
904
904
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
905
905
  return ReactNativeFeatureFlags::useRawPropsJsiValue();
@@ -1000,6 +1000,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
1000
1000
  makeNativeMethod(
1001
1001
  "disableOldAndroidAttachmentMetricsWorkarounds",
1002
1002
  JReactNativeFeatureFlagsCxxInterop::disableOldAndroidAttachmentMetricsWorkarounds),
1003
+ makeNativeMethod(
1004
+ "disableSubviewClippingAndroid",
1005
+ JReactNativeFeatureFlagsCxxInterop::disableSubviewClippingAndroid),
1003
1006
  makeNativeMethod(
1004
1007
  "disableTextLayoutManagerCacheAndroid",
1005
1008
  JReactNativeFeatureFlagsCxxInterop::disableTextLayoutManagerCacheAndroid),
@@ -1192,9 +1195,6 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
1192
1195
  makeNativeMethod(
1193
1196
  "useNativeViewConfigsInBridgelessMode",
1194
1197
  JReactNativeFeatureFlagsCxxInterop::useNativeViewConfigsInBridgelessMode),
1195
- makeNativeMethod(
1196
- "useOptimizedEventBatchingOnAndroid",
1197
- JReactNativeFeatureFlagsCxxInterop::useOptimizedEventBatchingOnAndroid),
1198
1198
  makeNativeMethod(
1199
1199
  "useRawPropsJsiValue",
1200
1200
  JReactNativeFeatureFlagsCxxInterop::useRawPropsJsiValue),
@@ -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<<a1deb0145d8c51d608903e1704e96b8d>>
8
8
  */
9
9
 
10
10
  /**
@@ -54,6 +54,9 @@ class JReactNativeFeatureFlagsCxxInterop
54
54
  static bool disableOldAndroidAttachmentMetricsWorkarounds(
55
55
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
56
56
 
57
+ static bool disableSubviewClippingAndroid(
58
+ facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
59
+
57
60
  static bool disableTextLayoutManagerCacheAndroid(
58
61
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
59
62
 
@@ -246,9 +249,6 @@ class JReactNativeFeatureFlagsCxxInterop
246
249
  static bool useNativeViewConfigsInBridgelessMode(
247
250
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
248
251
 
249
- static bool useOptimizedEventBatchingOnAndroid(
250
- facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
251
-
252
252
  static bool useRawPropsJsiValue(
253
253
  facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
254
254
 
@@ -164,8 +164,6 @@ void CatalystInstanceImpl::initializeBridge(
164
164
  jni::alias_ref<JavaMessageQueueThread::javaobject> nativeModulesQueue,
165
165
  jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject>
166
166
  javaModules,
167
- jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject>
168
- cxxModules,
169
167
  jni::alias_ref<ReactInstanceManagerInspectorTarget::javaobject>
170
168
  inspectorTarget) {
171
169
  set_react_native_logfunc(&log);
@@ -194,10 +192,7 @@ void CatalystInstanceImpl::initializeBridge(
194
192
  // stack.
195
193
 
196
194
  moduleRegistry_ = std::make_shared<ModuleRegistry>(buildNativeModuleList(
197
- std::weak_ptr<Instance>(instance_),
198
- javaModules,
199
- cxxModules,
200
- moduleMessageQueue_));
195
+ std::weak_ptr<Instance>(instance_), javaModules, moduleMessageQueue_));
201
196
 
202
197
  instance_->initializeBridge(
203
198
  std::make_unique<InstanceCallbackImpl>(callback),
@@ -211,14 +206,9 @@ void CatalystInstanceImpl::initializeBridge(
211
206
 
212
207
  void CatalystInstanceImpl::extendNativeModules(
213
208
  jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject>
214
- javaModules,
215
- jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject>
216
- cxxModules) {
209
+ javaModules) {
217
210
  moduleRegistry_->registerModules(buildNativeModuleList(
218
- std::weak_ptr<Instance>(instance_),
219
- javaModules,
220
- cxxModules,
221
- moduleMessageQueue_));
211
+ std::weak_ptr<Instance>(instance_), javaModules, moduleMessageQueue_));
222
212
  }
223
213
 
224
214
  void CatalystInstanceImpl::jniSetSourceURL(const std::string& sourceURL) {
@@ -60,12 +60,9 @@ class [[deprecated("This API will be removed along with the legacy architecture.
60
60
  jni::alias_ref<JavaMessageQueueThread::javaobject> jsQueue,
61
61
  jni::alias_ref<JavaMessageQueueThread::javaobject> nativeModulesQueue,
62
62
  jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject> javaModules,
63
- jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject> cxxModules,
64
63
  jni::alias_ref<ReactInstanceManagerInspectorTarget::javaobject> inspectorTarget);
65
64
 
66
- void extendNativeModules(
67
- jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject> javaModules,
68
- jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject> cxxModules);
65
+ void extendNativeModules(jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject> javaModules);
69
66
 
70
67
  /**
71
68
  * Sets the source URL of the underlying bridge without loading any JS code.
@@ -7,10 +7,6 @@
7
7
 
8
8
  #pragma once
9
9
 
10
- #include <memory>
11
- #include <string>
12
-
13
- #include <cxxreact/CxxModule.h>
14
10
  #include <fbjni/fbjni.h>
15
11
 
16
12
  namespace facebook::react {
@@ -19,24 +15,4 @@ struct JNativeModule : jni::JavaClass<JNativeModule> {
19
15
  constexpr static const char *const kJavaDescriptor = "Lcom/facebook/react/bridge/NativeModule;";
20
16
  };
21
17
 
22
- /**
23
- * The C++ part of a CxxModuleWrapper is not a unique class, but it
24
- * must extend this base class.
25
- */
26
- class CxxModuleWrapperBase : public jni::HybridClass<CxxModuleWrapperBase, JNativeModule> {
27
- public:
28
- constexpr static const char *const kJavaDescriptor = "Lcom/facebook/react/bridge/CxxModuleWrapperBase;";
29
-
30
- static void registerNatives()
31
- {
32
- registerHybrid({makeNativeMethod("getName", CxxModuleWrapperBase::getName)});
33
- }
34
-
35
- // JNI method
36
- virtual std::string getName() = 0;
37
-
38
- // Called by ModuleRegistryBuilder
39
- virtual std::unique_ptr<xplat::module::CxxModule> getModule() = 0;
40
- };
41
-
42
18
  } // namespace facebook::react
@@ -9,7 +9,6 @@
9
9
 
10
10
  #include <glog/logging.h>
11
11
 
12
- #include <cxxreact/CxxModule.h>
13
12
  #include <cxxreact/CxxNativeModule.h>
14
13
  #include <cxxreact/Instance.h>
15
14
  #include <cxxreact/JsArgumentHelpers.h>
@@ -24,30 +24,13 @@ std::string ModuleHolder::getName() const {
24
24
 
25
25
  xplat::module::CxxModule::Provider ModuleHolder::getProvider(
26
26
  const std::string& moduleName) const {
27
- return [self = jni::make_global(self()), moduleName] {
28
- static auto getModule =
29
- ModuleHolder::javaClassStatic()->getMethod<JNativeModule::javaobject()>(
30
- "getModule");
31
- // This is the call which uses the lazy Java Provider to instantiate the
32
- // Java CxxModuleWrapper which contains the CxxModule.
33
- auto module = getModule(self);
34
-
35
- CHECK(module->isInstanceOf(CxxModuleWrapperBase::javaClassStatic()))
36
- << "NativeModule '" << moduleName << "' isn't a C++ module";
37
-
38
- auto cxxModule =
39
- jni::static_ref_cast<CxxModuleWrapperBase::javaobject>(module);
40
- // Then, we grab the CxxModule from the wrapper, which is no longer needed.
41
- return cxxModule->cthis()->getModule();
42
- };
27
+ return [self = jni::make_global(self()), moduleName] { return nullptr; };
43
28
  }
44
29
 
45
30
  std::vector<std::unique_ptr<NativeModule>> buildNativeModuleList(
46
31
  std::weak_ptr<Instance> winstance,
47
32
  jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject>
48
33
  javaModules,
49
- jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject>
50
- cxxModules,
51
34
  std::shared_ptr<MessageQueueThread> moduleMessageQueue) {
52
35
  std::vector<std::unique_ptr<NativeModule>> modules;
53
36
  if (javaModules) {
@@ -57,17 +40,6 @@ std::vector<std::unique_ptr<NativeModule>> buildNativeModuleList(
57
40
  winstance, jm, moduleMessageQueue));
58
41
  }
59
42
  }
60
- if (cxxModules) {
61
- for (const auto& cm : *cxxModules) {
62
- std::string moduleName = cm->getName();
63
- modules.emplace_back(
64
- std::make_unique<CxxNativeModule>(
65
- winstance,
66
- moduleName,
67
- cm->getProvider(moduleName),
68
- moduleMessageQueue));
69
- }
70
- }
71
43
  return modules;
72
44
  }
73
45
 
@@ -11,7 +11,7 @@
11
11
  #include <cxxreact/ModuleRegistry.h>
12
12
  #include <fbjni/fbjni.h>
13
13
 
14
- #include "CxxModuleWrapper.h"
14
+ #include "CxxModuleWrapperBase.h"
15
15
  #include "JavaModuleWrapper.h"
16
16
 
17
17
  #ifndef RCT_REMOVE_LEGACY_ARCH
@@ -33,7 +33,6 @@ class [[deprecated("This API will be removed along with the legacy architecture.
33
33
  std::vector<std::unique_ptr<NativeModule>> buildNativeModuleList(
34
34
  std::weak_ptr<Instance> winstance,
35
35
  jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject> javaModules,
36
- jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject> cxxModules,
37
36
  std::shared_ptr<MessageQueueThread> moduleMessageQueue);
38
37
  } // namespace facebook::react
39
38
 
@@ -11,7 +11,6 @@
11
11
  #include <fbjni/fbjni.h>
12
12
 
13
13
  #include "CatalystInstanceImpl.h"
14
- #include "CxxModuleWrapperBase.h"
15
14
  #include "InspectorNetworkRequestListener.h"
16
15
  #include "JavaScriptExecutorHolder.h"
17
16
  #include "ReactInstanceManagerInspectorTarget.h"
@@ -42,7 +41,6 @@ extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) {
42
41
  CatalystInstanceImpl::registerNatives();
43
42
  #pragma clang diagnostic pop
44
43
  #endif
45
- CxxModuleWrapperBase::registerNatives();
46
44
  ReactInstanceManagerInspectorTarget::registerNatives();
47
45
  InspectorNetworkRequestListener::registerNatives();
48
46
  });
@@ -13,11 +13,12 @@
13
13
  #include <glog/logging.h>
14
14
  #include <jni.h>
15
15
  #include <jsi/jsi.h>
16
- #include <jsireact/JSIExecutor.h>
17
16
  #include <react/jni/JRuntimeExecutor.h>
18
17
  #include <react/jni/JSLogging.h>
19
18
  #include <react/renderer/runtimescheduler/RuntimeSchedulerCallInvoker.h>
20
19
  #include <react/runtime/BridgelessNativeMethodCallInvoker.h>
20
+ #include <react/runtime/JSRuntimeBindings.h>
21
+
21
22
  #include "JavaTimerRegistry.h"
22
23
 
23
24
  namespace facebook::react {
@@ -17,10 +17,9 @@
17
17
  #include <ReactCommon/BindingsInstallerHolder.h>
18
18
  #include <ReactCommon/CxxTurboModuleUtils.h>
19
19
  #include <ReactCommon/JavaInteropTurboModule.h>
20
- #include <ReactCommon/TurboCxxModule.h>
21
20
  #include <ReactCommon/TurboModuleBinding.h>
22
21
  #include <ReactCommon/TurboModulePerfLogger.h>
23
- #include <react/jni/CxxModuleWrapper.h>
22
+ #include <react/jni/CxxModuleWrapperBase.h>
24
23
 
25
24
  namespace facebook::react {
26
25
 
@@ -208,22 +207,6 @@ std::shared_ptr<TurboModule> TurboModuleManager::getTurboModule(
208
207
  return turboModule;
209
208
  }
210
209
 
211
- static auto getTurboLegacyCxxModule =
212
- javaPart->getClass()
213
- ->getMethod<jni::alias_ref<CxxModuleWrapper::javaobject>(
214
- const std::string&)>("getTurboLegacyCxxModule");
215
- auto legacyCxxModule = getTurboLegacyCxxModule(javaPart.get(), name);
216
- if (legacyCxxModule) {
217
- TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName);
218
-
219
- auto turboModule = std::make_shared<react::TurboCxxModule>(
220
- legacyCxxModule->cthis()->getModule(), jsCallInvoker_);
221
- turboModuleCache_.insert({name, turboModule});
222
-
223
- TurboModulePerfLogger::moduleJSRequireEndingEnd(moduleName);
224
- return turboModule;
225
- }
226
-
227
210
  return nullptr;
228
211
  }
229
212
 
@@ -260,23 +243,6 @@ std::shared_ptr<TurboModule> TurboModuleManager::getLegacyModule(
260
243
 
261
244
  TurboModulePerfLogger::moduleJSRequireBeginningEnd(moduleName);
262
245
 
263
- static auto getLegacyCxxModule =
264
- javaPart->getClass()
265
- ->getMethod<jni::alias_ref<CxxModuleWrapper::javaobject>(
266
- const std::string&)>("getLegacyCxxModule");
267
- auto legacyCxxModule = getLegacyCxxModule(javaPart.get(), name);
268
-
269
- if (legacyCxxModule) {
270
- TurboModulePerfLogger::moduleJSRequireEndingStart(moduleName);
271
-
272
- auto turboModule = std::make_shared<react::TurboCxxModule>(
273
- legacyCxxModule->cthis()->getModule(), jsCallInvoker_);
274
- legacyModuleCache_.insert({name, turboModule});
275
-
276
- TurboModulePerfLogger::moduleJSRequireEndingEnd(moduleName);
277
- return turboModule;
278
- }
279
-
280
246
  static auto getLegacyJavaModule =
281
247
  javaPart->getClass()
282
248
  ->getMethod<jni::alias_ref<JNativeModule>(const std::string&)>(
@@ -44,6 +44,7 @@ Pod::Spec.new do |s|
44
44
  s.dependency "React-logger", version
45
45
  s.dependency "React-debug", version
46
46
  s.dependency "React-timing", version
47
+ add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"])
47
48
 
48
49
  s.resource_bundles = {'React-cxxreact_privacy' => 'PrivacyInfo.xcprivacy'}
49
50
 
@@ -6,7 +6,6 @@
6
6
  */
7
7
 
8
8
  #include "ReactMarker.h"
9
- #include <cxxreact/JSExecutor.h>
10
9
 
11
10
  namespace facebook::react::ReactMarker {
12
11
 
@@ -22,7 +22,7 @@ constexpr struct {
22
22
  int32_t Major = 0;
23
23
  int32_t Minor = 84;
24
24
  int32_t Patch = 0;
25
- std::string_view Prerelease = "nightly-20251105-5ec5cc3a3";
25
+ std::string_view Prerelease = "nightly-20251107-f8198f662";
26
26
  } ReactNativeVersion;
27
27
 
28
28
  } // namespace facebook::react
@@ -20,7 +20,9 @@ target_link_libraries(jsireact
20
20
  reactperflogger
21
21
  folly_runtime
22
22
  glog
23
- jsi)
23
+ jserrorhandler
24
+ jsi
25
+ jsitooling)
24
26
 
25
27
  target_compile_reactnative_options(jsireact PRIVATE)
26
28
  target_compile_options(jsireact PRIVATE -O3)