react-native 0.83.0-rc.0 → 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/React/Base/RCTVersion.m +1 -1
- package/React/CoreModules/React-CoreModules.podspec +1 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +8 -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 +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +12 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -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 +11 -1
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +4 -0
- package/ReactCommon/jsitooling/React-jsitooling.podspec +1 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +48 -30
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +4 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +10 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +2 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +6 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -1
- package/ReactCommon/react/utils/React-utils.podspec +3 -1
- package/package.json +9 -8
- package/scripts/cocoapods/rncore.rb +3 -2
- package/sdks/.hermesv1version +1 -0
- package/sdks/hermes-engine/version.properties +1 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +6 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -1
|
@@ -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 = 'rc.
|
|
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}` : ''}`;
|
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};
|
|
@@ -695,6 +696,13 @@ private:
|
|
|
695
696
|
return bridging::callFromJs<bool>(rt, &T::fixMappingOfEventPrioritiesBetweenFabricAndReact, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
696
697
|
}
|
|
697
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
|
+
|
|
698
706
|
static jsi::Value __fuseboxEnabledRelease(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
699
707
|
static_assert(
|
|
700
708
|
bridging::getParameterCount(&T::fuseboxEnabledRelease) == 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
|
*/
|
|
@@ -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
|
|
@@ -590,6 +591,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
590
591
|
return cached
|
|
591
592
|
}
|
|
592
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
|
+
|
|
593
603
|
override fun fuseboxEnabledRelease(): Boolean {
|
|
594
604
|
var cached = fuseboxEnabledReleaseCache
|
|
595
605
|
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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -648,6 +649,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
648
649
|
return cached
|
|
649
650
|
}
|
|
650
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
|
+
|
|
651
662
|
override fun fuseboxEnabledRelease(): Boolean {
|
|
652
663
|
var cached = fuseboxEnabledReleaseCache
|
|
653
664
|
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
|
|
@@ -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");
|
|
@@ -811,6 +817,11 @@ bool JReactNativeFeatureFlagsCxxInterop::fixMappingOfEventPrioritiesBetweenFabri
|
|
|
811
817
|
return ReactNativeFeatureFlags::fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
|
812
818
|
}
|
|
813
819
|
|
|
820
|
+
bool JReactNativeFeatureFlagsCxxInterop::fuseboxAssertSingleHostState(
|
|
821
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
822
|
+
return ReactNativeFeatureFlags::fuseboxAssertSingleHostState();
|
|
823
|
+
}
|
|
824
|
+
|
|
814
825
|
bool JReactNativeFeatureFlagsCxxInterop::fuseboxEnabledRelease(
|
|
815
826
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
816
827
|
return ReactNativeFeatureFlags::fuseboxEnabledRelease();
|
|
@@ -1149,6 +1160,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1149
1160
|
makeNativeMethod(
|
|
1150
1161
|
"fixMappingOfEventPrioritiesBetweenFabricAndReact",
|
|
1151
1162
|
JReactNativeFeatureFlagsCxxInterop::fixMappingOfEventPrioritiesBetweenFabricAndReact),
|
|
1163
|
+
makeNativeMethod(
|
|
1164
|
+
"fuseboxAssertSingleHostState",
|
|
1165
|
+
JReactNativeFeatureFlagsCxxInterop::fuseboxAssertSingleHostState),
|
|
1152
1166
|
makeNativeMethod(
|
|
1153
1167
|
"fuseboxEnabledRelease",
|
|
1154
1168
|
JReactNativeFeatureFlagsCxxInterop::fuseboxEnabledRelease),
|
|
@@ -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
|
|
|
@@ -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,
|
|
@@ -19,6 +19,12 @@ class InspectorFlags {
|
|
|
19
19
|
public:
|
|
20
20
|
static InspectorFlags &getInstance();
|
|
21
21
|
|
|
22
|
+
/**
|
|
23
|
+
* Flag determining if the inspector backend should strictly assert that only
|
|
24
|
+
* a single host is registered.
|
|
25
|
+
*/
|
|
26
|
+
bool getAssertSingleHostState() const;
|
|
27
|
+
|
|
22
28
|
/**
|
|
23
29
|
* Flag determining if the modern CDP backend should be enabled.
|
|
24
30
|
*/
|
|
@@ -54,6 +60,7 @@ class InspectorFlags {
|
|
|
54
60
|
|
|
55
61
|
private:
|
|
56
62
|
struct Values {
|
|
63
|
+
bool assertSingleHostState;
|
|
57
64
|
bool fuseboxEnabled;
|
|
58
65
|
bool isProfilingBuild;
|
|
59
66
|
bool networkInspectionEnabled;
|
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
|
|
8
8
|
#include "InspectorInterfaces.h"
|
|
9
9
|
|
|
10
|
+
#include "InspectorFlags.h"
|
|
11
|
+
|
|
10
12
|
#include <cassert>
|
|
11
13
|
#include <list>
|
|
12
14
|
#include <mutex>
|
|
@@ -35,6 +37,14 @@ namespace {
|
|
|
35
37
|
|
|
36
38
|
class InspectorImpl : public IInspector {
|
|
37
39
|
public:
|
|
40
|
+
InspectorImpl() {
|
|
41
|
+
systemStateListener_ = std::make_shared<SystemStateListener>(systemState_);
|
|
42
|
+
auto& inspectorFlags = InspectorFlags::getInstance();
|
|
43
|
+
if (inspectorFlags.getAssertSingleHostState()) {
|
|
44
|
+
registerPageStatusListener(systemStateListener_);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
38
48
|
int addPage(
|
|
39
49
|
const std::string& description,
|
|
40
50
|
const std::string& vm,
|
|
@@ -50,7 +60,21 @@ class InspectorImpl : public IInspector {
|
|
|
50
60
|
void registerPageStatusListener(
|
|
51
61
|
std::weak_ptr<IPageStatusListener> listener) override;
|
|
52
62
|
|
|
63
|
+
InspectorSystemState getSystemState() const override;
|
|
64
|
+
|
|
53
65
|
private:
|
|
66
|
+
class SystemStateListener : public IPageStatusListener {
|
|
67
|
+
public:
|
|
68
|
+
explicit SystemStateListener(InspectorSystemState& state) : state_(state) {}
|
|
69
|
+
|
|
70
|
+
void onPageAdded(int /*pageId*/) override {
|
|
71
|
+
state_.registeredPagesCount++;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
private:
|
|
75
|
+
InspectorSystemState& state_;
|
|
76
|
+
};
|
|
77
|
+
|
|
54
78
|
class Page {
|
|
55
79
|
public:
|
|
56
80
|
Page(
|
|
@@ -74,6 +98,8 @@ class InspectorImpl : public IInspector {
|
|
|
74
98
|
int nextPageId_{1};
|
|
75
99
|
std::map<int, Page> pages_;
|
|
76
100
|
std::list<std::weak_ptr<IPageStatusListener>> listeners_;
|
|
101
|
+
InspectorSystemState systemState_{0};
|
|
102
|
+
std::shared_ptr<SystemStateListener> systemStateListener_;
|
|
77
103
|
};
|
|
78
104
|
|
|
79
105
|
InspectorImpl::Page::Page(
|
|
@@ -116,6 +142,12 @@ int InspectorImpl::addPage(
|
|
|
116
142
|
pageId,
|
|
117
143
|
Page{pageId, description, vm, std::move(connectFunc), capabilities});
|
|
118
144
|
|
|
145
|
+
for (const auto& listenerWeak : listeners_) {
|
|
146
|
+
if (auto listener = listenerWeak.lock()) {
|
|
147
|
+
listener->onPageAdded(pageId);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
119
151
|
return pageId;
|
|
120
152
|
}
|
|
121
153
|
|
|
@@ -175,6 +207,11 @@ void InspectorImpl::registerPageStatusListener(
|
|
|
175
207
|
}
|
|
176
208
|
listeners_.push_back(listener);
|
|
177
209
|
}
|
|
210
|
+
|
|
211
|
+
InspectorSystemState InspectorImpl::getSystemState() const {
|
|
212
|
+
std::scoped_lock lock(mutex_);
|
|
213
|
+
return systemState_;
|
|
214
|
+
}
|
|
178
215
|
} // namespace
|
|
179
216
|
|
|
180
217
|
IInspector& getInspectorInstance() {
|
|
@@ -51,6 +51,11 @@ struct InspectorPageDescription {
|
|
|
51
51
|
// Alias for backwards compatibility.
|
|
52
52
|
using InspectorPage = InspectorPageDescription;
|
|
53
53
|
|
|
54
|
+
struct InspectorSystemState {
|
|
55
|
+
/** The total count of pages registered during the app lifetime. */
|
|
56
|
+
int registeredPagesCount;
|
|
57
|
+
};
|
|
58
|
+
|
|
54
59
|
/// IRemoteConnection allows the VM to send debugger messages to the client.
|
|
55
60
|
/// IRemoteConnection's methods are safe to call from any thread *if*
|
|
56
61
|
/// InspectorPackagerConnection.cpp is in use.
|
|
@@ -78,7 +83,8 @@ class JSINSPECTOR_EXPORT ILocalConnection : public IDestructible {
|
|
|
78
83
|
class JSINSPECTOR_EXPORT IPageStatusListener : public IDestructible {
|
|
79
84
|
public:
|
|
80
85
|
virtual ~IPageStatusListener() = 0;
|
|
81
|
-
virtual void
|
|
86
|
+
virtual void onPageAdded(int /*pageId*/) {}
|
|
87
|
+
virtual void onPageRemoved(int /*pageId*/) {}
|
|
82
88
|
};
|
|
83
89
|
|
|
84
90
|
/// IInspector tracks debuggable JavaScript targets (pages).
|
|
@@ -127,6 +133,11 @@ class JSINSPECTOR_EXPORT IInspector : public IDestructible {
|
|
|
127
133
|
* when pages are removed.
|
|
128
134
|
*/
|
|
129
135
|
virtual void registerPageStatusListener(std::weak_ptr<IPageStatusListener> listener) = 0;
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Get the current \c InspectorSystemState object.
|
|
139
|
+
*/
|
|
140
|
+
virtual InspectorSystemState getSystemState() const = 0;
|
|
130
141
|
};
|
|
131
142
|
|
|
132
143
|
class NotImplementedException : public std::exception {
|
|
@@ -53,7 +53,17 @@ TracingAgent::~TracingAgent() {
|
|
|
53
53
|
|
|
54
54
|
bool TracingAgent::handleRequest(const cdp::PreparsedRequest& req) {
|
|
55
55
|
if (req.method == "Tracing.start") {
|
|
56
|
-
|
|
56
|
+
auto& inspector = getInspectorInstance();
|
|
57
|
+
if (inspector.getSystemState().registeredPagesCount > 1) {
|
|
58
|
+
frontendChannel_(
|
|
59
|
+
cdp::jsonError(
|
|
60
|
+
req.id,
|
|
61
|
+
cdp::ErrorCode::InternalError,
|
|
62
|
+
"The Tracing domain is unavailable when multiple React Native hosts are registered."));
|
|
63
|
+
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
|
|
57
67
|
if (sessionState_.isDebuggerDomainEnabled) {
|
|
58
68
|
frontendChannel_(
|
|
59
69
|
cdp::jsonError(
|
|
@@ -42,6 +42,7 @@ Pod::Spec.new do |s|
|
|
|
42
42
|
add_dependency(s, "React-jsinspector", :framework_name => 'jsinspector_modern')
|
|
43
43
|
add_dependency(s, "React-jsinspectorcdp", :framework_name => 'jsinspector_moderncdp')
|
|
44
44
|
add_dependency(s, "React-jsinspectortracing", :framework_name => 'jsinspector_moderntracing')
|
|
45
|
+
add_dependency(s, "React-utils", :additional_framework_paths => ["react/utils/platform/ios"])
|
|
45
46
|
|
|
46
47
|
add_rn_third_party_dependencies(s)
|
|
47
48
|
add_rncore_dependency(s)
|
|
@@ -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<<efd875dca79abd383d527b063063051f>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -242,6 +242,10 @@ bool ReactNativeFeatureFlags::fixMappingOfEventPrioritiesBetweenFabricAndReact()
|
|
|
242
242
|
return getAccessor().fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
+
bool ReactNativeFeatureFlags::fuseboxAssertSingleHostState() {
|
|
246
|
+
return getAccessor().fuseboxAssertSingleHostState();
|
|
247
|
+
}
|
|
248
|
+
|
|
245
249
|
bool ReactNativeFeatureFlags::fuseboxEnabledRelease() {
|
|
246
250
|
return getAccessor().fuseboxEnabledRelease();
|
|
247
251
|
}
|
|
@@ -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<<95ab3eb7a8aab0a72095cc9ad7c583ce>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -309,6 +309,11 @@ class ReactNativeFeatureFlags {
|
|
|
309
309
|
*/
|
|
310
310
|
RN_EXPORT static bool fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
|
311
311
|
|
|
312
|
+
/**
|
|
313
|
+
* 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`.
|
|
314
|
+
*/
|
|
315
|
+
RN_EXPORT static bool fuseboxAssertSingleHostState();
|
|
316
|
+
|
|
312
317
|
/**
|
|
313
318
|
* 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.
|
|
314
319
|
*/
|
|
@@ -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<<0985314bcdfe904d33ea0685b4008087>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -1001,6 +1001,24 @@ bool ReactNativeFeatureFlagsAccessor::fixMappingOfEventPrioritiesBetweenFabricAn
|
|
|
1001
1001
|
return flagValue.value();
|
|
1002
1002
|
}
|
|
1003
1003
|
|
|
1004
|
+
bool ReactNativeFeatureFlagsAccessor::fuseboxAssertSingleHostState() {
|
|
1005
|
+
auto flagValue = fuseboxAssertSingleHostState_.load();
|
|
1006
|
+
|
|
1007
|
+
if (!flagValue.has_value()) {
|
|
1008
|
+
// This block is not exclusive but it is not necessary.
|
|
1009
|
+
// If multiple threads try to initialize the feature flag, we would only
|
|
1010
|
+
// be accessing the provider multiple times but the end state of this
|
|
1011
|
+
// instance and the returned flag value would be the same.
|
|
1012
|
+
|
|
1013
|
+
markFlagAsAccessed(54, "fuseboxAssertSingleHostState");
|
|
1014
|
+
|
|
1015
|
+
flagValue = currentProvider_->fuseboxAssertSingleHostState();
|
|
1016
|
+
fuseboxAssertSingleHostState_ = flagValue;
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
return flagValue.value();
|
|
1020
|
+
}
|
|
1021
|
+
|
|
1004
1022
|
bool ReactNativeFeatureFlagsAccessor::fuseboxEnabledRelease() {
|
|
1005
1023
|
auto flagValue = fuseboxEnabledRelease_.load();
|
|
1006
1024
|
|
|
@@ -1010,7 +1028,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxEnabledRelease() {
|
|
|
1010
1028
|
// be accessing the provider multiple times but the end state of this
|
|
1011
1029
|
// instance and the returned flag value would be the same.
|
|
1012
1030
|
|
|
1013
|
-
markFlagAsAccessed(
|
|
1031
|
+
markFlagAsAccessed(55, "fuseboxEnabledRelease");
|
|
1014
1032
|
|
|
1015
1033
|
flagValue = currentProvider_->fuseboxEnabledRelease();
|
|
1016
1034
|
fuseboxEnabledRelease_ = flagValue;
|
|
@@ -1028,7 +1046,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxNetworkInspectionEnabled() {
|
|
|
1028
1046
|
// be accessing the provider multiple times but the end state of this
|
|
1029
1047
|
// instance and the returned flag value would be the same.
|
|
1030
1048
|
|
|
1031
|
-
markFlagAsAccessed(
|
|
1049
|
+
markFlagAsAccessed(56, "fuseboxNetworkInspectionEnabled");
|
|
1032
1050
|
|
|
1033
1051
|
flagValue = currentProvider_->fuseboxNetworkInspectionEnabled();
|
|
1034
1052
|
fuseboxNetworkInspectionEnabled_ = flagValue;
|
|
@@ -1046,7 +1064,7 @@ bool ReactNativeFeatureFlagsAccessor::hideOffscreenVirtualViewsOnIOS() {
|
|
|
1046
1064
|
// be accessing the provider multiple times but the end state of this
|
|
1047
1065
|
// instance and the returned flag value would be the same.
|
|
1048
1066
|
|
|
1049
|
-
markFlagAsAccessed(
|
|
1067
|
+
markFlagAsAccessed(57, "hideOffscreenVirtualViewsOnIOS");
|
|
1050
1068
|
|
|
1051
1069
|
flagValue = currentProvider_->hideOffscreenVirtualViewsOnIOS();
|
|
1052
1070
|
hideOffscreenVirtualViewsOnIOS_ = flagValue;
|
|
@@ -1064,7 +1082,7 @@ bool ReactNativeFeatureFlagsAccessor::overrideBySynchronousMountPropsAtMountingA
|
|
|
1064
1082
|
// be accessing the provider multiple times but the end state of this
|
|
1065
1083
|
// instance and the returned flag value would be the same.
|
|
1066
1084
|
|
|
1067
|
-
markFlagAsAccessed(
|
|
1085
|
+
markFlagAsAccessed(58, "overrideBySynchronousMountPropsAtMountingAndroid");
|
|
1068
1086
|
|
|
1069
1087
|
flagValue = currentProvider_->overrideBySynchronousMountPropsAtMountingAndroid();
|
|
1070
1088
|
overrideBySynchronousMountPropsAtMountingAndroid_ = flagValue;
|
|
@@ -1082,7 +1100,7 @@ bool ReactNativeFeatureFlagsAccessor::perfIssuesEnabled() {
|
|
|
1082
1100
|
// be accessing the provider multiple times but the end state of this
|
|
1083
1101
|
// instance and the returned flag value would be the same.
|
|
1084
1102
|
|
|
1085
|
-
markFlagAsAccessed(
|
|
1103
|
+
markFlagAsAccessed(59, "perfIssuesEnabled");
|
|
1086
1104
|
|
|
1087
1105
|
flagValue = currentProvider_->perfIssuesEnabled();
|
|
1088
1106
|
perfIssuesEnabled_ = flagValue;
|
|
@@ -1100,7 +1118,7 @@ bool ReactNativeFeatureFlagsAccessor::perfMonitorV2Enabled() {
|
|
|
1100
1118
|
// be accessing the provider multiple times but the end state of this
|
|
1101
1119
|
// instance and the returned flag value would be the same.
|
|
1102
1120
|
|
|
1103
|
-
markFlagAsAccessed(
|
|
1121
|
+
markFlagAsAccessed(60, "perfMonitorV2Enabled");
|
|
1104
1122
|
|
|
1105
1123
|
flagValue = currentProvider_->perfMonitorV2Enabled();
|
|
1106
1124
|
perfMonitorV2Enabled_ = flagValue;
|
|
@@ -1118,7 +1136,7 @@ double ReactNativeFeatureFlagsAccessor::preparedTextCacheSize() {
|
|
|
1118
1136
|
// be accessing the provider multiple times but the end state of this
|
|
1119
1137
|
// instance and the returned flag value would be the same.
|
|
1120
1138
|
|
|
1121
|
-
markFlagAsAccessed(
|
|
1139
|
+
markFlagAsAccessed(61, "preparedTextCacheSize");
|
|
1122
1140
|
|
|
1123
1141
|
flagValue = currentProvider_->preparedTextCacheSize();
|
|
1124
1142
|
preparedTextCacheSize_ = flagValue;
|
|
@@ -1136,7 +1154,7 @@ bool ReactNativeFeatureFlagsAccessor::preventShadowTreeCommitExhaustion() {
|
|
|
1136
1154
|
// be accessing the provider multiple times but the end state of this
|
|
1137
1155
|
// instance and the returned flag value would be the same.
|
|
1138
1156
|
|
|
1139
|
-
markFlagAsAccessed(
|
|
1157
|
+
markFlagAsAccessed(62, "preventShadowTreeCommitExhaustion");
|
|
1140
1158
|
|
|
1141
1159
|
flagValue = currentProvider_->preventShadowTreeCommitExhaustion();
|
|
1142
1160
|
preventShadowTreeCommitExhaustion_ = flagValue;
|
|
@@ -1154,7 +1172,7 @@ bool ReactNativeFeatureFlagsAccessor::shouldPressibilityUseW3CPointerEventsForHo
|
|
|
1154
1172
|
// be accessing the provider multiple times but the end state of this
|
|
1155
1173
|
// instance and the returned flag value would be the same.
|
|
1156
1174
|
|
|
1157
|
-
markFlagAsAccessed(
|
|
1175
|
+
markFlagAsAccessed(63, "shouldPressibilityUseW3CPointerEventsForHover");
|
|
1158
1176
|
|
|
1159
1177
|
flagValue = currentProvider_->shouldPressibilityUseW3CPointerEventsForHover();
|
|
1160
1178
|
shouldPressibilityUseW3CPointerEventsForHover_ = flagValue;
|
|
@@ -1172,7 +1190,7 @@ bool ReactNativeFeatureFlagsAccessor::shouldTriggerResponderTransferOnScrollAndr
|
|
|
1172
1190
|
// be accessing the provider multiple times but the end state of this
|
|
1173
1191
|
// instance and the returned flag value would be the same.
|
|
1174
1192
|
|
|
1175
|
-
markFlagAsAccessed(
|
|
1193
|
+
markFlagAsAccessed(64, "shouldTriggerResponderTransferOnScrollAndroid");
|
|
1176
1194
|
|
|
1177
1195
|
flagValue = currentProvider_->shouldTriggerResponderTransferOnScrollAndroid();
|
|
1178
1196
|
shouldTriggerResponderTransferOnScrollAndroid_ = flagValue;
|
|
@@ -1190,7 +1208,7 @@ bool ReactNativeFeatureFlagsAccessor::skipActivityIdentityAssertionOnHostPause()
|
|
|
1190
1208
|
// be accessing the provider multiple times but the end state of this
|
|
1191
1209
|
// instance and the returned flag value would be the same.
|
|
1192
1210
|
|
|
1193
|
-
markFlagAsAccessed(
|
|
1211
|
+
markFlagAsAccessed(65, "skipActivityIdentityAssertionOnHostPause");
|
|
1194
1212
|
|
|
1195
1213
|
flagValue = currentProvider_->skipActivityIdentityAssertionOnHostPause();
|
|
1196
1214
|
skipActivityIdentityAssertionOnHostPause_ = flagValue;
|
|
@@ -1208,7 +1226,7 @@ bool ReactNativeFeatureFlagsAccessor::sweepActiveTouchOnChildNativeGesturesAndro
|
|
|
1208
1226
|
// be accessing the provider multiple times but the end state of this
|
|
1209
1227
|
// instance and the returned flag value would be the same.
|
|
1210
1228
|
|
|
1211
|
-
markFlagAsAccessed(
|
|
1229
|
+
markFlagAsAccessed(66, "sweepActiveTouchOnChildNativeGesturesAndroid");
|
|
1212
1230
|
|
|
1213
1231
|
flagValue = currentProvider_->sweepActiveTouchOnChildNativeGesturesAndroid();
|
|
1214
1232
|
sweepActiveTouchOnChildNativeGesturesAndroid_ = flagValue;
|
|
@@ -1226,7 +1244,7 @@ bool ReactNativeFeatureFlagsAccessor::traceTurboModulePromiseRejectionsOnAndroid
|
|
|
1226
1244
|
// be accessing the provider multiple times but the end state of this
|
|
1227
1245
|
// instance and the returned flag value would be the same.
|
|
1228
1246
|
|
|
1229
|
-
markFlagAsAccessed(
|
|
1247
|
+
markFlagAsAccessed(67, "traceTurboModulePromiseRejectionsOnAndroid");
|
|
1230
1248
|
|
|
1231
1249
|
flagValue = currentProvider_->traceTurboModulePromiseRejectionsOnAndroid();
|
|
1232
1250
|
traceTurboModulePromiseRejectionsOnAndroid_ = flagValue;
|
|
@@ -1244,7 +1262,7 @@ bool ReactNativeFeatureFlagsAccessor::updateRuntimeShadowNodeReferencesOnCommit(
|
|
|
1244
1262
|
// be accessing the provider multiple times but the end state of this
|
|
1245
1263
|
// instance and the returned flag value would be the same.
|
|
1246
1264
|
|
|
1247
|
-
markFlagAsAccessed(
|
|
1265
|
+
markFlagAsAccessed(68, "updateRuntimeShadowNodeReferencesOnCommit");
|
|
1248
1266
|
|
|
1249
1267
|
flagValue = currentProvider_->updateRuntimeShadowNodeReferencesOnCommit();
|
|
1250
1268
|
updateRuntimeShadowNodeReferencesOnCommit_ = flagValue;
|
|
@@ -1262,7 +1280,7 @@ bool ReactNativeFeatureFlagsAccessor::useAlwaysAvailableJSErrorHandling() {
|
|
|
1262
1280
|
// be accessing the provider multiple times but the end state of this
|
|
1263
1281
|
// instance and the returned flag value would be the same.
|
|
1264
1282
|
|
|
1265
|
-
markFlagAsAccessed(
|
|
1283
|
+
markFlagAsAccessed(69, "useAlwaysAvailableJSErrorHandling");
|
|
1266
1284
|
|
|
1267
1285
|
flagValue = currentProvider_->useAlwaysAvailableJSErrorHandling();
|
|
1268
1286
|
useAlwaysAvailableJSErrorHandling_ = flagValue;
|
|
@@ -1280,7 +1298,7 @@ bool ReactNativeFeatureFlagsAccessor::useFabricInterop() {
|
|
|
1280
1298
|
// be accessing the provider multiple times but the end state of this
|
|
1281
1299
|
// instance and the returned flag value would be the same.
|
|
1282
1300
|
|
|
1283
|
-
markFlagAsAccessed(
|
|
1301
|
+
markFlagAsAccessed(70, "useFabricInterop");
|
|
1284
1302
|
|
|
1285
1303
|
flagValue = currentProvider_->useFabricInterop();
|
|
1286
1304
|
useFabricInterop_ = flagValue;
|
|
@@ -1298,7 +1316,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeEqualsInNativeReadableArrayAndroi
|
|
|
1298
1316
|
// be accessing the provider multiple times but the end state of this
|
|
1299
1317
|
// instance and the returned flag value would be the same.
|
|
1300
1318
|
|
|
1301
|
-
markFlagAsAccessed(
|
|
1319
|
+
markFlagAsAccessed(71, "useNativeEqualsInNativeReadableArrayAndroid");
|
|
1302
1320
|
|
|
1303
1321
|
flagValue = currentProvider_->useNativeEqualsInNativeReadableArrayAndroid();
|
|
1304
1322
|
useNativeEqualsInNativeReadableArrayAndroid_ = flagValue;
|
|
@@ -1316,7 +1334,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeTransformHelperAndroid() {
|
|
|
1316
1334
|
// be accessing the provider multiple times but the end state of this
|
|
1317
1335
|
// instance and the returned flag value would be the same.
|
|
1318
1336
|
|
|
1319
|
-
markFlagAsAccessed(
|
|
1337
|
+
markFlagAsAccessed(72, "useNativeTransformHelperAndroid");
|
|
1320
1338
|
|
|
1321
1339
|
flagValue = currentProvider_->useNativeTransformHelperAndroid();
|
|
1322
1340
|
useNativeTransformHelperAndroid_ = flagValue;
|
|
@@ -1334,7 +1352,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() {
|
|
|
1334
1352
|
// be accessing the provider multiple times but the end state of this
|
|
1335
1353
|
// instance and the returned flag value would be the same.
|
|
1336
1354
|
|
|
1337
|
-
markFlagAsAccessed(
|
|
1355
|
+
markFlagAsAccessed(73, "useNativeViewConfigsInBridgelessMode");
|
|
1338
1356
|
|
|
1339
1357
|
flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
|
|
1340
1358
|
useNativeViewConfigsInBridgelessMode_ = flagValue;
|
|
@@ -1352,7 +1370,7 @@ bool ReactNativeFeatureFlagsAccessor::useOptimizedEventBatchingOnAndroid() {
|
|
|
1352
1370
|
// be accessing the provider multiple times but the end state of this
|
|
1353
1371
|
// instance and the returned flag value would be the same.
|
|
1354
1372
|
|
|
1355
|
-
markFlagAsAccessed(
|
|
1373
|
+
markFlagAsAccessed(74, "useOptimizedEventBatchingOnAndroid");
|
|
1356
1374
|
|
|
1357
1375
|
flagValue = currentProvider_->useOptimizedEventBatchingOnAndroid();
|
|
1358
1376
|
useOptimizedEventBatchingOnAndroid_ = flagValue;
|
|
@@ -1370,7 +1388,7 @@ bool ReactNativeFeatureFlagsAccessor::useRawPropsJsiValue() {
|
|
|
1370
1388
|
// be accessing the provider multiple times but the end state of this
|
|
1371
1389
|
// instance and the returned flag value would be the same.
|
|
1372
1390
|
|
|
1373
|
-
markFlagAsAccessed(
|
|
1391
|
+
markFlagAsAccessed(75, "useRawPropsJsiValue");
|
|
1374
1392
|
|
|
1375
1393
|
flagValue = currentProvider_->useRawPropsJsiValue();
|
|
1376
1394
|
useRawPropsJsiValue_ = flagValue;
|
|
@@ -1388,7 +1406,7 @@ bool ReactNativeFeatureFlagsAccessor::useShadowNodeStateOnClone() {
|
|
|
1388
1406
|
// be accessing the provider multiple times but the end state of this
|
|
1389
1407
|
// instance and the returned flag value would be the same.
|
|
1390
1408
|
|
|
1391
|
-
markFlagAsAccessed(
|
|
1409
|
+
markFlagAsAccessed(76, "useShadowNodeStateOnClone");
|
|
1392
1410
|
|
|
1393
1411
|
flagValue = currentProvider_->useShadowNodeStateOnClone();
|
|
1394
1412
|
useShadowNodeStateOnClone_ = flagValue;
|
|
@@ -1406,7 +1424,7 @@ bool ReactNativeFeatureFlagsAccessor::useSharedAnimatedBackend() {
|
|
|
1406
1424
|
// be accessing the provider multiple times but the end state of this
|
|
1407
1425
|
// instance and the returned flag value would be the same.
|
|
1408
1426
|
|
|
1409
|
-
markFlagAsAccessed(
|
|
1427
|
+
markFlagAsAccessed(77, "useSharedAnimatedBackend");
|
|
1410
1428
|
|
|
1411
1429
|
flagValue = currentProvider_->useSharedAnimatedBackend();
|
|
1412
1430
|
useSharedAnimatedBackend_ = flagValue;
|
|
@@ -1424,7 +1442,7 @@ bool ReactNativeFeatureFlagsAccessor::useTraitHiddenOnAndroid() {
|
|
|
1424
1442
|
// be accessing the provider multiple times but the end state of this
|
|
1425
1443
|
// instance and the returned flag value would be the same.
|
|
1426
1444
|
|
|
1427
|
-
markFlagAsAccessed(
|
|
1445
|
+
markFlagAsAccessed(78, "useTraitHiddenOnAndroid");
|
|
1428
1446
|
|
|
1429
1447
|
flagValue = currentProvider_->useTraitHiddenOnAndroid();
|
|
1430
1448
|
useTraitHiddenOnAndroid_ = flagValue;
|
|
@@ -1442,7 +1460,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModuleInterop() {
|
|
|
1442
1460
|
// be accessing the provider multiple times but the end state of this
|
|
1443
1461
|
// instance and the returned flag value would be the same.
|
|
1444
1462
|
|
|
1445
|
-
markFlagAsAccessed(
|
|
1463
|
+
markFlagAsAccessed(79, "useTurboModuleInterop");
|
|
1446
1464
|
|
|
1447
1465
|
flagValue = currentProvider_->useTurboModuleInterop();
|
|
1448
1466
|
useTurboModuleInterop_ = flagValue;
|
|
@@ -1460,7 +1478,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModules() {
|
|
|
1460
1478
|
// be accessing the provider multiple times but the end state of this
|
|
1461
1479
|
// instance and the returned flag value would be the same.
|
|
1462
1480
|
|
|
1463
|
-
markFlagAsAccessed(
|
|
1481
|
+
markFlagAsAccessed(80, "useTurboModules");
|
|
1464
1482
|
|
|
1465
1483
|
flagValue = currentProvider_->useTurboModules();
|
|
1466
1484
|
useTurboModules_ = flagValue;
|
|
@@ -1478,7 +1496,7 @@ double ReactNativeFeatureFlagsAccessor::viewCullingOutsetRatio() {
|
|
|
1478
1496
|
// be accessing the provider multiple times but the end state of this
|
|
1479
1497
|
// instance and the returned flag value would be the same.
|
|
1480
1498
|
|
|
1481
|
-
markFlagAsAccessed(
|
|
1499
|
+
markFlagAsAccessed(81, "viewCullingOutsetRatio");
|
|
1482
1500
|
|
|
1483
1501
|
flagValue = currentProvider_->viewCullingOutsetRatio();
|
|
1484
1502
|
viewCullingOutsetRatio_ = flagValue;
|
|
@@ -1496,7 +1514,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewHysteresisRatio() {
|
|
|
1496
1514
|
// be accessing the provider multiple times but the end state of this
|
|
1497
1515
|
// instance and the returned flag value would be the same.
|
|
1498
1516
|
|
|
1499
|
-
markFlagAsAccessed(
|
|
1517
|
+
markFlagAsAccessed(82, "virtualViewHysteresisRatio");
|
|
1500
1518
|
|
|
1501
1519
|
flagValue = currentProvider_->virtualViewHysteresisRatio();
|
|
1502
1520
|
virtualViewHysteresisRatio_ = flagValue;
|
|
@@ -1514,7 +1532,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewPrerenderRatio() {
|
|
|
1514
1532
|
// be accessing the provider multiple times but the end state of this
|
|
1515
1533
|
// instance and the returned flag value would be the same.
|
|
1516
1534
|
|
|
1517
|
-
markFlagAsAccessed(
|
|
1535
|
+
markFlagAsAccessed(83, "virtualViewPrerenderRatio");
|
|
1518
1536
|
|
|
1519
1537
|
flagValue = currentProvider_->virtualViewPrerenderRatio();
|
|
1520
1538
|
virtualViewPrerenderRatio_ = flagValue;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<5864ef780bdc795d47c096b16bf248b5>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -86,6 +86,7 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
86
86
|
bool enableVirtualViewWindowFocusDetection();
|
|
87
87
|
bool enableWebPerformanceAPIsByDefault();
|
|
88
88
|
bool fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
|
89
|
+
bool fuseboxAssertSingleHostState();
|
|
89
90
|
bool fuseboxEnabledRelease();
|
|
90
91
|
bool fuseboxNetworkInspectionEnabled();
|
|
91
92
|
bool hideOffscreenVirtualViewsOnIOS();
|
|
@@ -126,7 +127,7 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
126
127
|
std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
|
|
127
128
|
bool wasOverridden_;
|
|
128
129
|
|
|
129
|
-
std::array<std::atomic<const char*>,
|
|
130
|
+
std::array<std::atomic<const char*>, 84> accessedFeatureFlags_;
|
|
130
131
|
|
|
131
132
|
std::atomic<std::optional<bool>> commonTestFlag_;
|
|
132
133
|
std::atomic<std::optional<bool>> cdpInteractionMetricsEnabled_;
|
|
@@ -182,6 +183,7 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
182
183
|
std::atomic<std::optional<bool>> enableVirtualViewWindowFocusDetection_;
|
|
183
184
|
std::atomic<std::optional<bool>> enableWebPerformanceAPIsByDefault_;
|
|
184
185
|
std::atomic<std::optional<bool>> fixMappingOfEventPrioritiesBetweenFabricAndReact_;
|
|
186
|
+
std::atomic<std::optional<bool>> fuseboxAssertSingleHostState_;
|
|
185
187
|
std::atomic<std::optional<bool>> fuseboxEnabledRelease_;
|
|
186
188
|
std::atomic<std::optional<bool>> fuseboxNetworkInspectionEnabled_;
|
|
187
189
|
std::atomic<std::optional<bool>> hideOffscreenVirtualViewsOnIOS_;
|
|
@@ -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<<84f99a0fde50ce70a8da2762dbb1a7af>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -243,6 +243,10 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
|
|
|
243
243
|
return false;
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
+
bool fuseboxAssertSingleHostState() override {
|
|
247
|
+
return true;
|
|
248
|
+
}
|
|
249
|
+
|
|
246
250
|
bool fuseboxEnabledRelease() override {
|
|
247
251
|
return false;
|
|
248
252
|
}
|
|
@@ -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<<394e4281884f0d2519d680974d2ebfe5>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -531,6 +531,15 @@ class ReactNativeFeatureFlagsDynamicProvider : public ReactNativeFeatureFlagsDef
|
|
|
531
531
|
return ReactNativeFeatureFlagsDefaults::fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
|
532
532
|
}
|
|
533
533
|
|
|
534
|
+
bool fuseboxAssertSingleHostState() override {
|
|
535
|
+
auto value = values_["fuseboxAssertSingleHostState"];
|
|
536
|
+
if (!value.isNull()) {
|
|
537
|
+
return value.getBool();
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
return ReactNativeFeatureFlagsDefaults::fuseboxAssertSingleHostState();
|
|
541
|
+
}
|
|
542
|
+
|
|
534
543
|
bool fuseboxEnabledRelease() override {
|
|
535
544
|
auto value = values_["fuseboxEnabledRelease"];
|
|
536
545
|
if (!value.isNull()) {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<045cc4e4390d6ddf2ca252ff4c8f399d>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -79,6 +79,7 @@ class ReactNativeFeatureFlagsProvider {
|
|
|
79
79
|
virtual bool enableVirtualViewWindowFocusDetection() = 0;
|
|
80
80
|
virtual bool enableWebPerformanceAPIsByDefault() = 0;
|
|
81
81
|
virtual bool fixMappingOfEventPrioritiesBetweenFabricAndReact() = 0;
|
|
82
|
+
virtual bool fuseboxAssertSingleHostState() = 0;
|
|
82
83
|
virtual bool fuseboxEnabledRelease() = 0;
|
|
83
84
|
virtual bool fuseboxNetworkInspectionEnabled() = 0;
|
|
84
85
|
virtual bool hideOffscreenVirtualViewsOnIOS() = 0;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<368a69d36f8c7aef0103deb940751012>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -314,6 +314,11 @@ bool NativeReactNativeFeatureFlags::fixMappingOfEventPrioritiesBetweenFabricAndR
|
|
|
314
314
|
return ReactNativeFeatureFlags::fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
|
315
315
|
}
|
|
316
316
|
|
|
317
|
+
bool NativeReactNativeFeatureFlags::fuseboxAssertSingleHostState(
|
|
318
|
+
jsi::Runtime& /*runtime*/) {
|
|
319
|
+
return ReactNativeFeatureFlags::fuseboxAssertSingleHostState();
|
|
320
|
+
}
|
|
321
|
+
|
|
317
322
|
bool NativeReactNativeFeatureFlags::fuseboxEnabledRelease(
|
|
318
323
|
jsi::Runtime& /*runtime*/) {
|
|
319
324
|
return ReactNativeFeatureFlags::fuseboxEnabledRelease();
|
|
@@ -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<<5b7229fbb99de21237fa8d69da46a057>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -144,6 +144,8 @@ class NativeReactNativeFeatureFlags
|
|
|
144
144
|
|
|
145
145
|
bool fixMappingOfEventPrioritiesBetweenFabricAndReact(jsi::Runtime& runtime);
|
|
146
146
|
|
|
147
|
+
bool fuseboxAssertSingleHostState(jsi::Runtime& runtime);
|
|
148
|
+
|
|
147
149
|
bool fuseboxEnabledRelease(jsi::Runtime& runtime);
|
|
148
150
|
|
|
149
151
|
bool fuseboxNetworkInspectionEnabled(jsi::Runtime& runtime);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native",
|
|
3
|
-
"version": "0.83.0-rc.
|
|
3
|
+
"version": "0.83.0-rc.1",
|
|
4
4
|
"description": "A framework for building native apps using React",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -129,6 +129,7 @@
|
|
|
129
129
|
"scripts/xcode/ccache.conf",
|
|
130
130
|
"scripts/xcode/with-environment.sh",
|
|
131
131
|
"sdks/.hermesversion",
|
|
132
|
+
"sdks/.hermesv1version",
|
|
132
133
|
"sdks/hermes-engine",
|
|
133
134
|
"sdks/hermesc",
|
|
134
135
|
"settings.gradle.kts",
|
|
@@ -159,13 +160,13 @@
|
|
|
159
160
|
},
|
|
160
161
|
"dependencies": {
|
|
161
162
|
"@jest/create-cache-key-function": "^29.7.0",
|
|
162
|
-
"@react-native/assets-registry": "0.83.0-rc.
|
|
163
|
-
"@react-native/codegen": "0.83.0-rc.
|
|
164
|
-
"@react-native/community-cli-plugin": "0.83.0-rc.
|
|
165
|
-
"@react-native/gradle-plugin": "0.83.0-rc.
|
|
166
|
-
"@react-native/js-polyfills": "0.83.0-rc.
|
|
167
|
-
"@react-native/normalize-colors": "0.83.0-rc.
|
|
168
|
-
"@react-native/virtualized-lists": "0.83.0-rc.
|
|
163
|
+
"@react-native/assets-registry": "0.83.0-rc.1",
|
|
164
|
+
"@react-native/codegen": "0.83.0-rc.1",
|
|
165
|
+
"@react-native/community-cli-plugin": "0.83.0-rc.1",
|
|
166
|
+
"@react-native/gradle-plugin": "0.83.0-rc.1",
|
|
167
|
+
"@react-native/js-polyfills": "0.83.0-rc.1",
|
|
168
|
+
"@react-native/normalize-colors": "0.83.0-rc.1",
|
|
169
|
+
"@react-native/virtualized-lists": "0.83.0-rc.1",
|
|
169
170
|
"abort-controller": "^3.0.0",
|
|
170
171
|
"anser": "^1.4.9",
|
|
171
172
|
"ansi-regex": "^5.0.0",
|
|
@@ -271,9 +271,10 @@ class ReactNativeCoreUtils
|
|
|
271
271
|
return if dsym_bundles.empty?
|
|
272
272
|
|
|
273
273
|
# Define source path mappings - from absolute build paths to relative framework paths
|
|
274
|
+
# Expand the path relative to the installation root (project root, parent of ios/)
|
|
275
|
+
react_native_absolute_path = File.expand_path(@@react_native_path, Pod::Config.instance.installation_root)
|
|
274
276
|
mappings = [
|
|
275
|
-
|
|
276
|
-
["/Users/runner/work/react-native/react-native/packages/react-native", "#{File.expand_path(@@react_native_path)}"],
|
|
277
|
+
["/Users/runner/work/react-native/react-native/packages/react-native", react_native_absolute_path],
|
|
277
278
|
]
|
|
278
279
|
|
|
279
280
|
dsym_bundles.each do |dsym_path| begin
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
hermes-v250829098.0.3
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
HERMES_VERSION_NAME=0.14.0
|
|
2
|
-
HERMES_V1_VERSION_NAME=250829098.0.
|
|
2
|
+
HERMES_V1_VERSION_NAME=250829098.0.3
|
|
@@ -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<<472646b95362ace71083c0a471aa8878>>
|
|
8
8
|
* @flow strict
|
|
9
9
|
* @noformat
|
|
10
10
|
*/
|
|
@@ -104,6 +104,7 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
|
|
|
104
104
|
enableVirtualViewWindowFocusDetection: Getter<boolean>,
|
|
105
105
|
enableWebPerformanceAPIsByDefault: Getter<boolean>,
|
|
106
106
|
fixMappingOfEventPrioritiesBetweenFabricAndReact: Getter<boolean>,
|
|
107
|
+
fuseboxAssertSingleHostState: Getter<boolean>,
|
|
107
108
|
fuseboxEnabledRelease: Getter<boolean>,
|
|
108
109
|
fuseboxNetworkInspectionEnabled: Getter<boolean>,
|
|
109
110
|
hideOffscreenVirtualViewsOnIOS: Getter<boolean>,
|
|
@@ -430,6 +431,10 @@ export const enableWebPerformanceAPIsByDefault: Getter<boolean> = createNativeFl
|
|
|
430
431
|
* Uses the default event priority instead of the discreet event priority by default when dispatching events from Fabric to React.
|
|
431
432
|
*/
|
|
432
433
|
export const fixMappingOfEventPrioritiesBetweenFabricAndReact: Getter<boolean> = createNativeFlagGetter('fixMappingOfEventPrioritiesBetweenFabricAndReact', false);
|
|
434
|
+
/**
|
|
435
|
+
* 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`.
|
|
436
|
+
*/
|
|
437
|
+
export const fuseboxAssertSingleHostState: Getter<boolean> = createNativeFlagGetter('fuseboxAssertSingleHostState', true);
|
|
433
438
|
/**
|
|
434
439
|
* 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.
|
|
435
440
|
*/
|
|
@@ -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<<d51c41724cd4d10eb227f96847277e99>>
|
|
8
8
|
* @flow strict
|
|
9
9
|
* @noformat
|
|
10
10
|
*/
|
|
@@ -79,6 +79,7 @@ export interface Spec extends TurboModule {
|
|
|
79
79
|
+enableVirtualViewWindowFocusDetection?: () => boolean;
|
|
80
80
|
+enableWebPerformanceAPIsByDefault?: () => boolean;
|
|
81
81
|
+fixMappingOfEventPrioritiesBetweenFabricAndReact?: () => boolean;
|
|
82
|
+
+fuseboxAssertSingleHostState?: () => boolean;
|
|
82
83
|
+fuseboxEnabledRelease?: () => boolean;
|
|
83
84
|
+fuseboxNetworkInspectionEnabled?: () => boolean;
|
|
84
85
|
+hideOffscreenVirtualViewsOnIOS?: () => boolean;
|