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.
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Utilities/Appearance.js +6 -1
- package/Libraries/Utilities/HMRClient.js +28 -1
- package/React/Base/RCTVersion.m +2 -2
- package/React/CoreModules/RCTDevLoadingView.mm +17 -0
- package/React/CoreModules/RCTJscSafeUrl+Internal.h +23 -0
- package/React/CoreModules/RCTJscSafeUrl.mm +38 -0
- package/React/CoreModules/RCTRedBox+Internal.h +42 -0
- package/React/CoreModules/RCTRedBox.mm +30 -471
- package/React/CoreModules/RCTRedBox2AnsiParser+Internal.h +22 -0
- package/React/CoreModules/RCTRedBox2AnsiParser.mm +55 -0
- package/React/CoreModules/RCTRedBox2Controller+Internal.h +34 -0
- package/React/CoreModules/RCTRedBox2Controller.mm +764 -0
- package/React/CoreModules/RCTRedBox2ErrorParser+Internal.h +46 -0
- package/React/CoreModules/RCTRedBox2ErrorParser.mm +57 -0
- package/React/CoreModules/RCTRedBoxController+Internal.h +31 -0
- package/React/CoreModules/RCTRedBoxController.mm +447 -0
- package/React/CoreModules/RCTRedBoxHMRClient+Internal.h +26 -0
- package/React/CoreModules/RCTRedBoxHMRClient.mm +125 -0
- package/React/CoreModules/React-CoreModules.podspec +1 -0
- package/React/DevSupport/RCTFrameTimingsObserver.h +24 -0
- package/React/DevSupport/RCTFrameTimingsObserver.mm +298 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +40 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +1 -2
- package/ReactAndroid/api/ReactAndroid.api +0 -9
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/publish.gradle +20 -46
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/BridgelessDevSupportManager.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingSequence.kt +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/FrameTimingsObserver.kt +275 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingState.kt +17 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/inspector/TracingStateListener.kt +15 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/{interfaces → inspector}/TracingStateProvider.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorInspectorTargetBinding.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +4 -4
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +31 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +51 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +56 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/tracing/PerformanceTracer.kt +39 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobModule.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +20 -19
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkingModule.kt +6 -12
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImpl.kt +86 -4
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostImplDevHelper.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +10 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +7 -6
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +21 -3
- package/ReactAndroid/src/main/jni/CMakeLists.txt +7 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.cpp +22 -0
- package/ReactAndroid/src/main/jni/react/devsupport/JInspectorFlags.h +2 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +71 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +16 -1
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +196 -17
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +168 -18
- package/ReactAndroid/src/main/jni/third-party/folly/CMakeLists.txt +1 -0
- package/ReactCommon/React-Fabric.podspec +6 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +3 -3
- package/ReactCommon/hermes/inspector-modern/chrome/Registration.cpp +44 -2
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +45 -10
- package/ReactCommon/jsinspector-modern/HostAgent.h +2 -2
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +14 -7
- package/ReactCommon/jsinspector-modern/HostTarget.h +101 -14
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp +39 -8
- package/ReactCommon/jsinspector-modern/HostTargetTraceRecording.h +42 -5
- package/ReactCommon/jsinspector-modern/HostTargetTracing.cpp +54 -21
- package/ReactCommon/jsinspector-modern/HostTargetTracing.h +89 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +12 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +12 -0
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +3 -7
- package/ReactCommon/jsinspector-modern/InstanceAgent.cpp +2 -11
- package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +1 -1
- package/ReactCommon/jsinspector-modern/RuntimeAgent.cpp +19 -0
- package/ReactCommon/jsinspector-modern/RuntimeAgent.h +7 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.cpp +33 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +6 -0
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +29 -13
- package/ReactCommon/jsinspector-modern/TracingAgent.h +5 -4
- package/ReactCommon/jsinspector-modern/tests/HostTargetTest.cpp +65 -0
- package/ReactCommon/jsinspector-modern/tests/InspectorMocks.h +23 -2
- package/ReactCommon/jsinspector-modern/tests/JsiIntegrationTest.cpp +1 -0
- package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +1 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.cpp +335 -0
- package/ReactCommon/jsinspector-modern/tests/TracingTest.h +95 -0
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.cpp +10 -0
- package/ReactCommon/jsinspector-modern/tests/utils/InspectorFlagOverridesGuard.h +3 -1
- package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +1 -0
- package/ReactCommon/jsinspector-modern/tracing/FrameTimingSequence.h +61 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h +43 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.cpp +165 -0
- package/ReactCommon/jsinspector-modern/tracing/HostTracingProfileSerializer.h +50 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +16 -14
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracerSection.h +113 -0
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -0
- package/ReactCommon/jsinspector-modern/tracing/TimeWindowedBuffer.h +158 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEvent.h +2 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.cpp +100 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventGenerator.h +60 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.cpp +44 -1
- package/ReactCommon/jsinspector-modern/tracing/TraceEventSerializer.h +7 -0
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h +18 -7
- package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +136 -0
- package/ReactCommon/jsinspector-modern/tracing/tests/TimeWindowedBufferTest.cpp +352 -0
- package/ReactCommon/react/debug/CMakeLists.txt +2 -1
- package/ReactCommon/react/debug/React-debug.podspec +7 -1
- package/ReactCommon/react/debug/redbox/AnsiParser.cpp +139 -0
- package/ReactCommon/react/debug/redbox/AnsiParser.h +35 -0
- package/ReactCommon/react/debug/redbox/JscSafeUrl.cpp +179 -0
- package/ReactCommon/react/debug/redbox/JscSafeUrl.h +27 -0
- package/ReactCommon/react/debug/redbox/RedBoxErrorParser.cpp +171 -0
- package/ReactCommon/react/debug/redbox/RedBoxErrorParser.h +40 -0
- package/ReactCommon/react/debug/redbox/tests/AnsiParserTest.cpp +97 -0
- package/ReactCommon/react/debug/redbox/tests/JscSafeUrlTest.cpp +173 -0
- package/ReactCommon/react/debug/redbox/tests/RedBoxErrorParserTest.cpp +107 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +21 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +26 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +140 -50
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +12 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +21 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +46 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +6 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +3 -1
- package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +26 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +11 -1
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h +4 -0
- package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +66 -0
- package/ReactCommon/react/performance/timeline/PerformanceObserver.cpp +18 -6
- package/ReactCommon/react/performance/timeline/PerformanceObserver.h +2 -0
- package/ReactCommon/react/runtime/platform/ios/ReactCommon/RCTHost.mm +115 -0
- package/ReactCommon/{jsinspector-modern → react/utils}/Base64.h +2 -2
- package/gradle/libs.versions.toml +1 -1
- package/package.json +10 -10
- package/scripts/cocoapods/utils.rb +1 -0
- package/scripts/react_native_pods.rb +1 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +26 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +6 -1
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
- package/third-party-podspecs/RCT-Folly.podspec +1 -1
- package/third-party-podspecs/fmt.podspec +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/interfaces/TracingState.kt +0 -19
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.cpp +0 -68
- package/ReactCommon/jsinspector-modern/tracing/TraceRecordingStateSerializer.h +0 -42
- package/ReactCommon/jsinspector-modern/tracing/TracingState.h +0 -24
|
@@ -12,6 +12,7 @@ import android.content.Context
|
|
|
12
12
|
import android.content.Intent
|
|
13
13
|
import android.nfc.NfcAdapter
|
|
14
14
|
import android.os.Bundle
|
|
15
|
+
import androidx.core.graphics.createBitmap
|
|
15
16
|
import com.facebook.common.logging.FLog
|
|
16
17
|
import com.facebook.infer.annotation.Assertions
|
|
17
18
|
import com.facebook.infer.annotation.ThreadConfined
|
|
@@ -43,8 +44,11 @@ import com.facebook.react.devsupport.DevMenuConfiguration
|
|
|
43
44
|
import com.facebook.react.devsupport.DevSupportManagerBase
|
|
44
45
|
import com.facebook.react.devsupport.DevSupportManagerFactory
|
|
45
46
|
import com.facebook.react.devsupport.InspectorFlags
|
|
47
|
+
import com.facebook.react.devsupport.inspector.FrameTimingsObserver
|
|
46
48
|
import com.facebook.react.devsupport.inspector.InspectorNetworkHelper
|
|
47
49
|
import com.facebook.react.devsupport.inspector.InspectorNetworkRequestListener
|
|
50
|
+
import com.facebook.react.devsupport.inspector.TracingState
|
|
51
|
+
import com.facebook.react.devsupport.inspector.TracingStateListener
|
|
48
52
|
import com.facebook.react.devsupport.interfaces.BundleLoadCallback
|
|
49
53
|
import com.facebook.react.devsupport.interfaces.DevSupportManager
|
|
50
54
|
import com.facebook.react.devsupport.interfaces.DevSupportManager.PausedInDebuggerOverlayCommandListener
|
|
@@ -147,6 +151,7 @@ public class ReactHostImpl(
|
|
|
147
151
|
private val beforeDestroyListeners: MutableList<() -> Unit> = CopyOnWriteArrayList()
|
|
148
152
|
|
|
149
153
|
internal var reactHostInspectorTarget: ReactHostInspectorTarget? = null
|
|
154
|
+
private var frameTimingsObserver: FrameTimingsObserver? = null
|
|
150
155
|
|
|
151
156
|
@Volatile private var hostInvalidated = false
|
|
152
157
|
|
|
@@ -246,6 +251,7 @@ public class ReactHostImpl(
|
|
|
246
251
|
stateTracker.enterState("onHostResume(activity)")
|
|
247
252
|
|
|
248
253
|
currentActivity = activity
|
|
254
|
+
frameTimingsObserver?.setCurrentWindow(activity?.window)
|
|
249
255
|
|
|
250
256
|
maybeEnableDevSupport(true)
|
|
251
257
|
reactLifecycleStateManager.moveToOnHostResume(currentReactContext, activity)
|
|
@@ -442,6 +448,43 @@ public class ReactHostImpl(
|
|
|
442
448
|
InspectorNetworkHelper.loadNetworkResource(url, listener)
|
|
443
449
|
}
|
|
444
450
|
|
|
451
|
+
@DoNotStrip
|
|
452
|
+
private fun captureScreenshot(format: String, quality: Int): String? {
|
|
453
|
+
val activity = currentActivity ?: return null
|
|
454
|
+
val window = activity.window ?: return null
|
|
455
|
+
val decorView = window.decorView.rootView
|
|
456
|
+
|
|
457
|
+
val width = decorView.width
|
|
458
|
+
val height = decorView.height
|
|
459
|
+
if (width <= 0 || height <= 0) {
|
|
460
|
+
return null
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
val bitmap = createBitmap(width, height)
|
|
464
|
+
val canvas = android.graphics.Canvas(bitmap)
|
|
465
|
+
decorView.draw(canvas)
|
|
466
|
+
|
|
467
|
+
val outputStream = java.io.ByteArrayOutputStream()
|
|
468
|
+
val compressFormat =
|
|
469
|
+
when (format) {
|
|
470
|
+
"jpeg" -> android.graphics.Bitmap.CompressFormat.JPEG
|
|
471
|
+
"webp" ->
|
|
472
|
+
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.R) {
|
|
473
|
+
android.graphics.Bitmap.CompressFormat.WEBP_LOSSY
|
|
474
|
+
} else {
|
|
475
|
+
@Suppress("DEPRECATION") android.graphics.Bitmap.CompressFormat.WEBP
|
|
476
|
+
}
|
|
477
|
+
else -> android.graphics.Bitmap.CompressFormat.PNG
|
|
478
|
+
}
|
|
479
|
+
val compressQuality = if (quality in 0..100) quality else 80
|
|
480
|
+
|
|
481
|
+
bitmap.compress(compressFormat, compressQuality, outputStream)
|
|
482
|
+
bitmap.recycle()
|
|
483
|
+
|
|
484
|
+
val bytes = outputStream.toByteArray()
|
|
485
|
+
return android.util.Base64.encodeToString(bytes, android.util.Base64.NO_WRAP)
|
|
486
|
+
}
|
|
487
|
+
|
|
445
488
|
/**
|
|
446
489
|
* Entrypoint to destroy the ReactInstance. If the ReactInstance is reloading, will wait until
|
|
447
490
|
* reload is finished, before destroying.
|
|
@@ -847,6 +890,7 @@ public class ReactHostImpl(
|
|
|
847
890
|
private fun moveToHostDestroy(currentContext: ReactContext?) {
|
|
848
891
|
reactLifecycleStateManager.moveToOnHostDestroy(currentContext)
|
|
849
892
|
currentActivity = null
|
|
893
|
+
frameTimingsObserver?.setCurrentWindow(null)
|
|
850
894
|
}
|
|
851
895
|
|
|
852
896
|
private fun raiseSoftException(
|
|
@@ -1442,8 +1486,7 @@ public class ReactHostImpl(
|
|
|
1442
1486
|
// If the host has been invalidated, now that the current context/instance
|
|
1443
1487
|
// has been unregistered, we can safely destroy the host's inspector
|
|
1444
1488
|
// target.
|
|
1445
|
-
|
|
1446
|
-
reactHostInspectorTarget = null
|
|
1489
|
+
destroyReactHostInspectorTarget()
|
|
1447
1490
|
}
|
|
1448
1491
|
|
|
1449
1492
|
// Step 1: Destroy DevSupportManager
|
|
@@ -1554,13 +1597,52 @@ public class ReactHostImpl(
|
|
|
1554
1597
|
|
|
1555
1598
|
internal fun getOrCreateReactHostInspectorTarget(): ReactHostInspectorTarget? {
|
|
1556
1599
|
if (reactHostInspectorTarget == null && InspectorFlags.getFuseboxEnabled()) {
|
|
1557
|
-
|
|
1558
|
-
reactHostInspectorTarget = ReactHostInspectorTarget(this)
|
|
1600
|
+
reactHostInspectorTarget = createReactHostInspectorTarget()
|
|
1559
1601
|
}
|
|
1560
1602
|
|
|
1561
1603
|
return reactHostInspectorTarget
|
|
1562
1604
|
}
|
|
1563
1605
|
|
|
1606
|
+
private fun createReactHostInspectorTarget(): ReactHostInspectorTarget {
|
|
1607
|
+
// NOTE: ReactHostInspectorTarget only retains a weak reference to `this`.
|
|
1608
|
+
val inspectorTarget = ReactHostInspectorTarget(this)
|
|
1609
|
+
inspectorTarget.registerTracingStateListener(
|
|
1610
|
+
TracingStateListener { state: TracingState, _screenshotsEnabled: Boolean ->
|
|
1611
|
+
when (state) {
|
|
1612
|
+
TracingState.ENABLED_IN_BACKGROUND_MODE,
|
|
1613
|
+
TracingState.ENABLED_IN_CDP_MODE -> {
|
|
1614
|
+
if (InspectorFlags.getFrameRecordingEnabled()) {
|
|
1615
|
+
val observer =
|
|
1616
|
+
FrameTimingsObserver(
|
|
1617
|
+
_screenshotsEnabled,
|
|
1618
|
+
{ frameTimingsSequence ->
|
|
1619
|
+
inspectorTarget.recordFrameTimings(frameTimingsSequence)
|
|
1620
|
+
},
|
|
1621
|
+
)
|
|
1622
|
+
observer.setCurrentWindow(currentActivity?.window)
|
|
1623
|
+
observer.start()
|
|
1624
|
+
frameTimingsObserver = observer
|
|
1625
|
+
}
|
|
1626
|
+
}
|
|
1627
|
+
TracingState.DISABLED -> {
|
|
1628
|
+
frameTimingsObserver?.stop()
|
|
1629
|
+
frameTimingsObserver = null
|
|
1630
|
+
}
|
|
1631
|
+
}
|
|
1632
|
+
}
|
|
1633
|
+
)
|
|
1634
|
+
|
|
1635
|
+
return inspectorTarget
|
|
1636
|
+
}
|
|
1637
|
+
|
|
1638
|
+
private fun destroyReactHostInspectorTarget() {
|
|
1639
|
+
frameTimingsObserver?.stop()
|
|
1640
|
+
frameTimingsObserver = null
|
|
1641
|
+
|
|
1642
|
+
reactHostInspectorTarget?.close()
|
|
1643
|
+
reactHostInspectorTarget = null
|
|
1644
|
+
}
|
|
1645
|
+
|
|
1564
1646
|
@ThreadConfined(ThreadConfined.UI)
|
|
1565
1647
|
internal fun unregisterInstanceFromInspector(reactInstance: ReactInstance?) {
|
|
1566
1648
|
if (reactInstance != null) {
|
|
@@ -16,8 +16,8 @@ import com.facebook.react.bridge.ReactContext
|
|
|
16
16
|
import com.facebook.react.common.annotations.FrameworkAPI
|
|
17
17
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
18
18
|
import com.facebook.react.devsupport.ReactInstanceDevHelper
|
|
19
|
-
import com.facebook.react.devsupport.
|
|
20
|
-
import com.facebook.react.devsupport.
|
|
19
|
+
import com.facebook.react.devsupport.inspector.TracingState
|
|
20
|
+
import com.facebook.react.devsupport.inspector.TracingStateProvider
|
|
21
21
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorDevHelper
|
|
22
22
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorInspectorTarget
|
|
23
23
|
import com.facebook.react.interfaces.TaskInterface
|
|
@@ -81,6 +81,6 @@ internal class ReactHostImplDevHelper(private val delegate: ReactHostImpl) :
|
|
|
81
81
|
delegate.loadBundle(bundleLoader)
|
|
82
82
|
|
|
83
83
|
override fun getTracingState(): TracingState {
|
|
84
|
-
return delegate.reactHostInspectorTarget?.getTracingState() ?: TracingState.
|
|
84
|
+
return delegate.reactHostInspectorTarget?.getTracingState() ?: TracingState.ENABLED_IN_CDP_MODE
|
|
85
85
|
}
|
|
86
86
|
}
|
|
@@ -12,7 +12,9 @@ import com.facebook.proguard.annotations.DoNotStripAny
|
|
|
12
12
|
import com.facebook.react.bridge.UiThreadUtil
|
|
13
13
|
import com.facebook.react.common.annotations.FrameworkAPI
|
|
14
14
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
15
|
-
import com.facebook.react.devsupport.
|
|
15
|
+
import com.facebook.react.devsupport.inspector.FrameTimingSequence
|
|
16
|
+
import com.facebook.react.devsupport.inspector.TracingState
|
|
17
|
+
import com.facebook.react.devsupport.inspector.TracingStateListener
|
|
16
18
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorInspectorTarget
|
|
17
19
|
import com.facebook.react.devsupport.perfmonitor.PerfMonitorUpdateListener
|
|
18
20
|
import com.facebook.soloader.SoLoader
|
|
@@ -41,11 +43,13 @@ internal class ReactHostInspectorTarget(reactHostImpl: ReactHostImpl) :
|
|
|
41
43
|
|
|
42
44
|
external fun stopAndDiscardBackgroundTrace()
|
|
43
45
|
|
|
44
|
-
external fun
|
|
46
|
+
external override fun getTracingState(): TracingState
|
|
45
47
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
external fun registerTracingStateListener(listener: TracingStateListener): Long
|
|
49
|
+
|
|
50
|
+
external fun unregisterTracingStateListener(subscriptionId: Long)
|
|
51
|
+
|
|
52
|
+
external fun recordFrameTimings(frameTimingSequence: FrameTimingSequence)
|
|
49
53
|
|
|
50
54
|
override fun addPerfMonitorListener(listener: PerfMonitorUpdateListener) {
|
|
51
55
|
perfMonitorListeners.add(listener)
|
|
@@ -63,7 +67,7 @@ internal class ReactHostInspectorTarget(reactHostImpl: ReactHostImpl) :
|
|
|
63
67
|
override fun resumeBackgroundTrace() {
|
|
64
68
|
startBackgroundTrace()
|
|
65
69
|
perfMonitorListeners.forEach { listener ->
|
|
66
|
-
listener.onRecordingStateChanged(TracingState.
|
|
70
|
+
listener.onRecordingStateChanged(TracingState.ENABLED_IN_BACKGROUND_MODE)
|
|
67
71
|
}
|
|
68
72
|
}
|
|
69
73
|
|
package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java
CHANGED
|
@@ -257,6 +257,8 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
257
257
|
&& !mScrollAnimationEnabled
|
|
258
258
|
&& mScroller != null
|
|
259
259
|
&& !mScroller.isFinished()) {
|
|
260
|
+
// Jump instantly to the target position instead of animating.
|
|
261
|
+
scrollTo(mScroller.getFinalX(), mScroller.getFinalY());
|
|
260
262
|
mScroller.forceFinished(true);
|
|
261
263
|
return;
|
|
262
264
|
}
|
|
@@ -832,12 +834,11 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
832
834
|
public boolean arrowScroll(int direction) {
|
|
833
835
|
boolean handled = false;
|
|
834
836
|
|
|
835
|
-
if (
|
|
836
|
-
// When
|
|
837
|
-
// This
|
|
838
|
-
//
|
|
839
|
-
//
|
|
840
|
-
// requestChildFocus → tryScrollSnapToChild/scrollToChild handles instant scrolling.
|
|
837
|
+
if (mSnapToAlignment == SNAP_ALIGNMENT_ITEM) {
|
|
838
|
+
// When snapToAlignment is "item", find the next focusable and request focus directly.
|
|
839
|
+
// This avoids super.arrowScroll() which starts its own scroll animation that conflicts
|
|
840
|
+
// with tryScrollSnapToChild's snap scrolling.
|
|
841
|
+
// requestChildFocus → tryScrollSnapToChild handles scrolling.
|
|
841
842
|
View currentFocused = findFocus();
|
|
842
843
|
View nextFocused = FocusFinder.getInstance().findNextFocus(this, currentFocused, direction);
|
|
843
844
|
if (nextFocused != null && nextFocused != currentFocused && nextFocused != this) {
|
|
@@ -24,6 +24,7 @@ import android.graphics.Rect;
|
|
|
24
24
|
import android.graphics.drawable.ColorDrawable;
|
|
25
25
|
import android.graphics.drawable.Drawable;
|
|
26
26
|
import android.os.Build;
|
|
27
|
+
import android.view.FocusFinder;
|
|
27
28
|
import android.view.KeyEvent;
|
|
28
29
|
import android.view.MotionEvent;
|
|
29
30
|
import android.view.View;
|
|
@@ -546,6 +547,24 @@ public class ReactScrollView extends ScrollView
|
|
|
546
547
|
return true;
|
|
547
548
|
}
|
|
548
549
|
|
|
550
|
+
@Override
|
|
551
|
+
public boolean arrowScroll(int direction) {
|
|
552
|
+
if (mSnapToAlignment == SNAP_ALIGNMENT_ITEM) {
|
|
553
|
+
// When snapToAlignment is "item", find the next focusable and request focus directly.
|
|
554
|
+
// This avoids super.arrowScroll() which starts its own scroll animation that conflicts
|
|
555
|
+
// with tryScrollSnapToChild's snap scrolling.
|
|
556
|
+
// requestChildFocus → tryScrollSnapToChild handles scrolling.
|
|
557
|
+
View currentFocused = findFocus();
|
|
558
|
+
View nextFocused = FocusFinder.getInstance().findNextFocus(this, currentFocused, direction);
|
|
559
|
+
if (nextFocused != null && nextFocused != currentFocused && nextFocused != this) {
|
|
560
|
+
nextFocused.requestFocus(direction);
|
|
561
|
+
return true;
|
|
562
|
+
}
|
|
563
|
+
return false;
|
|
564
|
+
}
|
|
565
|
+
return super.arrowScroll(direction);
|
|
566
|
+
}
|
|
567
|
+
|
|
549
568
|
/**
|
|
550
569
|
* Since ReactScrollView handles layout changes on JS side, it does not call super.onlayout due to
|
|
551
570
|
* which mIsLayoutDirty flag in ScrollView remains true and prevents scrolling to child when
|
|
@@ -621,9 +640,8 @@ public class ReactScrollView extends ScrollView
|
|
|
621
640
|
&& !mScrollAnimationEnabled
|
|
622
641
|
&& mScroller != null
|
|
623
642
|
&& !mScroller.isFinished()) {
|
|
624
|
-
//
|
|
625
|
-
|
|
626
|
-
// requestChildFocus → tryScrollSnapToChild/scrollToChild.
|
|
643
|
+
// Jump instantly to the target position instead of animating.
|
|
644
|
+
scrollTo(mScroller.getFinalX(), mScroller.getFinalY());
|
|
627
645
|
mScroller.forceFinished(true);
|
|
628
646
|
return;
|
|
629
647
|
}
|
|
@@ -115,6 +115,7 @@ add_react_common_subdir(react/renderer/components/safeareaview)
|
|
|
115
115
|
add_react_common_subdir(react/renderer/leakchecker)
|
|
116
116
|
add_react_common_subdir(react/renderer/observers/events)
|
|
117
117
|
add_react_common_subdir(react/renderer/observers/intersection)
|
|
118
|
+
add_react_common_subdir(react/renderer/observers/mutation)
|
|
118
119
|
add_react_common_subdir(react/renderer/textlayoutmanager)
|
|
119
120
|
add_react_common_subdir(react/utils)
|
|
120
121
|
add_react_common_subdir(react/bridging)
|
|
@@ -126,6 +127,7 @@ add_react_common_subdir(react/nativemodule/featureflags)
|
|
|
126
127
|
add_react_common_subdir(react/nativemodule/microtasks)
|
|
127
128
|
add_react_common_subdir(react/nativemodule/idlecallbacks)
|
|
128
129
|
add_react_common_subdir(react/nativemodule/intersectionobserver)
|
|
130
|
+
add_react_common_subdir(react/nativemodule/mutationobserver)
|
|
129
131
|
add_react_common_subdir(react/nativemodule/webperformance)
|
|
130
132
|
add_react_common_subdir(react/networking)
|
|
131
133
|
add_react_common_subdir(jserrorhandler)
|
|
@@ -195,6 +197,7 @@ add_library(reactnative
|
|
|
195
197
|
$<TARGET_OBJECTS:react_nativemodule_idlecallbacks>
|
|
196
198
|
$<TARGET_OBJECTS:react_nativemodule_intersectionobserver>
|
|
197
199
|
$<TARGET_OBJECTS:react_nativemodule_microtasks>
|
|
200
|
+
$<TARGET_OBJECTS:react_nativemodule_mutationobserver>
|
|
198
201
|
$<TARGET_OBJECTS:react_nativemodule_webperformance>
|
|
199
202
|
$<TARGET_OBJECTS:react_networking>
|
|
200
203
|
$<TARGET_OBJECTS:react_newarchdefaults>
|
|
@@ -215,6 +218,7 @@ add_library(reactnative
|
|
|
215
218
|
$<TARGET_OBJECTS:react_renderer_mounting>
|
|
216
219
|
$<TARGET_OBJECTS:react_renderer_observers_events>
|
|
217
220
|
$<TARGET_OBJECTS:react_renderer_observers_intersection>
|
|
221
|
+
$<TARGET_OBJECTS:react_renderer_observers_mutation>
|
|
218
222
|
$<TARGET_OBJECTS:react_renderer_runtimescheduler>
|
|
219
223
|
$<TARGET_OBJECTS:react_renderer_scheduler>
|
|
220
224
|
$<TARGET_OBJECTS:react_renderer_telemetry>
|
|
@@ -288,6 +292,7 @@ target_include_directories(reactnative
|
|
|
288
292
|
$<TARGET_PROPERTY:react_nativemodule_idlecallbacks,INTERFACE_INCLUDE_DIRECTORIES>
|
|
289
293
|
$<TARGET_PROPERTY:react_nativemodule_intersectionobserver,INTERFACE_INCLUDE_DIRECTORIES>
|
|
290
294
|
$<TARGET_PROPERTY:react_nativemodule_microtasks,INTERFACE_INCLUDE_DIRECTORIES>
|
|
295
|
+
$<TARGET_PROPERTY:react_nativemodule_mutationobserver,INTERFACE_INCLUDE_DIRECTORIES>
|
|
291
296
|
$<TARGET_PROPERTY:react_nativemodule_webperformance,INTERFACE_INCLUDE_DIRECTORIES>
|
|
292
297
|
$<TARGET_PROPERTY:react_networking,INTERFACE_INCLUDE_DIRECTORIES>
|
|
293
298
|
$<TARGET_PROPERTY:react_newarchdefaults,INTERFACE_INCLUDE_DIRECTORIES>
|
|
@@ -309,6 +314,8 @@ target_include_directories(reactnative
|
|
|
309
314
|
$<TARGET_PROPERTY:react_renderer_mapbuffer,INTERFACE_INCLUDE_DIRECTORIES>
|
|
310
315
|
$<TARGET_PROPERTY:react_renderer_mounting,INTERFACE_INCLUDE_DIRECTORIES>
|
|
311
316
|
$<TARGET_PROPERTY:react_renderer_observers_events,INTERFACE_INCLUDE_DIRECTORIES>
|
|
317
|
+
$<TARGET_PROPERTY:react_renderer_observers_intersection,INTERFACE_INCLUDE_DIRECTORIES>
|
|
318
|
+
$<TARGET_PROPERTY:react_renderer_observers_mutation,INTERFACE_INCLUDE_DIRECTORIES>
|
|
312
319
|
$<TARGET_PROPERTY:react_renderer_runtimescheduler,INTERFACE_INCLUDE_DIRECTORIES>
|
|
313
320
|
$<TARGET_PROPERTY:react_renderer_scheduler,INTERFACE_INCLUDE_DIRECTORIES>
|
|
314
321
|
$<TARGET_PROPERTY:react_renderer_telemetry,INTERFACE_INCLUDE_DIRECTORIES>
|
|
@@ -11,6 +11,12 @@
|
|
|
11
11
|
|
|
12
12
|
namespace facebook::react::jsinspector_modern {
|
|
13
13
|
|
|
14
|
+
bool JInspectorFlags::getScreenshotCaptureEnabled(
|
|
15
|
+
jni::alias_ref<jclass> /*unused*/) {
|
|
16
|
+
auto& inspectorFlags = InspectorFlags::getInstance();
|
|
17
|
+
return inspectorFlags.getScreenshotCaptureEnabled();
|
|
18
|
+
}
|
|
19
|
+
|
|
14
20
|
bool JInspectorFlags::getFuseboxEnabled(jni::alias_ref<jclass> /*unused*/) {
|
|
15
21
|
auto& inspectorFlags = InspectorFlags::getInstance();
|
|
16
22
|
return inspectorFlags.getFuseboxEnabled();
|
|
@@ -21,7 +27,18 @@ bool JInspectorFlags::getIsProfilingBuild(jni::alias_ref<jclass> /*unused*/) {
|
|
|
21
27
|
return inspectorFlags.getIsProfilingBuild();
|
|
22
28
|
}
|
|
23
29
|
|
|
30
|
+
bool JInspectorFlags::getFrameRecordingEnabled(
|
|
31
|
+
jni::alias_ref<jclass> /*unused*/) {
|
|
32
|
+
auto& inspectorFlags = InspectorFlags::getInstance();
|
|
33
|
+
return inspectorFlags.getFrameRecordingEnabled();
|
|
34
|
+
}
|
|
35
|
+
|
|
24
36
|
void JInspectorFlags::registerNatives() {
|
|
37
|
+
javaClassLocal()->registerNatives({
|
|
38
|
+
makeNativeMethod(
|
|
39
|
+
"getScreenshotCaptureEnabled",
|
|
40
|
+
JInspectorFlags::getScreenshotCaptureEnabled),
|
|
41
|
+
});
|
|
25
42
|
javaClassLocal()->registerNatives({
|
|
26
43
|
makeNativeMethod("getFuseboxEnabled", JInspectorFlags::getFuseboxEnabled),
|
|
27
44
|
});
|
|
@@ -29,6 +46,11 @@ void JInspectorFlags::registerNatives() {
|
|
|
29
46
|
makeNativeMethod(
|
|
30
47
|
"getIsProfilingBuild", JInspectorFlags::getIsProfilingBuild),
|
|
31
48
|
});
|
|
49
|
+
javaClassLocal()->registerNatives({
|
|
50
|
+
makeNativeMethod(
|
|
51
|
+
"getFrameRecordingEnabled",
|
|
52
|
+
JInspectorFlags::getFrameRecordingEnabled),
|
|
53
|
+
});
|
|
32
54
|
}
|
|
33
55
|
|
|
34
56
|
} // namespace facebook::react::jsinspector_modern
|
|
@@ -18,8 +18,10 @@ class JInspectorFlags : public jni::JavaClass<JInspectorFlags> {
|
|
|
18
18
|
public:
|
|
19
19
|
static constexpr auto kJavaDescriptor = "Lcom/facebook/react/devsupport/InspectorFlags;";
|
|
20
20
|
|
|
21
|
+
static bool getScreenshotCaptureEnabled(jni::alias_ref<jclass> /*unused*/);
|
|
21
22
|
static bool getFuseboxEnabled(jni::alias_ref<jclass> /*unused*/);
|
|
22
23
|
static bool getIsProfilingBuild(jni::alias_ref<jclass> /*unused*/);
|
|
24
|
+
static bool getFrameRecordingEnabled(jni::alias_ref<jclass> /*unused*/);
|
|
23
25
|
|
|
24
26
|
static void registerNatives();
|
|
25
27
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<9e684659117f413b92bcd0469fae37ba>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -255,6 +255,12 @@ class ReactNativeFeatureFlagsJavaProvider
|
|
|
255
255
|
return method(javaProvider_);
|
|
256
256
|
}
|
|
257
257
|
|
|
258
|
+
bool enableMutationObserverByDefault() override {
|
|
259
|
+
static const auto method =
|
|
260
|
+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("enableMutationObserverByDefault");
|
|
261
|
+
return method(javaProvider_);
|
|
262
|
+
}
|
|
263
|
+
|
|
258
264
|
bool enableNativeCSSParsing() override {
|
|
259
265
|
static const auto method =
|
|
260
266
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("enableNativeCSSParsing");
|
|
@@ -381,12 +387,24 @@ class ReactNativeFeatureFlagsJavaProvider
|
|
|
381
387
|
return method(javaProvider_);
|
|
382
388
|
}
|
|
383
389
|
|
|
390
|
+
bool fuseboxFrameRecordingEnabled() override {
|
|
391
|
+
static const auto method =
|
|
392
|
+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("fuseboxFrameRecordingEnabled");
|
|
393
|
+
return method(javaProvider_);
|
|
394
|
+
}
|
|
395
|
+
|
|
384
396
|
bool fuseboxNetworkInspectionEnabled() override {
|
|
385
397
|
static const auto method =
|
|
386
398
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("fuseboxNetworkInspectionEnabled");
|
|
387
399
|
return method(javaProvider_);
|
|
388
400
|
}
|
|
389
401
|
|
|
402
|
+
bool fuseboxScreenshotCaptureEnabled() override {
|
|
403
|
+
static const auto method =
|
|
404
|
+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("fuseboxScreenshotCaptureEnabled");
|
|
405
|
+
return method(javaProvider_);
|
|
406
|
+
}
|
|
407
|
+
|
|
390
408
|
bool hideOffscreenVirtualViewsOnIOS() override {
|
|
391
409
|
static const auto method =
|
|
392
410
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("hideOffscreenVirtualViewsOnIOS");
|
|
@@ -423,6 +441,18 @@ class ReactNativeFeatureFlagsJavaProvider
|
|
|
423
441
|
return method(javaProvider_);
|
|
424
442
|
}
|
|
425
443
|
|
|
444
|
+
bool redBoxV2Android() override {
|
|
445
|
+
static const auto method =
|
|
446
|
+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("redBoxV2Android");
|
|
447
|
+
return method(javaProvider_);
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
bool redBoxV2IOS() override {
|
|
451
|
+
static const auto method =
|
|
452
|
+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("redBoxV2IOS");
|
|
453
|
+
return method(javaProvider_);
|
|
454
|
+
}
|
|
455
|
+
|
|
426
456
|
bool shouldPressibilityUseW3CPointerEventsForHover() override {
|
|
427
457
|
static const auto method =
|
|
428
458
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("shouldPressibilityUseW3CPointerEventsForHover");
|
|
@@ -733,6 +763,11 @@ bool JReactNativeFeatureFlagsCxxInterop::enableModuleArgumentNSNullConversionIOS
|
|
|
733
763
|
return ReactNativeFeatureFlags::enableModuleArgumentNSNullConversionIOS();
|
|
734
764
|
}
|
|
735
765
|
|
|
766
|
+
bool JReactNativeFeatureFlagsCxxInterop::enableMutationObserverByDefault(
|
|
767
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
768
|
+
return ReactNativeFeatureFlags::enableMutationObserverByDefault();
|
|
769
|
+
}
|
|
770
|
+
|
|
736
771
|
bool JReactNativeFeatureFlagsCxxInterop::enableNativeCSSParsing(
|
|
737
772
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
738
773
|
return ReactNativeFeatureFlags::enableNativeCSSParsing();
|
|
@@ -838,11 +873,21 @@ bool JReactNativeFeatureFlagsCxxInterop::fuseboxEnabledRelease(
|
|
|
838
873
|
return ReactNativeFeatureFlags::fuseboxEnabledRelease();
|
|
839
874
|
}
|
|
840
875
|
|
|
876
|
+
bool JReactNativeFeatureFlagsCxxInterop::fuseboxFrameRecordingEnabled(
|
|
877
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
878
|
+
return ReactNativeFeatureFlags::fuseboxFrameRecordingEnabled();
|
|
879
|
+
}
|
|
880
|
+
|
|
841
881
|
bool JReactNativeFeatureFlagsCxxInterop::fuseboxNetworkInspectionEnabled(
|
|
842
882
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
843
883
|
return ReactNativeFeatureFlags::fuseboxNetworkInspectionEnabled();
|
|
844
884
|
}
|
|
845
885
|
|
|
886
|
+
bool JReactNativeFeatureFlagsCxxInterop::fuseboxScreenshotCaptureEnabled(
|
|
887
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
888
|
+
return ReactNativeFeatureFlags::fuseboxScreenshotCaptureEnabled();
|
|
889
|
+
}
|
|
890
|
+
|
|
846
891
|
bool JReactNativeFeatureFlagsCxxInterop::hideOffscreenVirtualViewsOnIOS(
|
|
847
892
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
848
893
|
return ReactNativeFeatureFlags::hideOffscreenVirtualViewsOnIOS();
|
|
@@ -873,6 +918,16 @@ bool JReactNativeFeatureFlagsCxxInterop::preventShadowTreeCommitExhaustion(
|
|
|
873
918
|
return ReactNativeFeatureFlags::preventShadowTreeCommitExhaustion();
|
|
874
919
|
}
|
|
875
920
|
|
|
921
|
+
bool JReactNativeFeatureFlagsCxxInterop::redBoxV2Android(
|
|
922
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
923
|
+
return ReactNativeFeatureFlags::redBoxV2Android();
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
bool JReactNativeFeatureFlagsCxxInterop::redBoxV2IOS(
|
|
927
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
928
|
+
return ReactNativeFeatureFlags::redBoxV2IOS();
|
|
929
|
+
}
|
|
930
|
+
|
|
876
931
|
bool JReactNativeFeatureFlagsCxxInterop::shouldPressibilityUseW3CPointerEventsForHover(
|
|
877
932
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
878
933
|
return ReactNativeFeatureFlags::shouldPressibilityUseW3CPointerEventsForHover();
|
|
@@ -1117,6 +1172,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1117
1172
|
makeNativeMethod(
|
|
1118
1173
|
"enableModuleArgumentNSNullConversionIOS",
|
|
1119
1174
|
JReactNativeFeatureFlagsCxxInterop::enableModuleArgumentNSNullConversionIOS),
|
|
1175
|
+
makeNativeMethod(
|
|
1176
|
+
"enableMutationObserverByDefault",
|
|
1177
|
+
JReactNativeFeatureFlagsCxxInterop::enableMutationObserverByDefault),
|
|
1120
1178
|
makeNativeMethod(
|
|
1121
1179
|
"enableNativeCSSParsing",
|
|
1122
1180
|
JReactNativeFeatureFlagsCxxInterop::enableNativeCSSParsing),
|
|
@@ -1180,9 +1238,15 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1180
1238
|
makeNativeMethod(
|
|
1181
1239
|
"fuseboxEnabledRelease",
|
|
1182
1240
|
JReactNativeFeatureFlagsCxxInterop::fuseboxEnabledRelease),
|
|
1241
|
+
makeNativeMethod(
|
|
1242
|
+
"fuseboxFrameRecordingEnabled",
|
|
1243
|
+
JReactNativeFeatureFlagsCxxInterop::fuseboxFrameRecordingEnabled),
|
|
1183
1244
|
makeNativeMethod(
|
|
1184
1245
|
"fuseboxNetworkInspectionEnabled",
|
|
1185
1246
|
JReactNativeFeatureFlagsCxxInterop::fuseboxNetworkInspectionEnabled),
|
|
1247
|
+
makeNativeMethod(
|
|
1248
|
+
"fuseboxScreenshotCaptureEnabled",
|
|
1249
|
+
JReactNativeFeatureFlagsCxxInterop::fuseboxScreenshotCaptureEnabled),
|
|
1186
1250
|
makeNativeMethod(
|
|
1187
1251
|
"hideOffscreenVirtualViewsOnIOS",
|
|
1188
1252
|
JReactNativeFeatureFlagsCxxInterop::hideOffscreenVirtualViewsOnIOS),
|
|
@@ -1201,6 +1265,12 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1201
1265
|
makeNativeMethod(
|
|
1202
1266
|
"preventShadowTreeCommitExhaustion",
|
|
1203
1267
|
JReactNativeFeatureFlagsCxxInterop::preventShadowTreeCommitExhaustion),
|
|
1268
|
+
makeNativeMethod(
|
|
1269
|
+
"redBoxV2Android",
|
|
1270
|
+
JReactNativeFeatureFlagsCxxInterop::redBoxV2Android),
|
|
1271
|
+
makeNativeMethod(
|
|
1272
|
+
"redBoxV2IOS",
|
|
1273
|
+
JReactNativeFeatureFlagsCxxInterop::redBoxV2IOS),
|
|
1204
1274
|
makeNativeMethod(
|
|
1205
1275
|
"shouldPressibilityUseW3CPointerEventsForHover",
|
|
1206
1276
|
JReactNativeFeatureFlagsCxxInterop::shouldPressibilityUseW3CPointerEventsForHover),
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<bf1f3b156e29c081684a9bada7e81a4b>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -138,6 +138,9 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
138
138
|
static bool enableModuleArgumentNSNullConversionIOS(
|
|
139
139
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
140
140
|
|
|
141
|
+
static bool enableMutationObserverByDefault(
|
|
142
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
143
|
+
|
|
141
144
|
static bool enableNativeCSSParsing(
|
|
142
145
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
143
146
|
|
|
@@ -201,9 +204,15 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
201
204
|
static bool fuseboxEnabledRelease(
|
|
202
205
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
203
206
|
|
|
207
|
+
static bool fuseboxFrameRecordingEnabled(
|
|
208
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
209
|
+
|
|
204
210
|
static bool fuseboxNetworkInspectionEnabled(
|
|
205
211
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
206
212
|
|
|
213
|
+
static bool fuseboxScreenshotCaptureEnabled(
|
|
214
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
215
|
+
|
|
207
216
|
static bool hideOffscreenVirtualViewsOnIOS(
|
|
208
217
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
209
218
|
|
|
@@ -222,6 +231,12 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
222
231
|
static bool preventShadowTreeCommitExhaustion(
|
|
223
232
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
224
233
|
|
|
234
|
+
static bool redBoxV2Android(
|
|
235
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
236
|
+
|
|
237
|
+
static bool redBoxV2IOS(
|
|
238
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
239
|
+
|
|
225
240
|
static bool shouldPressibilityUseW3CPointerEventsForHover(
|
|
226
241
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
227
242
|
|