react-native 0.83.0-nightly-20251104-502efe1cc → 0.83.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Text/TextInput/RCTBaseTextInputView.mm +0 -3
- package/React/Base/RCTVersion.m +1 -1
- package/React/CoreModules/React-CoreModules.podspec +1 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +16 -0
- package/React/Runtime/React-RCTRuntime.podspec +1 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +13 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +21 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +23 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/JSTouchDispatcher.kt +2 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/PointerEvent.kt +4 -5
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +29 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +7 -1
- package/ReactCommon/cxxreact/React-cxxreact.podspec +1 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/jsiexecutor/React-jsiexecutor.podspec +1 -0
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +33 -0
- package/ReactCommon/jsinspector-modern/HostAgent.h +6 -0
- package/ReactCommon/jsinspector-modern/HostTarget.h +5 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +6 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +7 -0
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.cpp +37 -0
- package/ReactCommon/jsinspector-modern/InspectorInterfaces.h +12 -1
- package/ReactCommon/jsinspector-modern/TracingAgent.cpp +12 -0
- package/ReactCommon/jsinspector-modern/tests/NetworkReporterTest.cpp +55 -3
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +4 -0
- package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +11 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +65 -29
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +6 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +19 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +3 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +11 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +5 -1
- package/ReactCommon/react/utils/React-utils.podspec +3 -1
- package/package.json +10 -9
- package/scripts/cocoapods/rncore.rb +3 -2
- package/sdks/.hermesv1version +1 -0
- package/sdks/.hermesversion +1 -0
- package/sdks/hermes-engine/version.properties +2 -2
- package/src/private/featureflags/ReactNativeFeatureFlags.js +11 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -1
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +0 -48
- package/ReactCommon/jsinspector-modern/tests/TracingTest.h +0 -82
|
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
|
|
|
29
29
|
static major: number = 0;
|
|
30
30
|
static minor: number = 83;
|
|
31
31
|
static patch: number = 0;
|
|
32
|
-
static prerelease: string | null = '
|
|
32
|
+
static prerelease: string | null = 'rc.1';
|
|
33
33
|
|
|
34
34
|
static getVersionString(): string {
|
|
35
35
|
return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
|
|
@@ -727,9 +727,6 @@ RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame)
|
|
|
727
727
|
return @"Join";
|
|
728
728
|
case UIReturnKeyEmergencyCall:
|
|
729
729
|
return @"Emergency Call";
|
|
730
|
-
case UIReturnKeyDefault:
|
|
731
|
-
case UIReturnKeyContinue:
|
|
732
|
-
case UIReturnKeyDone:
|
|
733
730
|
default:
|
|
734
731
|
return @"Done";
|
|
735
732
|
}
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -61,6 +61,7 @@ Pod::Spec.new do |s|
|
|
|
61
61
|
add_dependency(s, "React-RCTFBReactNativeSpec")
|
|
62
62
|
add_dependency(s, "ReactCommon", :subspec => "turbomodule/core", :additional_framework_paths => ["react/nativemodule/core"])
|
|
63
63
|
add_dependency(s, "React-NativeModulesApple")
|
|
64
|
+
add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"])
|
|
64
65
|
|
|
65
66
|
add_rn_third_party_dependencies(s)
|
|
66
67
|
add_rncore_dependency(s)
|
|
@@ -278,6 +278,7 @@ protected:
|
|
|
278
278
|
methodMap_["enableVirtualViewWindowFocusDetection"] = MethodMetadata {.argCount = 0, .invoker = __enableVirtualViewWindowFocusDetection};
|
|
279
279
|
methodMap_["enableWebPerformanceAPIsByDefault"] = MethodMetadata {.argCount = 0, .invoker = __enableWebPerformanceAPIsByDefault};
|
|
280
280
|
methodMap_["fixMappingOfEventPrioritiesBetweenFabricAndReact"] = MethodMetadata {.argCount = 0, .invoker = __fixMappingOfEventPrioritiesBetweenFabricAndReact};
|
|
281
|
+
methodMap_["fuseboxAssertSingleHostState"] = MethodMetadata {.argCount = 0, .invoker = __fuseboxAssertSingleHostState};
|
|
281
282
|
methodMap_["fuseboxEnabledRelease"] = MethodMetadata {.argCount = 0, .invoker = __fuseboxEnabledRelease};
|
|
282
283
|
methodMap_["fuseboxNetworkInspectionEnabled"] = MethodMetadata {.argCount = 0, .invoker = __fuseboxNetworkInspectionEnabled};
|
|
283
284
|
methodMap_["hideOffscreenVirtualViewsOnIOS"] = MethodMetadata {.argCount = 0, .invoker = __hideOffscreenVirtualViewsOnIOS};
|
|
@@ -289,6 +290,7 @@ protected:
|
|
|
289
290
|
methodMap_["shouldPressibilityUseW3CPointerEventsForHover"] = MethodMetadata {.argCount = 0, .invoker = __shouldPressibilityUseW3CPointerEventsForHover};
|
|
290
291
|
methodMap_["shouldTriggerResponderTransferOnScrollAndroid"] = MethodMetadata {.argCount = 0, .invoker = __shouldTriggerResponderTransferOnScrollAndroid};
|
|
291
292
|
methodMap_["skipActivityIdentityAssertionOnHostPause"] = MethodMetadata {.argCount = 0, .invoker = __skipActivityIdentityAssertionOnHostPause};
|
|
293
|
+
methodMap_["sweepActiveTouchOnChildNativeGesturesAndroid"] = MethodMetadata {.argCount = 0, .invoker = __sweepActiveTouchOnChildNativeGesturesAndroid};
|
|
292
294
|
methodMap_["traceTurboModulePromiseRejectionsOnAndroid"] = MethodMetadata {.argCount = 0, .invoker = __traceTurboModulePromiseRejectionsOnAndroid};
|
|
293
295
|
methodMap_["updateRuntimeShadowNodeReferencesOnCommit"] = MethodMetadata {.argCount = 0, .invoker = __updateRuntimeShadowNodeReferencesOnCommit};
|
|
294
296
|
methodMap_["useAlwaysAvailableJSErrorHandling"] = MethodMetadata {.argCount = 0, .invoker = __useAlwaysAvailableJSErrorHandling};
|
|
@@ -694,6 +696,13 @@ private:
|
|
|
694
696
|
return bridging::callFromJs<bool>(rt, &T::fixMappingOfEventPrioritiesBetweenFabricAndReact, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
695
697
|
}
|
|
696
698
|
|
|
699
|
+
static jsi::Value __fuseboxAssertSingleHostState(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
700
|
+
static_assert(
|
|
701
|
+
bridging::getParameterCount(&T::fuseboxAssertSingleHostState) == 1,
|
|
702
|
+
"Expected fuseboxAssertSingleHostState(...) to have 1 parameters");
|
|
703
|
+
return bridging::callFromJs<bool>(rt, &T::fuseboxAssertSingleHostState, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
704
|
+
}
|
|
705
|
+
|
|
697
706
|
static jsi::Value __fuseboxEnabledRelease(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
698
707
|
static_assert(
|
|
699
708
|
bridging::getParameterCount(&T::fuseboxEnabledRelease) == 1,
|
|
@@ -771,6 +780,13 @@ private:
|
|
|
771
780
|
return bridging::callFromJs<bool>(rt, &T::skipActivityIdentityAssertionOnHostPause, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
772
781
|
}
|
|
773
782
|
|
|
783
|
+
static jsi::Value __sweepActiveTouchOnChildNativeGesturesAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
784
|
+
static_assert(
|
|
785
|
+
bridging::getParameterCount(&T::sweepActiveTouchOnChildNativeGesturesAndroid) == 1,
|
|
786
|
+
"Expected sweepActiveTouchOnChildNativeGesturesAndroid(...) to have 1 parameters");
|
|
787
|
+
return bridging::callFromJs<bool>(rt, &T::sweepActiveTouchOnChildNativeGesturesAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
788
|
+
}
|
|
789
|
+
|
|
774
790
|
static jsi::Value __traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
775
791
|
static_assert(
|
|
776
792
|
bridging::getParameterCount(&T::traceTurboModulePromiseRejectionsOnAndroid) == 1,
|
|
@@ -56,6 +56,7 @@ Pod::Spec.new do |s|
|
|
|
56
56
|
|
|
57
57
|
add_dependency(s, "React-RuntimeCore")
|
|
58
58
|
add_dependency(s, "React-RuntimeApple")
|
|
59
|
+
add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"])
|
|
59
60
|
|
|
60
61
|
if use_third_party_jsc()
|
|
61
62
|
s.exclude_files = ["RCTHermesInstanceFactory.{mm,h}", "RCTJscInstanceFactory.{mm,h}"]
|
|
@@ -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<<09d1f1bdf5e156afcd7ce15f73ca1c3b>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -354,6 +354,12 @@ public object ReactNativeFeatureFlags {
|
|
|
354
354
|
@JvmStatic
|
|
355
355
|
public fun fixMappingOfEventPrioritiesBetweenFabricAndReact(): Boolean = accessor.fixMappingOfEventPrioritiesBetweenFabricAndReact()
|
|
356
356
|
|
|
357
|
+
/**
|
|
358
|
+
* Enable system assertion validating that Fusebox is configured with a single host. When set, the CDP backend will dynamically disable features (Perf and Network) in the event that multiple hosts are registered (undefined behaviour), and broadcast this over `ReactNativeApplication.systemStateChanged`.
|
|
359
|
+
*/
|
|
360
|
+
@JvmStatic
|
|
361
|
+
public fun fuseboxAssertSingleHostState(): Boolean = accessor.fuseboxAssertSingleHostState()
|
|
362
|
+
|
|
357
363
|
/**
|
|
358
364
|
* Flag determining if the React Native DevTools (Fusebox) CDP backend should be enabled in release builds. This flag is global and should not be changed across React Host lifetimes.
|
|
359
365
|
*/
|
|
@@ -420,6 +426,12 @@ public object ReactNativeFeatureFlags {
|
|
|
420
426
|
@JvmStatic
|
|
421
427
|
public fun skipActivityIdentityAssertionOnHostPause(): Boolean = accessor.skipActivityIdentityAssertionOnHostPause()
|
|
422
428
|
|
|
429
|
+
/**
|
|
430
|
+
* A flag to tell Fabric to sweep active touches from JSTouchDispatcher in Android when a child native gesture is started.
|
|
431
|
+
*/
|
|
432
|
+
@JvmStatic
|
|
433
|
+
public fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean = accessor.sweepActiveTouchOnChildNativeGesturesAndroid()
|
|
434
|
+
|
|
423
435
|
/**
|
|
424
436
|
* Enables storing js caller stack when creating promise in native module. This is useful in case of Promise rejection and tracing the cause.
|
|
425
437
|
*/
|
|
@@ -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<<017aba8e549dc289c27bb4fa93e6d038>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -74,6 +74,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
74
74
|
private var enableVirtualViewWindowFocusDetectionCache: Boolean? = null
|
|
75
75
|
private var enableWebPerformanceAPIsByDefaultCache: Boolean? = null
|
|
76
76
|
private var fixMappingOfEventPrioritiesBetweenFabricAndReactCache: Boolean? = null
|
|
77
|
+
private var fuseboxAssertSingleHostStateCache: Boolean? = null
|
|
77
78
|
private var fuseboxEnabledReleaseCache: Boolean? = null
|
|
78
79
|
private var fuseboxNetworkInspectionEnabledCache: Boolean? = null
|
|
79
80
|
private var hideOffscreenVirtualViewsOnIOSCache: Boolean? = null
|
|
@@ -85,6 +86,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
85
86
|
private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
|
|
86
87
|
private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
|
|
87
88
|
private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
|
|
89
|
+
private var sweepActiveTouchOnChildNativeGesturesAndroidCache: Boolean? = null
|
|
88
90
|
private var traceTurboModulePromiseRejectionsOnAndroidCache: Boolean? = null
|
|
89
91
|
private var updateRuntimeShadowNodeReferencesOnCommitCache: Boolean? = null
|
|
90
92
|
private var useAlwaysAvailableJSErrorHandlingCache: Boolean? = null
|
|
@@ -589,6 +591,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
589
591
|
return cached
|
|
590
592
|
}
|
|
591
593
|
|
|
594
|
+
override fun fuseboxAssertSingleHostState(): Boolean {
|
|
595
|
+
var cached = fuseboxAssertSingleHostStateCache
|
|
596
|
+
if (cached == null) {
|
|
597
|
+
cached = ReactNativeFeatureFlagsCxxInterop.fuseboxAssertSingleHostState()
|
|
598
|
+
fuseboxAssertSingleHostStateCache = cached
|
|
599
|
+
}
|
|
600
|
+
return cached
|
|
601
|
+
}
|
|
602
|
+
|
|
592
603
|
override fun fuseboxEnabledRelease(): Boolean {
|
|
593
604
|
var cached = fuseboxEnabledReleaseCache
|
|
594
605
|
if (cached == null) {
|
|
@@ -688,6 +699,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
688
699
|
return cached
|
|
689
700
|
}
|
|
690
701
|
|
|
702
|
+
override fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean {
|
|
703
|
+
var cached = sweepActiveTouchOnChildNativeGesturesAndroidCache
|
|
704
|
+
if (cached == null) {
|
|
705
|
+
cached = ReactNativeFeatureFlagsCxxInterop.sweepActiveTouchOnChildNativeGesturesAndroid()
|
|
706
|
+
sweepActiveTouchOnChildNativeGesturesAndroidCache = cached
|
|
707
|
+
}
|
|
708
|
+
return cached
|
|
709
|
+
}
|
|
710
|
+
|
|
691
711
|
override fun traceTurboModulePromiseRejectionsOnAndroid(): Boolean {
|
|
692
712
|
var cached = traceTurboModulePromiseRejectionsOnAndroidCache
|
|
693
713
|
if (cached == null) {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<278f3853a98e1dd72b66ad6168e11686>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -136,6 +136,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
136
136
|
|
|
137
137
|
@DoNotStrip @JvmStatic public external fun fixMappingOfEventPrioritiesBetweenFabricAndReact(): Boolean
|
|
138
138
|
|
|
139
|
+
@DoNotStrip @JvmStatic public external fun fuseboxAssertSingleHostState(): Boolean
|
|
140
|
+
|
|
139
141
|
@DoNotStrip @JvmStatic public external fun fuseboxEnabledRelease(): Boolean
|
|
140
142
|
|
|
141
143
|
@DoNotStrip @JvmStatic public external fun fuseboxNetworkInspectionEnabled(): Boolean
|
|
@@ -158,6 +160,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
158
160
|
|
|
159
161
|
@DoNotStrip @JvmStatic public external fun skipActivityIdentityAssertionOnHostPause(): Boolean
|
|
160
162
|
|
|
163
|
+
@DoNotStrip @JvmStatic public external fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean
|
|
164
|
+
|
|
161
165
|
@DoNotStrip @JvmStatic public external fun traceTurboModulePromiseRejectionsOnAndroid(): Boolean
|
|
162
166
|
|
|
163
167
|
@DoNotStrip @JvmStatic public external fun updateRuntimeShadowNodeReferencesOnCommit(): Boolean
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<31da0143bec4eacc9884c950970f0a25>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -131,6 +131,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
131
131
|
|
|
132
132
|
override fun fixMappingOfEventPrioritiesBetweenFabricAndReact(): Boolean = false
|
|
133
133
|
|
|
134
|
+
override fun fuseboxAssertSingleHostState(): Boolean = true
|
|
135
|
+
|
|
134
136
|
override fun fuseboxEnabledRelease(): Boolean = false
|
|
135
137
|
|
|
136
138
|
override fun fuseboxNetworkInspectionEnabled(): Boolean = false
|
|
@@ -153,6 +155,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
153
155
|
|
|
154
156
|
override fun skipActivityIdentityAssertionOnHostPause(): Boolean = false
|
|
155
157
|
|
|
158
|
+
override fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean = true
|
|
159
|
+
|
|
156
160
|
override fun traceTurboModulePromiseRejectionsOnAndroid(): Boolean = false
|
|
157
161
|
|
|
158
162
|
override fun updateRuntimeShadowNodeReferencesOnCommit(): Boolean = false
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<14a5680355bb8c42e39a67edfa6a8974>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -78,6 +78,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
78
78
|
private var enableVirtualViewWindowFocusDetectionCache: Boolean? = null
|
|
79
79
|
private var enableWebPerformanceAPIsByDefaultCache: Boolean? = null
|
|
80
80
|
private var fixMappingOfEventPrioritiesBetweenFabricAndReactCache: Boolean? = null
|
|
81
|
+
private var fuseboxAssertSingleHostStateCache: Boolean? = null
|
|
81
82
|
private var fuseboxEnabledReleaseCache: Boolean? = null
|
|
82
83
|
private var fuseboxNetworkInspectionEnabledCache: Boolean? = null
|
|
83
84
|
private var hideOffscreenVirtualViewsOnIOSCache: Boolean? = null
|
|
@@ -89,6 +90,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
89
90
|
private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
|
|
90
91
|
private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
|
|
91
92
|
private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
|
|
93
|
+
private var sweepActiveTouchOnChildNativeGesturesAndroidCache: Boolean? = null
|
|
92
94
|
private var traceTurboModulePromiseRejectionsOnAndroidCache: Boolean? = null
|
|
93
95
|
private var updateRuntimeShadowNodeReferencesOnCommitCache: Boolean? = null
|
|
94
96
|
private var useAlwaysAvailableJSErrorHandlingCache: Boolean? = null
|
|
@@ -647,6 +649,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
647
649
|
return cached
|
|
648
650
|
}
|
|
649
651
|
|
|
652
|
+
override fun fuseboxAssertSingleHostState(): Boolean {
|
|
653
|
+
var cached = fuseboxAssertSingleHostStateCache
|
|
654
|
+
if (cached == null) {
|
|
655
|
+
cached = currentProvider.fuseboxAssertSingleHostState()
|
|
656
|
+
accessedFeatureFlags.add("fuseboxAssertSingleHostState")
|
|
657
|
+
fuseboxAssertSingleHostStateCache = cached
|
|
658
|
+
}
|
|
659
|
+
return cached
|
|
660
|
+
}
|
|
661
|
+
|
|
650
662
|
override fun fuseboxEnabledRelease(): Boolean {
|
|
651
663
|
var cached = fuseboxEnabledReleaseCache
|
|
652
664
|
if (cached == null) {
|
|
@@ -757,6 +769,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
757
769
|
return cached
|
|
758
770
|
}
|
|
759
771
|
|
|
772
|
+
override fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean {
|
|
773
|
+
var cached = sweepActiveTouchOnChildNativeGesturesAndroidCache
|
|
774
|
+
if (cached == null) {
|
|
775
|
+
cached = currentProvider.sweepActiveTouchOnChildNativeGesturesAndroid()
|
|
776
|
+
accessedFeatureFlags.add("sweepActiveTouchOnChildNativeGesturesAndroid")
|
|
777
|
+
sweepActiveTouchOnChildNativeGesturesAndroidCache = cached
|
|
778
|
+
}
|
|
779
|
+
return cached
|
|
780
|
+
}
|
|
781
|
+
|
|
760
782
|
override fun traceTurboModulePromiseRejectionsOnAndroid(): Boolean {
|
|
761
783
|
var cached = traceTurboModulePromiseRejectionsOnAndroidCache
|
|
762
784
|
if (cached == null) {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<5a348c354bb6dd2ddfbc869a9e2f0dbe>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -131,6 +131,8 @@ public interface ReactNativeFeatureFlagsProvider {
|
|
|
131
131
|
|
|
132
132
|
@DoNotStrip public fun fixMappingOfEventPrioritiesBetweenFabricAndReact(): Boolean
|
|
133
133
|
|
|
134
|
+
@DoNotStrip public fun fuseboxAssertSingleHostState(): Boolean
|
|
135
|
+
|
|
134
136
|
@DoNotStrip public fun fuseboxEnabledRelease(): Boolean
|
|
135
137
|
|
|
136
138
|
@DoNotStrip public fun fuseboxNetworkInspectionEnabled(): Boolean
|
|
@@ -153,6 +155,8 @@ public interface ReactNativeFeatureFlagsProvider {
|
|
|
153
155
|
|
|
154
156
|
@DoNotStrip public fun skipActivityIdentityAssertionOnHostPause(): Boolean
|
|
155
157
|
|
|
158
|
+
@DoNotStrip public fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean
|
|
159
|
+
|
|
156
160
|
@DoNotStrip public fun traceTurboModulePromiseRejectionsOnAndroid(): Boolean
|
|
157
161
|
|
|
158
162
|
@DoNotStrip public fun updateRuntimeShadowNodeReferencesOnCommit(): Boolean
|
|
@@ -14,6 +14,7 @@ import com.facebook.infer.annotation.Assertions
|
|
|
14
14
|
import com.facebook.react.bridge.ReactContext
|
|
15
15
|
import com.facebook.react.common.ReactConstants
|
|
16
16
|
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
17
|
+
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags
|
|
17
18
|
import com.facebook.react.uimanager.common.UIManagerType
|
|
18
19
|
import com.facebook.react.uimanager.events.EventDispatcher
|
|
19
20
|
import com.facebook.react.uimanager.events.TouchEvent
|
|
@@ -58,7 +59,7 @@ public class JSTouchDispatcher(private val viewGroup: ViewGroup) {
|
|
|
58
59
|
dispatchCancelEvent(androidEvent, eventDispatcher)
|
|
59
60
|
childIsHandlingNativeGesture = true
|
|
60
61
|
|
|
61
|
-
if (targetTag != -1) {
|
|
62
|
+
if (targetTag != -1 && ReactNativeFeatureFlags.sweepActiveTouchOnChildNativeGesturesAndroid()) {
|
|
62
63
|
val surfaceId = UIManagerHelper.getSurfaceId(viewGroup)
|
|
63
64
|
sweepActiveTouchForTag(surfaceId, targetTag, reactContext)
|
|
64
65
|
}
|
|
@@ -29,7 +29,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
29
29
|
private lateinit var _eventName: String
|
|
30
30
|
private var coalescingKey = UNSET_COALESCING_KEY
|
|
31
31
|
private var pointersEventData: List<WritableMap>? = null
|
|
32
|
-
private var eventState: PointerEventState
|
|
32
|
+
private lateinit var eventState: PointerEventState
|
|
33
33
|
|
|
34
34
|
private fun init(
|
|
35
35
|
eventName: String,
|
|
@@ -84,7 +84,7 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
84
84
|
return@EventAnimationDriverMatchSpec false
|
|
85
85
|
}
|
|
86
86
|
if (isBubblingEvent(eventName)) {
|
|
87
|
-
for (viewTarget in
|
|
87
|
+
for (viewTarget in eventState.hitPathForActivePointer) {
|
|
88
88
|
if (viewTarget.getViewId() == viewTag) {
|
|
89
89
|
return@EventAnimationDriverMatchSpec true
|
|
90
90
|
}
|
|
@@ -97,10 +97,10 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
override fun onDispose() {
|
|
100
|
-
eventState = null
|
|
101
100
|
pointersEventData = null
|
|
101
|
+
val motionEvent = motionEvent
|
|
102
|
+
this.motionEvent = null
|
|
102
103
|
motionEvent?.recycle()
|
|
103
|
-
motionEvent = null
|
|
104
104
|
|
|
105
105
|
// Either `this` is in the event pool, or motionEvent
|
|
106
106
|
// is null. It is in theory not possible for a PointerEvent to
|
|
@@ -137,7 +137,6 @@ internal class PointerEvent private constructor() : Event<PointerEvent>() {
|
|
|
137
137
|
val pointerEvent = Arguments.createMap()
|
|
138
138
|
val motionEvent = checkNotNull(motionEvent)
|
|
139
139
|
val pointerId = motionEvent.getPointerId(index)
|
|
140
|
-
val eventState = checkNotNull(eventState)
|
|
141
140
|
|
|
142
141
|
// https://www.w3.org/TR/pointerevents/#pointerevent-interface
|
|
143
142
|
pointerEvent.putDouble("pointerId", pointerId.toDouble())
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<5b2d44dcf36386f86f26c694d3f00229>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -363,6 +363,12 @@ class ReactNativeFeatureFlagsJavaProvider
|
|
|
363
363
|
return method(javaProvider_);
|
|
364
364
|
}
|
|
365
365
|
|
|
366
|
+
bool fuseboxAssertSingleHostState() override {
|
|
367
|
+
static const auto method =
|
|
368
|
+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("fuseboxAssertSingleHostState");
|
|
369
|
+
return method(javaProvider_);
|
|
370
|
+
}
|
|
371
|
+
|
|
366
372
|
bool fuseboxEnabledRelease() override {
|
|
367
373
|
static const auto method =
|
|
368
374
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("fuseboxEnabledRelease");
|
|
@@ -429,6 +435,12 @@ class ReactNativeFeatureFlagsJavaProvider
|
|
|
429
435
|
return method(javaProvider_);
|
|
430
436
|
}
|
|
431
437
|
|
|
438
|
+
bool sweepActiveTouchOnChildNativeGesturesAndroid() override {
|
|
439
|
+
static const auto method =
|
|
440
|
+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("sweepActiveTouchOnChildNativeGesturesAndroid");
|
|
441
|
+
return method(javaProvider_);
|
|
442
|
+
}
|
|
443
|
+
|
|
432
444
|
bool traceTurboModulePromiseRejectionsOnAndroid() override {
|
|
433
445
|
static const auto method =
|
|
434
446
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("traceTurboModulePromiseRejectionsOnAndroid");
|
|
@@ -805,6 +817,11 @@ bool JReactNativeFeatureFlagsCxxInterop::fixMappingOfEventPrioritiesBetweenFabri
|
|
|
805
817
|
return ReactNativeFeatureFlags::fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
|
806
818
|
}
|
|
807
819
|
|
|
820
|
+
bool JReactNativeFeatureFlagsCxxInterop::fuseboxAssertSingleHostState(
|
|
821
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
822
|
+
return ReactNativeFeatureFlags::fuseboxAssertSingleHostState();
|
|
823
|
+
}
|
|
824
|
+
|
|
808
825
|
bool JReactNativeFeatureFlagsCxxInterop::fuseboxEnabledRelease(
|
|
809
826
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
810
827
|
return ReactNativeFeatureFlags::fuseboxEnabledRelease();
|
|
@@ -860,6 +877,11 @@ bool JReactNativeFeatureFlagsCxxInterop::skipActivityIdentityAssertionOnHostPaus
|
|
|
860
877
|
return ReactNativeFeatureFlags::skipActivityIdentityAssertionOnHostPause();
|
|
861
878
|
}
|
|
862
879
|
|
|
880
|
+
bool JReactNativeFeatureFlagsCxxInterop::sweepActiveTouchOnChildNativeGesturesAndroid(
|
|
881
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
882
|
+
return ReactNativeFeatureFlags::sweepActiveTouchOnChildNativeGesturesAndroid();
|
|
883
|
+
}
|
|
884
|
+
|
|
863
885
|
bool JReactNativeFeatureFlagsCxxInterop::traceTurboModulePromiseRejectionsOnAndroid(
|
|
864
886
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
865
887
|
return ReactNativeFeatureFlags::traceTurboModulePromiseRejectionsOnAndroid();
|
|
@@ -1138,6 +1160,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1138
1160
|
makeNativeMethod(
|
|
1139
1161
|
"fixMappingOfEventPrioritiesBetweenFabricAndReact",
|
|
1140
1162
|
JReactNativeFeatureFlagsCxxInterop::fixMappingOfEventPrioritiesBetweenFabricAndReact),
|
|
1163
|
+
makeNativeMethod(
|
|
1164
|
+
"fuseboxAssertSingleHostState",
|
|
1165
|
+
JReactNativeFeatureFlagsCxxInterop::fuseboxAssertSingleHostState),
|
|
1141
1166
|
makeNativeMethod(
|
|
1142
1167
|
"fuseboxEnabledRelease",
|
|
1143
1168
|
JReactNativeFeatureFlagsCxxInterop::fuseboxEnabledRelease),
|
|
@@ -1171,6 +1196,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1171
1196
|
makeNativeMethod(
|
|
1172
1197
|
"skipActivityIdentityAssertionOnHostPause",
|
|
1173
1198
|
JReactNativeFeatureFlagsCxxInterop::skipActivityIdentityAssertionOnHostPause),
|
|
1199
|
+
makeNativeMethod(
|
|
1200
|
+
"sweepActiveTouchOnChildNativeGesturesAndroid",
|
|
1201
|
+
JReactNativeFeatureFlagsCxxInterop::sweepActiveTouchOnChildNativeGesturesAndroid),
|
|
1174
1202
|
makeNativeMethod(
|
|
1175
1203
|
"traceTurboModulePromiseRejectionsOnAndroid",
|
|
1176
1204
|
JReactNativeFeatureFlagsCxxInterop::traceTurboModulePromiseRejectionsOnAndroid),
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<5a03db93d78fc1b14283ca3dc92db207>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -192,6 +192,9 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
192
192
|
static bool fixMappingOfEventPrioritiesBetweenFabricAndReact(
|
|
193
193
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
194
194
|
|
|
195
|
+
static bool fuseboxAssertSingleHostState(
|
|
196
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
197
|
+
|
|
195
198
|
static bool fuseboxEnabledRelease(
|
|
196
199
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
197
200
|
|
|
@@ -225,6 +228,9 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
225
228
|
static bool skipActivityIdentityAssertionOnHostPause(
|
|
226
229
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
227
230
|
|
|
231
|
+
static bool sweepActiveTouchOnChildNativeGesturesAndroid(
|
|
232
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
233
|
+
|
|
228
234
|
static bool traceTurboModulePromiseRejectionsOnAndroid(
|
|
229
235
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
230
236
|
|
|
@@ -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
|
|
|
@@ -37,6 +37,7 @@ Pod::Spec.new do |s|
|
|
|
37
37
|
add_dependency(s, "React-jsinspector", :framework_name => 'jsinspector_modern')
|
|
38
38
|
add_dependency(s, "React-jsinspectorcdp", :framework_name => 'jsinspector_moderncdp')
|
|
39
39
|
add_dependency(s, "React-jsinspectortracing", :framework_name => 'jsinspector_moderntracing')
|
|
40
|
+
add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"])
|
|
40
41
|
if use_hermes()
|
|
41
42
|
s.dependency 'hermes-engine'
|
|
42
43
|
end
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
#ifdef REACT_NATIVE_DEBUGGER_ENABLED
|
|
12
12
|
#include "InspectorFlags.h"
|
|
13
|
+
#include "InspectorInterfaces.h"
|
|
13
14
|
#include "NetworkIOAgent.h"
|
|
14
15
|
#include "SessionState.h"
|
|
15
16
|
#include "TracingAgent.h"
|
|
@@ -145,6 +146,19 @@ class HostAgent::Impl final {
|
|
|
145
146
|
}
|
|
146
147
|
if (InspectorFlags::getInstance().getNetworkInspectionEnabled()) {
|
|
147
148
|
if (req.method == "Network.enable") {
|
|
149
|
+
auto& inspector = getInspectorInstance();
|
|
150
|
+
if (inspector.getSystemState().registeredPagesCount > 1) {
|
|
151
|
+
frontendChannel_(
|
|
152
|
+
cdp::jsonError(
|
|
153
|
+
req.id,
|
|
154
|
+
cdp::ErrorCode::InternalError,
|
|
155
|
+
"The Network domain is unavailable when multiple React Native hosts are registered."));
|
|
156
|
+
return {
|
|
157
|
+
.isFinishedHandlingRequest = true,
|
|
158
|
+
.shouldSendOKResponse = false,
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
|
|
148
162
|
sessionState_.isNetworkDomainEnabled = true;
|
|
149
163
|
|
|
150
164
|
return {
|
|
@@ -216,6 +230,11 @@ class HostAgent::Impl final {
|
|
|
216
230
|
cdp::jsonNotification(
|
|
217
231
|
"ReactNativeApplication.metadataUpdated",
|
|
218
232
|
createHostMetadataPayload(hostMetadata_)));
|
|
233
|
+
auto& inspector = getInspectorInstance();
|
|
234
|
+
bool isSingleHost = inspector.getSystemState().registeredPagesCount <= 1;
|
|
235
|
+
if (!isSingleHost) {
|
|
236
|
+
emitSystemStateChanged(isSingleHost);
|
|
237
|
+
}
|
|
219
238
|
|
|
220
239
|
auto stashedTraceRecording =
|
|
221
240
|
targetController_.getDelegate()
|
|
@@ -374,6 +393,15 @@ class HostAgent::Impl final {
|
|
|
374
393
|
tracingAgent_.emitExternalTraceRecording(std::move(traceRecording));
|
|
375
394
|
}
|
|
376
395
|
|
|
396
|
+
void emitSystemStateChanged(bool isSingleHost) {
|
|
397
|
+
frontendChannel_(
|
|
398
|
+
cdp::jsonNotification(
|
|
399
|
+
"ReactNativeApplication.systemStateChanged",
|
|
400
|
+
folly::dynamic::object("isSingleHost", isSingleHost)));
|
|
401
|
+
|
|
402
|
+
frontendChannel_(cdp::jsonNotification("Network.disable"));
|
|
403
|
+
}
|
|
404
|
+
|
|
377
405
|
private:
|
|
378
406
|
enum class FuseboxClientType { Unknown, Fusebox, NonFusebox };
|
|
379
407
|
|
|
@@ -480,6 +508,7 @@ class HostAgent::Impl final {
|
|
|
480
508
|
}
|
|
481
509
|
void emitExternalTraceRecording(tracing::TraceRecordingState traceRecording) {
|
|
482
510
|
}
|
|
511
|
+
void emitSystemStateChanged(bool isSingleHost) {}
|
|
483
512
|
};
|
|
484
513
|
|
|
485
514
|
#endif // REACT_NATIVE_DEBUGGER_ENABLED
|
|
@@ -519,6 +548,10 @@ void HostAgent::emitExternalTraceRecording(
|
|
|
519
548
|
impl_->emitExternalTraceRecording(std::move(traceRecording));
|
|
520
549
|
}
|
|
521
550
|
|
|
551
|
+
void HostAgent::emitSystemStateChanged(bool isSingleHost) const {
|
|
552
|
+
impl_->emitSystemStateChanged(isSingleHost);
|
|
553
|
+
}
|
|
554
|
+
|
|
522
555
|
#pragma mark - Tracing
|
|
523
556
|
|
|
524
557
|
HostTracingAgent::HostTracingAgent(tracing::TraceRecordingState& state)
|
|
@@ -79,6 +79,12 @@ class HostAgent final {
|
|
|
79
79
|
*/
|
|
80
80
|
void emitExternalTraceRecording(tracing::TraceRecordingState traceRecording) const;
|
|
81
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Emits a system state changed event when the number of ReactHost instances
|
|
84
|
+
* changes.
|
|
85
|
+
*/
|
|
86
|
+
void emitSystemStateChanged(bool isSingleHost) const;
|
|
87
|
+
|
|
82
88
|
private:
|
|
83
89
|
// We use the private implementation idiom to ensure this class has the same
|
|
84
90
|
// layout regardless of whether REACT_NATIVE_DEBUGGER_ENABLED is defined. The
|
|
@@ -320,6 +320,11 @@ class JSINSPECTOR_EXPORT HostTarget : public EnableExecutorFromThis<HostTarget>
|
|
|
320
320
|
*/
|
|
321
321
|
void emitTraceRecordingForFirstFuseboxClient(tracing::TraceRecordingState traceRecording) const;
|
|
322
322
|
|
|
323
|
+
/**
|
|
324
|
+
* Emits a system state changed event to all active sessions.
|
|
325
|
+
*/
|
|
326
|
+
void emitSystemStateChanged(bool isSingleHost) const;
|
|
327
|
+
|
|
323
328
|
private:
|
|
324
329
|
/**
|
|
325
330
|
* Constructs a new HostTarget.
|
|
@@ -17,6 +17,10 @@ InspectorFlags& InspectorFlags::getInstance() {
|
|
|
17
17
|
return instance;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
bool InspectorFlags::getAssertSingleHostState() const {
|
|
21
|
+
return loadFlagsAndAssertUnchanged().assertSingleHostState;
|
|
22
|
+
}
|
|
23
|
+
|
|
20
24
|
bool InspectorFlags::getFuseboxEnabled() const {
|
|
21
25
|
if (fuseboxDisabledForTest_) {
|
|
22
26
|
return false;
|
|
@@ -48,6 +52,8 @@ void InspectorFlags::dangerouslyDisableFuseboxForTest() {
|
|
|
48
52
|
const InspectorFlags::Values& InspectorFlags::loadFlagsAndAssertUnchanged()
|
|
49
53
|
const {
|
|
50
54
|
InspectorFlags::Values newValues = {
|
|
55
|
+
.assertSingleHostState =
|
|
56
|
+
ReactNativeFeatureFlags::fuseboxAssertSingleHostState(),
|
|
51
57
|
.fuseboxEnabled =
|
|
52
58
|
#if defined(REACT_NATIVE_DEBUGGER_ENABLED)
|
|
53
59
|
true,
|