react-native-tvos 0.83.4-2 → 0.83.9-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 (153) hide show
  1. package/Libraries/Core/ReactNativeVersion.js +2 -2
  2. package/Libraries/Utilities/Appearance.js +6 -1
  3. package/Libraries/Utilities/HMRClient.js +28 -1
  4. package/React/Base/RCTVersion.m +2 -2
  5. package/React/CoreModules/RCTDevLoadingView.mm +17 -0
  6. package/React/CoreModules/RCTJscSafeUrl+Internal.h +23 -0
  7. package/React/CoreModules/RCTJscSafeUrl.mm +38 -0
  8. package/React/CoreModules/RCTRedBox+Internal.h +42 -0
  9. package/React/CoreModules/RCTRedBox.mm +30 -471
  10. package/React/CoreModules/RCTRedBox2AnsiParser+Internal.h +22 -0
  11. package/React/CoreModules/RCTRedBox2AnsiParser.mm +55 -0
  12. package/React/CoreModules/RCTRedBox2Controller+Internal.h +34 -0
  13. package/React/CoreModules/RCTRedBox2Controller.mm +764 -0
  14. package/React/CoreModules/RCTRedBox2ErrorParser+Internal.h +46 -0
  15. package/React/CoreModules/RCTRedBox2ErrorParser.mm +57 -0
  16. package/React/CoreModules/RCTRedBoxController+Internal.h +31 -0
  17. package/React/CoreModules/RCTRedBoxController.mm +447 -0
  18. package/React/CoreModules/RCTRedBoxHMRClient+Internal.h +26 -0
  19. package/React/CoreModules/RCTRedBoxHMRClient.mm +125 -0
  20. package/React/CoreModules/React-CoreModules.podspec +1 -0
  21. package/React/DevSupport/RCTFrameTimingsObserver.h +24 -0
  22. package/React/DevSupport/RCTFrameTimingsObserver.mm +298 -0
  23. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +40 -0
  24. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +1 -2
  25. package/ReactAndroid/api/ReactAndroid.api +0 -9
  26. package/ReactAndroid/gradle.properties +1 -1
  27. package/ReactAndroid/publish.gradle +20 -46
  28. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +2 -2
  29. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +7 -7
  30. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +4 -0
  31. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +16 -0
  32. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +275 -0
  33. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
  34. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
  35. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{interfaces → inspector}/TracingStateProvider.kt +1 -1
  36. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
  37. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +4 -4
  38. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +3 -3
  39. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
  40. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +31 -1
  41. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +51 -1
  42. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +11 -1
  43. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +11 -1
  44. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +56 -1
  45. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +11 -1
  46. package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +39 -0
  47. package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +1 -1
  48. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +20 -19
  49. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +6 -12
  50. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
  51. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +86 -4
  52. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
  53. package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +10 -6
  54. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +7 -6
  55. package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +21 -3
  56. package/ReactAndroid/src/main/jni/CMakeLists.txt +7 -0
  57. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +22 -0
  58. package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +2 -0
  59. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +71 -1
  60. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +16 -1
  61. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +196 -17
  62. package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +168 -18
  63. package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
  64. package/ReactCommon/React-Fabric.podspec +6 -0
  65. package/ReactCommon/cxxreact/ReactNativeVersion.h +3 -3
  66. package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +44 -2
  67. package/ReactCommon/jsinspector-modern/HostAgent.cpp +45 -10
  68. package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
  69. package/ReactCommon/jsinspector-modern/HostTarget.cpp +14 -7
  70. package/ReactCommon/jsinspector-modern/HostTarget.h +101 -14
  71. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +39 -8
  72. package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
  73. package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
  74. package/ReactCommon/jsinspector-modern/HostTargetTracing.h +89 -0
  75. package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +12 -0
  76. package/ReactCommon/jsinspector-modern/InspectorFlags.h +12 -0
  77. package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +3 -7
  78. package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
  79. package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +1 -1
  80. package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +19 -0
  81. package/ReactCommon/jsinspector-modern/RuntimeAgent.h +7 -0
  82. package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +33 -0
  83. package/ReactCommon/jsinspector-modern/RuntimeTarget.h +6 -0
  84. package/ReactCommon/jsinspector-modern/TracingAgent.cpp +29 -13
  85. package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
  86. package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +65 -0
  87. package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +23 -2
  88. package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +1 -0
  89. package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +1 -0
  90. package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +335 -0
  91. package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
  92. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +10 -0
  93. package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +3 -1
  94. package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +1 -0
  95. package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +61 -0
  96. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
  97. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +165 -0
  98. package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.h +50 -0
  99. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +16 -14
  100. package/ReactCommon/jsinspector-modern/tracing/PerformanceTracerSection.h +113 -0
  101. package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -0
  102. package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
  103. package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
  104. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +100 -0
  105. package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +60 -0
  106. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +44 -1
  107. package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h +7 -0
  108. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
  109. package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +136 -0
  110. package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
  111. package/ReactCommon/react/debug/CMakeLists.txt +2 -1
  112. package/ReactCommon/react/debug/React-debug.podspec +7 -1
  113. package/ReactCommon/react/debug/redbox/AnsiParser.cpp +139 -0
  114. package/ReactCommon/react/debug/redbox/AnsiParser.h +35 -0
  115. package/ReactCommon/react/debug/redbox/JscSafeUrl.cpp +179 -0
  116. package/ReactCommon/react/debug/redbox/JscSafeUrl.h +27 -0
  117. package/ReactCommon/react/debug/redbox/RedBoxErrorParser.cpp +171 -0
  118. package/ReactCommon/react/debug/redbox/RedBoxErrorParser.h +40 -0
  119. package/ReactCommon/react/debug/redbox/tests/AnsiParserTest.cpp +97 -0
  120. package/ReactCommon/react/debug/redbox/tests/JscSafeUrlTest.cpp +173 -0
  121. package/ReactCommon/react/debug/redbox/tests/RedBoxErrorParserTest.cpp +107 -0
  122. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +21 -1
  123. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +26 -1
  124. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +140 -50
  125. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +12 -2
  126. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +21 -1
  127. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +46 -1
  128. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +6 -1
  129. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +3 -1
  130. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  131. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
  132. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
  133. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +26 -1
  134. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +11 -1
  135. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h +4 -0
  136. package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +66 -0
  137. package/ReactCommon/react/performance/timeline/PerformanceObserver.cpp +18 -6
  138. package/ReactCommon/react/performance/timeline/PerformanceObserver.h +2 -0
  139. package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +115 -0
  140. package/ReactCommon/{jsinspector-modern → react/utils}/Base64.h +2 -2
  141. package/gradle/libs.versions.toml +1 -1
  142. package/package.json +10 -10
  143. package/scripts/cocoapods/utils.rb +1 -0
  144. package/scripts/react_native_pods.rb +1 -0
  145. package/src/private/featureflags/ReactNativeFeatureFlags.js +26 -1
  146. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +6 -1
  147. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
  148. package/third-party-podspecs/RCT-Folly.podspec +1 -1
  149. package/third-party-podspecs/fmt.podspec +2 -2
  150. package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
  151. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
  152. package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.h +0 -42
  153. package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<f350f756268554418a046d0793ee0146>>
7
+ * @generated SignedSource<<b700a02133f84260647574d2f7a0f165>>
8
8
  */
9
9
 
10
10
  /**
@@ -246,6 +246,12 @@ public object ReactNativeFeatureFlags {
246
246
  @JvmStatic
247
247
  public fun enableModuleArgumentNSNullConversionIOS(): Boolean = accessor.enableModuleArgumentNSNullConversionIOS()
248
248
 
249
+ /**
250
+ * Enables the MutationObserver Web API in React Native.
251
+ */
252
+ @JvmStatic
253
+ public fun enableMutationObserverByDefault(): Boolean = accessor.enableMutationObserverByDefault()
254
+
249
255
  /**
250
256
  * Parse CSS strings using the Fabric CSS parser instead of ViewConfig processing
251
257
  */
@@ -372,12 +378,24 @@ public object ReactNativeFeatureFlags {
372
378
  @JvmStatic
373
379
  public fun fuseboxEnabledRelease(): Boolean = accessor.fuseboxEnabledRelease()
374
380
 
381
+ /**
382
+ * Enable frame timings and screenshots support in the React Native DevTools CDP backend. This flag is global and should not be changed across React Host lifetimes.
383
+ */
384
+ @JvmStatic
385
+ public fun fuseboxFrameRecordingEnabled(): Boolean = accessor.fuseboxFrameRecordingEnabled()
386
+
375
387
  /**
376
388
  * Enable network inspection support in the React Native DevTools CDP backend. Requires `enableBridgelessArchitecture`. This flag is global and should not be changed across React Host lifetimes.
377
389
  */
378
390
  @JvmStatic
379
391
  public fun fuseboxNetworkInspectionEnabled(): Boolean = accessor.fuseboxNetworkInspectionEnabled()
380
392
 
393
+ /**
394
+ * Enable Page.captureScreenshot CDP method support in the React Native DevTools CDP backend. This flag is global and should not be changed across React Host lifetimes.
395
+ */
396
+ @JvmStatic
397
+ public fun fuseboxScreenshotCaptureEnabled(): Boolean = accessor.fuseboxScreenshotCaptureEnabled()
398
+
381
399
  /**
382
400
  * Hides offscreen VirtualViews on iOS by setting hidden = YES to avoid extra cost of views
383
401
  */
@@ -414,6 +432,18 @@ public object ReactNativeFeatureFlags {
414
432
  @JvmStatic
415
433
  public fun preventShadowTreeCommitExhaustion(): Boolean = accessor.preventShadowTreeCommitExhaustion()
416
434
 
435
+ /**
436
+ * Use the redesigned RedBox error overlay on Android, styled to match the LogBox visual language.
437
+ */
438
+ @JvmStatic
439
+ public fun redBoxV2Android(): Boolean = accessor.redBoxV2Android()
440
+
441
+ /**
442
+ * Use the redesigned RedBox error overlay on iOS, styled to match the LogBox visual language.
443
+ */
444
+ @JvmStatic
445
+ public fun redBoxV2IOS(): Boolean = accessor.redBoxV2IOS()
446
+
417
447
  /**
418
448
  * Function used to enable / disable Pressibility from using W3C Pointer Events for its hover callbacks
419
449
  */
@@ -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<<c9a6711220ca600dacaed5754df5caab>>
7
+ * @generated SignedSource<<d9309c7f772c314b78b329e5d1ad7216>>
8
8
  */
9
9
 
10
10
  /**
@@ -56,6 +56,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
56
56
  private var enableLayoutAnimationsOnIOSCache: Boolean? = null
57
57
  private var enableMainQueueCoordinatorOnIOSCache: Boolean? = null
58
58
  private var enableModuleArgumentNSNullConversionIOSCache: Boolean? = null
59
+ private var enableMutationObserverByDefaultCache: Boolean? = null
59
60
  private var enableNativeCSSParsingCache: Boolean? = null
60
61
  private var enableNetworkEventReportingCache: Boolean? = null
61
62
  private var enablePreparedTextLayoutCache: Boolean? = null
@@ -77,13 +78,17 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
77
78
  private var fixMappingOfEventPrioritiesBetweenFabricAndReactCache: Boolean? = null
78
79
  private var fuseboxAssertSingleHostStateCache: Boolean? = null
79
80
  private var fuseboxEnabledReleaseCache: Boolean? = null
81
+ private var fuseboxFrameRecordingEnabledCache: Boolean? = null
80
82
  private var fuseboxNetworkInspectionEnabledCache: Boolean? = null
83
+ private var fuseboxScreenshotCaptureEnabledCache: Boolean? = null
81
84
  private var hideOffscreenVirtualViewsOnIOSCache: Boolean? = null
82
85
  private var overrideBySynchronousMountPropsAtMountingAndroidCache: Boolean? = null
83
86
  private var perfIssuesEnabledCache: Boolean? = null
84
87
  private var perfMonitorV2EnabledCache: Boolean? = null
85
88
  private var preparedTextCacheSizeCache: Double? = null
86
89
  private var preventShadowTreeCommitExhaustionCache: Boolean? = null
90
+ private var redBoxV2AndroidCache: Boolean? = null
91
+ private var redBoxV2IOSCache: Boolean? = null
87
92
  private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
88
93
  private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
89
94
  private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
@@ -430,6 +435,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
430
435
  return cached
431
436
  }
432
437
 
438
+ override fun enableMutationObserverByDefault(): Boolean {
439
+ var cached = enableMutationObserverByDefaultCache
440
+ if (cached == null) {
441
+ cached = ReactNativeFeatureFlagsCxxInterop.enableMutationObserverByDefault()
442
+ enableMutationObserverByDefaultCache = cached
443
+ }
444
+ return cached
445
+ }
446
+
433
447
  override fun enableNativeCSSParsing(): Boolean {
434
448
  var cached = enableNativeCSSParsingCache
435
449
  if (cached == null) {
@@ -619,6 +633,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
619
633
  return cached
620
634
  }
621
635
 
636
+ override fun fuseboxFrameRecordingEnabled(): Boolean {
637
+ var cached = fuseboxFrameRecordingEnabledCache
638
+ if (cached == null) {
639
+ cached = ReactNativeFeatureFlagsCxxInterop.fuseboxFrameRecordingEnabled()
640
+ fuseboxFrameRecordingEnabledCache = cached
641
+ }
642
+ return cached
643
+ }
644
+
622
645
  override fun fuseboxNetworkInspectionEnabled(): Boolean {
623
646
  var cached = fuseboxNetworkInspectionEnabledCache
624
647
  if (cached == null) {
@@ -628,6 +651,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
628
651
  return cached
629
652
  }
630
653
 
654
+ override fun fuseboxScreenshotCaptureEnabled(): Boolean {
655
+ var cached = fuseboxScreenshotCaptureEnabledCache
656
+ if (cached == null) {
657
+ cached = ReactNativeFeatureFlagsCxxInterop.fuseboxScreenshotCaptureEnabled()
658
+ fuseboxScreenshotCaptureEnabledCache = cached
659
+ }
660
+ return cached
661
+ }
662
+
631
663
  override fun hideOffscreenVirtualViewsOnIOS(): Boolean {
632
664
  var cached = hideOffscreenVirtualViewsOnIOSCache
633
665
  if (cached == null) {
@@ -682,6 +714,24 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
682
714
  return cached
683
715
  }
684
716
 
717
+ override fun redBoxV2Android(): Boolean {
718
+ var cached = redBoxV2AndroidCache
719
+ if (cached == null) {
720
+ cached = ReactNativeFeatureFlagsCxxInterop.redBoxV2Android()
721
+ redBoxV2AndroidCache = cached
722
+ }
723
+ return cached
724
+ }
725
+
726
+ override fun redBoxV2IOS(): Boolean {
727
+ var cached = redBoxV2IOSCache
728
+ if (cached == null) {
729
+ cached = ReactNativeFeatureFlagsCxxInterop.redBoxV2IOS()
730
+ redBoxV2IOSCache = cached
731
+ }
732
+ return cached
733
+ }
734
+
685
735
  override fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean {
686
736
  var cached = shouldPressibilityUseW3CPointerEventsForHoverCache
687
737
  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<<d936abca211ad153f40c44187a1f8867>>
7
+ * @generated SignedSource<<1081d2d4673967a11e8f9ac287c89f02>>
8
8
  */
9
9
 
10
10
  /**
@@ -100,6 +100,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
100
100
 
101
101
  @DoNotStrip @JvmStatic public external fun enableModuleArgumentNSNullConversionIOS(): Boolean
102
102
 
103
+ @DoNotStrip @JvmStatic public external fun enableMutationObserverByDefault(): Boolean
104
+
103
105
  @DoNotStrip @JvmStatic public external fun enableNativeCSSParsing(): Boolean
104
106
 
105
107
  @DoNotStrip @JvmStatic public external fun enableNetworkEventReporting(): Boolean
@@ -142,8 +144,12 @@ public object ReactNativeFeatureFlagsCxxInterop {
142
144
 
143
145
  @DoNotStrip @JvmStatic public external fun fuseboxEnabledRelease(): Boolean
144
146
 
147
+ @DoNotStrip @JvmStatic public external fun fuseboxFrameRecordingEnabled(): Boolean
148
+
145
149
  @DoNotStrip @JvmStatic public external fun fuseboxNetworkInspectionEnabled(): Boolean
146
150
 
151
+ @DoNotStrip @JvmStatic public external fun fuseboxScreenshotCaptureEnabled(): Boolean
152
+
147
153
  @DoNotStrip @JvmStatic public external fun hideOffscreenVirtualViewsOnIOS(): Boolean
148
154
 
149
155
  @DoNotStrip @JvmStatic public external fun overrideBySynchronousMountPropsAtMountingAndroid(): Boolean
@@ -156,6 +162,10 @@ public object ReactNativeFeatureFlagsCxxInterop {
156
162
 
157
163
  @DoNotStrip @JvmStatic public external fun preventShadowTreeCommitExhaustion(): Boolean
158
164
 
165
+ @DoNotStrip @JvmStatic public external fun redBoxV2Android(): Boolean
166
+
167
+ @DoNotStrip @JvmStatic public external fun redBoxV2IOS(): Boolean
168
+
159
169
  @DoNotStrip @JvmStatic public external fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean
160
170
 
161
171
  @DoNotStrip @JvmStatic public external fun shouldTriggerResponderTransferOnScrollAndroid(): 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<<5a6e678b586f0ad291c6a4d090dce5b5>>
7
+ * @generated SignedSource<<e40518ddbe70d708d85e504be47a2d82>>
8
8
  */
9
9
 
10
10
  /**
@@ -95,6 +95,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
95
95
 
96
96
  override fun enableModuleArgumentNSNullConversionIOS(): Boolean = false
97
97
 
98
+ override fun enableMutationObserverByDefault(): Boolean = false
99
+
98
100
  override fun enableNativeCSSParsing(): Boolean = false
99
101
 
100
102
  override fun enableNetworkEventReporting(): Boolean = true
@@ -137,8 +139,12 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
137
139
 
138
140
  override fun fuseboxEnabledRelease(): Boolean = false
139
141
 
142
+ override fun fuseboxFrameRecordingEnabled(): Boolean = false
143
+
140
144
  override fun fuseboxNetworkInspectionEnabled(): Boolean = true
141
145
 
146
+ override fun fuseboxScreenshotCaptureEnabled(): Boolean = false
147
+
142
148
  override fun hideOffscreenVirtualViewsOnIOS(): Boolean = false
143
149
 
144
150
  override fun overrideBySynchronousMountPropsAtMountingAndroid(): Boolean = false
@@ -151,6 +157,10 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
151
157
 
152
158
  override fun preventShadowTreeCommitExhaustion(): Boolean = false
153
159
 
160
+ override fun redBoxV2Android(): Boolean = false
161
+
162
+ override fun redBoxV2IOS(): Boolean = false
163
+
154
164
  override fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean = false
155
165
 
156
166
  override fun shouldTriggerResponderTransferOnScrollAndroid(): 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<<98eb8f2d7036cf8a3023a8c560375f6a>>
7
+ * @generated SignedSource<<6deac57c7f55d6d7406f7dffb1abe487>>
8
8
  */
9
9
 
10
10
  /**
@@ -60,6 +60,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
60
60
  private var enableLayoutAnimationsOnIOSCache: Boolean? = null
61
61
  private var enableMainQueueCoordinatorOnIOSCache: Boolean? = null
62
62
  private var enableModuleArgumentNSNullConversionIOSCache: Boolean? = null
63
+ private var enableMutationObserverByDefaultCache: Boolean? = null
63
64
  private var enableNativeCSSParsingCache: Boolean? = null
64
65
  private var enableNetworkEventReportingCache: Boolean? = null
65
66
  private var enablePreparedTextLayoutCache: Boolean? = null
@@ -81,13 +82,17 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
81
82
  private var fixMappingOfEventPrioritiesBetweenFabricAndReactCache: Boolean? = null
82
83
  private var fuseboxAssertSingleHostStateCache: Boolean? = null
83
84
  private var fuseboxEnabledReleaseCache: Boolean? = null
85
+ private var fuseboxFrameRecordingEnabledCache: Boolean? = null
84
86
  private var fuseboxNetworkInspectionEnabledCache: Boolean? = null
87
+ private var fuseboxScreenshotCaptureEnabledCache: Boolean? = null
85
88
  private var hideOffscreenVirtualViewsOnIOSCache: Boolean? = null
86
89
  private var overrideBySynchronousMountPropsAtMountingAndroidCache: Boolean? = null
87
90
  private var perfIssuesEnabledCache: Boolean? = null
88
91
  private var perfMonitorV2EnabledCache: Boolean? = null
89
92
  private var preparedTextCacheSizeCache: Double? = null
90
93
  private var preventShadowTreeCommitExhaustionCache: Boolean? = null
94
+ private var redBoxV2AndroidCache: Boolean? = null
95
+ private var redBoxV2IOSCache: Boolean? = null
91
96
  private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
92
97
  private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
93
98
  private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
@@ -470,6 +475,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
470
475
  return cached
471
476
  }
472
477
 
478
+ override fun enableMutationObserverByDefault(): Boolean {
479
+ var cached = enableMutationObserverByDefaultCache
480
+ if (cached == null) {
481
+ cached = currentProvider.enableMutationObserverByDefault()
482
+ accessedFeatureFlags.add("enableMutationObserverByDefault")
483
+ enableMutationObserverByDefaultCache = cached
484
+ }
485
+ return cached
486
+ }
487
+
473
488
  override fun enableNativeCSSParsing(): Boolean {
474
489
  var cached = enableNativeCSSParsingCache
475
490
  if (cached == null) {
@@ -680,6 +695,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
680
695
  return cached
681
696
  }
682
697
 
698
+ override fun fuseboxFrameRecordingEnabled(): Boolean {
699
+ var cached = fuseboxFrameRecordingEnabledCache
700
+ if (cached == null) {
701
+ cached = currentProvider.fuseboxFrameRecordingEnabled()
702
+ accessedFeatureFlags.add("fuseboxFrameRecordingEnabled")
703
+ fuseboxFrameRecordingEnabledCache = cached
704
+ }
705
+ return cached
706
+ }
707
+
683
708
  override fun fuseboxNetworkInspectionEnabled(): Boolean {
684
709
  var cached = fuseboxNetworkInspectionEnabledCache
685
710
  if (cached == null) {
@@ -690,6 +715,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
690
715
  return cached
691
716
  }
692
717
 
718
+ override fun fuseboxScreenshotCaptureEnabled(): Boolean {
719
+ var cached = fuseboxScreenshotCaptureEnabledCache
720
+ if (cached == null) {
721
+ cached = currentProvider.fuseboxScreenshotCaptureEnabled()
722
+ accessedFeatureFlags.add("fuseboxScreenshotCaptureEnabled")
723
+ fuseboxScreenshotCaptureEnabledCache = cached
724
+ }
725
+ return cached
726
+ }
727
+
693
728
  override fun hideOffscreenVirtualViewsOnIOS(): Boolean {
694
729
  var cached = hideOffscreenVirtualViewsOnIOSCache
695
730
  if (cached == null) {
@@ -750,6 +785,26 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
750
785
  return cached
751
786
  }
752
787
 
788
+ override fun redBoxV2Android(): Boolean {
789
+ var cached = redBoxV2AndroidCache
790
+ if (cached == null) {
791
+ cached = currentProvider.redBoxV2Android()
792
+ accessedFeatureFlags.add("redBoxV2Android")
793
+ redBoxV2AndroidCache = cached
794
+ }
795
+ return cached
796
+ }
797
+
798
+ override fun redBoxV2IOS(): Boolean {
799
+ var cached = redBoxV2IOSCache
800
+ if (cached == null) {
801
+ cached = currentProvider.redBoxV2IOS()
802
+ accessedFeatureFlags.add("redBoxV2IOS")
803
+ redBoxV2IOSCache = cached
804
+ }
805
+ return cached
806
+ }
807
+
753
808
  override fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean {
754
809
  var cached = shouldPressibilityUseW3CPointerEventsForHoverCache
755
810
  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<<18744192baedc0d5fa0fc7873adf0422>>
7
+ * @generated SignedSource<<99e9d1149773ffdb867c2abed02b0302>>
8
8
  */
9
9
 
10
10
  /**
@@ -95,6 +95,8 @@ public interface ReactNativeFeatureFlagsProvider {
95
95
 
96
96
  @DoNotStrip public fun enableModuleArgumentNSNullConversionIOS(): Boolean
97
97
 
98
+ @DoNotStrip public fun enableMutationObserverByDefault(): Boolean
99
+
98
100
  @DoNotStrip public fun enableNativeCSSParsing(): Boolean
99
101
 
100
102
  @DoNotStrip public fun enableNetworkEventReporting(): Boolean
@@ -137,8 +139,12 @@ public interface ReactNativeFeatureFlagsProvider {
137
139
 
138
140
  @DoNotStrip public fun fuseboxEnabledRelease(): Boolean
139
141
 
142
+ @DoNotStrip public fun fuseboxFrameRecordingEnabled(): Boolean
143
+
140
144
  @DoNotStrip public fun fuseboxNetworkInspectionEnabled(): Boolean
141
145
 
146
+ @DoNotStrip public fun fuseboxScreenshotCaptureEnabled(): Boolean
147
+
142
148
  @DoNotStrip public fun hideOffscreenVirtualViewsOnIOS(): Boolean
143
149
 
144
150
  @DoNotStrip public fun overrideBySynchronousMountPropsAtMountingAndroid(): Boolean
@@ -151,6 +157,10 @@ public interface ReactNativeFeatureFlagsProvider {
151
157
 
152
158
  @DoNotStrip public fun preventShadowTreeCommitExhaustion(): Boolean
153
159
 
160
+ @DoNotStrip public fun redBoxV2Android(): Boolean
161
+
162
+ @DoNotStrip public fun redBoxV2IOS(): Boolean
163
+
154
164
  @DoNotStrip public fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean
155
165
 
156
166
  @DoNotStrip public fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean
@@ -23,6 +23,45 @@ public object PerformanceTracer {
23
23
  SoLoader.loadLibrary("react_performancetracerjni")
24
24
  }
25
25
 
26
+ public fun <T> trace(name: String, block: () -> T): T {
27
+ return trace(name, null /* track */, null /* trackGroup */, null /* color */, block)
28
+ }
29
+
30
+ public fun <T> trace(name: String, track: String, block: () -> T): T {
31
+ return trace(name, track, null /* trackGroup */, null /* color */, block)
32
+ }
33
+
34
+ public fun <T> trace(name: String, track: String, trackGroup: String, block: () -> T): T {
35
+ return trace(name, track, trackGroup, null /* color */, block)
36
+ }
37
+
38
+ public fun <T> trace(
39
+ name: String,
40
+ track: String?,
41
+ trackGroup: String?,
42
+ color: String?,
43
+ block: () -> T,
44
+ ): T {
45
+ if (!isTracing()) {
46
+ return block()
47
+ }
48
+
49
+ val startTimeNanos = java.lang.System.nanoTime()
50
+ try {
51
+ return block()
52
+ } finally {
53
+ val endTimeNanos = java.lang.System.nanoTime()
54
+ reportTimeStamp(
55
+ name,
56
+ startTimeNanos,
57
+ endTimeNanos,
58
+ track,
59
+ trackGroup,
60
+ color,
61
+ )
62
+ }
63
+ }
64
+
26
65
  /** Callback interface for tracing state changes. */
27
66
  @DoNotStrip
28
67
  public interface TracingStateCallback {
@@ -63,7 +63,7 @@ public class BlobModule(reactContext: ReactApplicationContext) :
63
63
  }
64
64
  }
65
65
 
66
- private val networkingUriHandler =
66
+ internal val networkingUriHandler =
67
67
  object : NetworkingModule.UriHandler {
68
68
  override fun supports(uri: Uri, responseType: String): Boolean {
69
69
  val scheme = uri.scheme
@@ -19,9 +19,7 @@ import com.facebook.react.common.build.ReactBuildConfig
19
19
  import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
20
20
  import java.net.SocketTimeoutException
21
21
  import okhttp3.Headers
22
- import okhttp3.Protocol
23
22
  import okhttp3.Request
24
- import okhttp3.Response
25
23
 
26
24
  /**
27
25
  * Utility class for reporting network lifecycle events to JavaScript and InspectorNetworkReporter.
@@ -206,11 +204,12 @@ internal object NetworkEventUtil {
206
204
  requestId: Int,
207
205
  devToolsRequestId: String,
208
206
  requestUrl: String?,
209
- response: Response,
207
+ statusCode: Int,
208
+ headers: Map<String, String>,
209
+ contentLength: Long,
210
210
  ) {
211
- val headersMap = okHttpHeadersToMap(response.headers())
212
211
  val headersBundle = Bundle()
213
- for ((headerName, headerValue) in headersMap) {
212
+ for ((headerName, headerValue) in headers) {
214
213
  headersBundle.putString(headerName, headerValue)
215
214
  }
216
215
 
@@ -218,16 +217,16 @@ internal object NetworkEventUtil {
218
217
  InspectorNetworkReporter.reportResponseStart(
219
218
  devToolsRequestId,
220
219
  requestUrl.orEmpty(),
221
- response.code(),
222
- headersMap,
223
- response.body()?.contentLength() ?: 0,
220
+ statusCode,
221
+ headers,
222
+ contentLength,
224
223
  )
225
224
  }
226
225
  reactContext?.emitDeviceEvent(
227
226
  "didReceiveNetworkResponse",
228
227
  Arguments.createArray().apply {
229
228
  pushInt(requestId)
230
- pushInt(response.code())
229
+ pushInt(statusCode)
231
230
  pushMap(Arguments.fromBundle(headersBundle))
232
231
  pushString(requestUrl)
233
232
  },
@@ -244,33 +243,35 @@ internal object NetworkEventUtil {
244
243
  headers: WritableMap?,
245
244
  url: String?,
246
245
  ) {
247
- val headersBuilder = Headers.Builder()
246
+ val headersMap = mutableMapOf<String, String>()
248
247
  headers?.let { map ->
249
248
  val iterator = map.keySetIterator()
250
249
  while (iterator.hasNextKey()) {
251
250
  val key = iterator.nextKey()
252
251
  val value = map.getString(key)
253
252
  if (value != null) {
254
- headersBuilder.add(key, value)
253
+ headersMap[key] = value
255
254
  }
256
255
  }
257
256
  }
257
+
258
+ val contentLength =
259
+ headersMap["Content-Length"]?.toLongOrNull()
260
+ ?: headersMap["content-length"]?.toLongOrNull()
261
+ ?: 0L
262
+
258
263
  onResponseReceived(
259
264
  reactContext,
260
265
  requestId,
261
266
  devToolsRequestId,
262
267
  url,
263
- Response.Builder()
264
- .protocol(Protocol.HTTP_1_1)
265
- .request(Request.Builder().url(url.orEmpty()).build())
266
- .headers(headersBuilder.build())
267
- .code(statusCode)
268
- .message("")
269
- .build(),
268
+ statusCode,
269
+ headersMap,
270
+ contentLength,
270
271
  )
271
272
  }
272
273
 
273
- private fun okHttpHeadersToMap(headers: Headers): Map<String, String> {
274
+ internal fun okHttpHeadersToMap(headers: Headers): Map<String, String> {
274
275
  val responseHeaders = mutableMapOf<String, String>()
275
276
  for (i in 0 until headers.size()) {
276
277
  val headerName = headers.name(i)
@@ -36,7 +36,6 @@ import okhttp3.JavaNetCookieJar
36
36
  import okhttp3.MediaType
37
37
  import okhttp3.MultipartBody
38
38
  import okhttp3.OkHttpClient
39
- import okhttp3.Protocol
40
39
  import okhttp3.Request
41
40
  import okhttp3.RequestBody
42
41
  import okhttp3.Response
@@ -310,21 +309,14 @@ public class NetworkingModule(
310
309
  if (handler.supports(uri, responseType)) {
311
310
  val (res, rawBody) = handler.fetch(uri)
312
311
  val encodedDataLength = res.toString().toByteArray().size
313
- // fix: UriHandlers which are not using file:// scheme fail in whatwg-fetch at this line
314
- // https://github.com/JakeChampion/fetch/blob/main/fetch.js#L547
315
- val response =
316
- Response.Builder()
317
- .protocol(Protocol.HTTP_1_1)
318
- .request(Request.Builder().url(url.orEmpty()).build())
319
- .code(200)
320
- .message("OK")
321
- .build()
322
312
  NetworkEventUtil.onResponseReceived(
323
313
  reactApplicationContext,
324
314
  requestId,
325
315
  devToolsRequestId,
326
316
  url,
327
- response,
317
+ 200,
318
+ emptyMap(),
319
+ encodedDataLength.toLong(),
328
320
  )
329
321
  NetworkEventUtil.onDataReceived(
330
322
  reactApplicationContext,
@@ -645,7 +637,9 @@ public class NetworkingModule(
645
637
  requestId,
646
638
  devToolsRequestId,
647
639
  url,
648
- response,
640
+ response.code(),
641
+ NetworkEventUtil.okHttpHeadersToMap(response.headers()),
642
+ response.body()?.contentLength() ?: 0L,
649
643
  )
650
644
 
651
645
  try {
@@ -14,7 +14,7 @@ public object ReactNativeVersion {
14
14
  public val VERSION: Map<String, Any?> = mapOf(
15
15
  "major" to 0,
16
16
  "minor" to 83,
17
- "patch" to 4,
18
- "prerelease" to "2"
17
+ "patch" to 9,
18
+ "prerelease" to "0"
19
19
  )
20
20
  }