react-native 0.83.8 → 0.83.9
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/FBReactNativeSpec/FBReactNativeSpecJSI.h +8 -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/CMakeLists.txt +7 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -1
- package/ReactCommon/React-Fabric.podspec +6 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +72 -54
- 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/defaults/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +6 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -1
- package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h +4 -0
- package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +66 -0
- package/package.json +8 -8
- package/scripts/react_native_pods.rb +1 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +6 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -1
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
package/React/Base/RCTVersion.m
CHANGED
|
@@ -260,6 +260,7 @@ protected:
|
|
|
260
260
|
methodMap_["enableLayoutAnimationsOnIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableLayoutAnimationsOnIOS};
|
|
261
261
|
methodMap_["enableMainQueueCoordinatorOnIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableMainQueueCoordinatorOnIOS};
|
|
262
262
|
methodMap_["enableModuleArgumentNSNullConversionIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableModuleArgumentNSNullConversionIOS};
|
|
263
|
+
methodMap_["enableMutationObserverByDefault"] = MethodMetadata {.argCount = 0, .invoker = __enableMutationObserverByDefault};
|
|
263
264
|
methodMap_["enableNativeCSSParsing"] = MethodMetadata {.argCount = 0, .invoker = __enableNativeCSSParsing};
|
|
264
265
|
methodMap_["enableNetworkEventReporting"] = MethodMetadata {.argCount = 0, .invoker = __enableNetworkEventReporting};
|
|
265
266
|
methodMap_["enablePreparedTextLayout"] = MethodMetadata {.argCount = 0, .invoker = __enablePreparedTextLayout};
|
|
@@ -575,6 +576,13 @@ private:
|
|
|
575
576
|
return bridging::callFromJs<bool>(rt, &T::enableModuleArgumentNSNullConversionIOS, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
576
577
|
}
|
|
577
578
|
|
|
579
|
+
static jsi::Value __enableMutationObserverByDefault(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
580
|
+
static_assert(
|
|
581
|
+
bridging::getParameterCount(&T::enableMutationObserverByDefault) == 1,
|
|
582
|
+
"Expected enableMutationObserverByDefault(...) to have 1 parameters");
|
|
583
|
+
return bridging::callFromJs<bool>(rt, &T::enableMutationObserverByDefault, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
584
|
+
}
|
|
585
|
+
|
|
578
586
|
static jsi::Value __enableNativeCSSParsing(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
579
587
|
static_assert(
|
|
580
588
|
bridging::getParameterCount(&T::enableNativeCSSParsing) == 1,
|
|
@@ -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<<b700a02133f84260647574d2f7a0f165>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -246,6 +246,12 @@ public object ReactNativeFeatureFlags {
|
|
|
246
246
|
@JvmStatic
|
|
247
247
|
public fun enableModuleArgumentNSNullConversionIOS(): Boolean = accessor.enableModuleArgumentNSNullConversionIOS()
|
|
248
248
|
|
|
249
|
+
/**
|
|
250
|
+
* Enables the MutationObserver Web API in React Native.
|
|
251
|
+
*/
|
|
252
|
+
@JvmStatic
|
|
253
|
+
public fun enableMutationObserverByDefault(): Boolean = accessor.enableMutationObserverByDefault()
|
|
254
|
+
|
|
249
255
|
/**
|
|
250
256
|
* Parse CSS strings using the Fabric CSS parser instead of ViewConfig processing
|
|
251
257
|
*/
|
|
@@ -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<<d9309c7f772c314b78b329e5d1ad7216>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -56,6 +56,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
56
56
|
private var enableLayoutAnimationsOnIOSCache: Boolean? = null
|
|
57
57
|
private var enableMainQueueCoordinatorOnIOSCache: Boolean? = null
|
|
58
58
|
private var enableModuleArgumentNSNullConversionIOSCache: Boolean? = null
|
|
59
|
+
private var enableMutationObserverByDefaultCache: Boolean? = null
|
|
59
60
|
private var enableNativeCSSParsingCache: Boolean? = null
|
|
60
61
|
private var enableNetworkEventReportingCache: Boolean? = null
|
|
61
62
|
private var enablePreparedTextLayoutCache: Boolean? = null
|
|
@@ -434,6 +435,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
434
435
|
return cached
|
|
435
436
|
}
|
|
436
437
|
|
|
438
|
+
override fun enableMutationObserverByDefault(): Boolean {
|
|
439
|
+
var cached = enableMutationObserverByDefaultCache
|
|
440
|
+
if (cached == null) {
|
|
441
|
+
cached = ReactNativeFeatureFlagsCxxInterop.enableMutationObserverByDefault()
|
|
442
|
+
enableMutationObserverByDefaultCache = cached
|
|
443
|
+
}
|
|
444
|
+
return cached
|
|
445
|
+
}
|
|
446
|
+
|
|
437
447
|
override fun enableNativeCSSParsing(): Boolean {
|
|
438
448
|
var cached = enableNativeCSSParsingCache
|
|
439
449
|
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<<1081d2d4673967a11e8f9ac287c89f02>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -100,6 +100,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
100
100
|
|
|
101
101
|
@DoNotStrip @JvmStatic public external fun enableModuleArgumentNSNullConversionIOS(): Boolean
|
|
102
102
|
|
|
103
|
+
@DoNotStrip @JvmStatic public external fun enableMutationObserverByDefault(): Boolean
|
|
104
|
+
|
|
103
105
|
@DoNotStrip @JvmStatic public external fun enableNativeCSSParsing(): Boolean
|
|
104
106
|
|
|
105
107
|
@DoNotStrip @JvmStatic public external fun enableNetworkEventReporting(): Boolean
|
|
@@ -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<<bc4cd6eafbf14cd91755900db1956238>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -95,6 +95,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
95
95
|
|
|
96
96
|
override fun enableModuleArgumentNSNullConversionIOS(): Boolean = false
|
|
97
97
|
|
|
98
|
+
override fun enableMutationObserverByDefault(): Boolean = false
|
|
99
|
+
|
|
98
100
|
override fun enableNativeCSSParsing(): Boolean = false
|
|
99
101
|
|
|
100
102
|
override fun enableNetworkEventReporting(): Boolean = true
|
|
@@ -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<<6deac57c7f55d6d7406f7dffb1abe487>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -60,6 +60,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
60
60
|
private var enableLayoutAnimationsOnIOSCache: Boolean? = null
|
|
61
61
|
private var enableMainQueueCoordinatorOnIOSCache: Boolean? = null
|
|
62
62
|
private var enableModuleArgumentNSNullConversionIOSCache: Boolean? = null
|
|
63
|
+
private var enableMutationObserverByDefaultCache: Boolean? = null
|
|
63
64
|
private var enableNativeCSSParsingCache: Boolean? = null
|
|
64
65
|
private var enableNetworkEventReportingCache: Boolean? = null
|
|
65
66
|
private var enablePreparedTextLayoutCache: Boolean? = null
|
|
@@ -474,6 +475,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
474
475
|
return cached
|
|
475
476
|
}
|
|
476
477
|
|
|
478
|
+
override fun enableMutationObserverByDefault(): Boolean {
|
|
479
|
+
var cached = enableMutationObserverByDefaultCache
|
|
480
|
+
if (cached == null) {
|
|
481
|
+
cached = currentProvider.enableMutationObserverByDefault()
|
|
482
|
+
accessedFeatureFlags.add("enableMutationObserverByDefault")
|
|
483
|
+
enableMutationObserverByDefaultCache = cached
|
|
484
|
+
}
|
|
485
|
+
return cached
|
|
486
|
+
}
|
|
487
|
+
|
|
477
488
|
override fun enableNativeCSSParsing(): Boolean {
|
|
478
489
|
var cached = enableNativeCSSParsingCache
|
|
479
490
|
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<<99e9d1149773ffdb867c2abed02b0302>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -95,6 +95,8 @@ public interface ReactNativeFeatureFlagsProvider {
|
|
|
95
95
|
|
|
96
96
|
@DoNotStrip public fun enableModuleArgumentNSNullConversionIOS(): Boolean
|
|
97
97
|
|
|
98
|
+
@DoNotStrip public fun enableMutationObserverByDefault(): Boolean
|
|
99
|
+
|
|
98
100
|
@DoNotStrip public fun enableNativeCSSParsing(): Boolean
|
|
99
101
|
|
|
100
102
|
@DoNotStrip public fun enableNetworkEventReporting(): Boolean
|
|
@@ -115,6 +115,7 @@ add_react_common_subdir(react/renderer/components/safeareaview)
|
|
|
115
115
|
add_react_common_subdir(react/renderer/leakchecker)
|
|
116
116
|
add_react_common_subdir(react/renderer/observers/events)
|
|
117
117
|
add_react_common_subdir(react/renderer/observers/intersection)
|
|
118
|
+
add_react_common_subdir(react/renderer/observers/mutation)
|
|
118
119
|
add_react_common_subdir(react/renderer/textlayoutmanager)
|
|
119
120
|
add_react_common_subdir(react/utils)
|
|
120
121
|
add_react_common_subdir(react/bridging)
|
|
@@ -126,6 +127,7 @@ add_react_common_subdir(react/nativemodule/featureflags)
|
|
|
126
127
|
add_react_common_subdir(react/nativemodule/microtasks)
|
|
127
128
|
add_react_common_subdir(react/nativemodule/idlecallbacks)
|
|
128
129
|
add_react_common_subdir(react/nativemodule/intersectionobserver)
|
|
130
|
+
add_react_common_subdir(react/nativemodule/mutationobserver)
|
|
129
131
|
add_react_common_subdir(react/nativemodule/webperformance)
|
|
130
132
|
add_react_common_subdir(react/networking)
|
|
131
133
|
add_react_common_subdir(jserrorhandler)
|
|
@@ -195,6 +197,7 @@ add_library(reactnative
|
|
|
195
197
|
$<TARGET_OBJECTS:react_nativemodule_idlecallbacks>
|
|
196
198
|
$<TARGET_OBJECTS:react_nativemodule_intersectionobserver>
|
|
197
199
|
$<TARGET_OBJECTS:react_nativemodule_microtasks>
|
|
200
|
+
$<TARGET_OBJECTS:react_nativemodule_mutationobserver>
|
|
198
201
|
$<TARGET_OBJECTS:react_nativemodule_webperformance>
|
|
199
202
|
$<TARGET_OBJECTS:react_networking>
|
|
200
203
|
$<TARGET_OBJECTS:react_newarchdefaults>
|
|
@@ -215,6 +218,7 @@ add_library(reactnative
|
|
|
215
218
|
$<TARGET_OBJECTS:react_renderer_mounting>
|
|
216
219
|
$<TARGET_OBJECTS:react_renderer_observers_events>
|
|
217
220
|
$<TARGET_OBJECTS:react_renderer_observers_intersection>
|
|
221
|
+
$<TARGET_OBJECTS:react_renderer_observers_mutation>
|
|
218
222
|
$<TARGET_OBJECTS:react_renderer_runtimescheduler>
|
|
219
223
|
$<TARGET_OBJECTS:react_renderer_scheduler>
|
|
220
224
|
$<TARGET_OBJECTS:react_renderer_telemetry>
|
|
@@ -288,6 +292,7 @@ target_include_directories(reactnative
|
|
|
288
292
|
$<TARGET_PROPERTY:react_nativemodule_idlecallbacks,INTERFACE_INCLUDE_DIRECTORIES>
|
|
289
293
|
$<TARGET_PROPERTY:react_nativemodule_intersectionobserver,INTERFACE_INCLUDE_DIRECTORIES>
|
|
290
294
|
$<TARGET_PROPERTY:react_nativemodule_microtasks,INTERFACE_INCLUDE_DIRECTORIES>
|
|
295
|
+
$<TARGET_PROPERTY:react_nativemodule_mutationobserver,INTERFACE_INCLUDE_DIRECTORIES>
|
|
291
296
|
$<TARGET_PROPERTY:react_nativemodule_webperformance,INTERFACE_INCLUDE_DIRECTORIES>
|
|
292
297
|
$<TARGET_PROPERTY:react_networking,INTERFACE_INCLUDE_DIRECTORIES>
|
|
293
298
|
$<TARGET_PROPERTY:react_newarchdefaults,INTERFACE_INCLUDE_DIRECTORIES>
|
|
@@ -309,6 +314,8 @@ target_include_directories(reactnative
|
|
|
309
314
|
$<TARGET_PROPERTY:react_renderer_mapbuffer,INTERFACE_INCLUDE_DIRECTORIES>
|
|
310
315
|
$<TARGET_PROPERTY:react_renderer_mounting,INTERFACE_INCLUDE_DIRECTORIES>
|
|
311
316
|
$<TARGET_PROPERTY:react_renderer_observers_events,INTERFACE_INCLUDE_DIRECTORIES>
|
|
317
|
+
$<TARGET_PROPERTY:react_renderer_observers_intersection,INTERFACE_INCLUDE_DIRECTORIES>
|
|
318
|
+
$<TARGET_PROPERTY:react_renderer_observers_mutation,INTERFACE_INCLUDE_DIRECTORIES>
|
|
312
319
|
$<TARGET_PROPERTY:react_renderer_runtimescheduler,INTERFACE_INCLUDE_DIRECTORIES>
|
|
313
320
|
$<TARGET_PROPERTY:react_renderer_scheduler,INTERFACE_INCLUDE_DIRECTORIES>
|
|
314
321
|
$<TARGET_PROPERTY:react_renderer_telemetry,INTERFACE_INCLUDE_DIRECTORIES>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<9e684659117f413b92bcd0469fae37ba>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -255,6 +255,12 @@ class ReactNativeFeatureFlagsJavaProvider
|
|
|
255
255
|
return method(javaProvider_);
|
|
256
256
|
}
|
|
257
257
|
|
|
258
|
+
bool enableMutationObserverByDefault() override {
|
|
259
|
+
static const auto method =
|
|
260
|
+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("enableMutationObserverByDefault");
|
|
261
|
+
return method(javaProvider_);
|
|
262
|
+
}
|
|
263
|
+
|
|
258
264
|
bool enableNativeCSSParsing() override {
|
|
259
265
|
static const auto method =
|
|
260
266
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("enableNativeCSSParsing");
|
|
@@ -757,6 +763,11 @@ bool JReactNativeFeatureFlagsCxxInterop::enableModuleArgumentNSNullConversionIOS
|
|
|
757
763
|
return ReactNativeFeatureFlags::enableModuleArgumentNSNullConversionIOS();
|
|
758
764
|
}
|
|
759
765
|
|
|
766
|
+
bool JReactNativeFeatureFlagsCxxInterop::enableMutationObserverByDefault(
|
|
767
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
768
|
+
return ReactNativeFeatureFlags::enableMutationObserverByDefault();
|
|
769
|
+
}
|
|
770
|
+
|
|
760
771
|
bool JReactNativeFeatureFlagsCxxInterop::enableNativeCSSParsing(
|
|
761
772
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
762
773
|
return ReactNativeFeatureFlags::enableNativeCSSParsing();
|
|
@@ -1161,6 +1172,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1161
1172
|
makeNativeMethod(
|
|
1162
1173
|
"enableModuleArgumentNSNullConversionIOS",
|
|
1163
1174
|
JReactNativeFeatureFlagsCxxInterop::enableModuleArgumentNSNullConversionIOS),
|
|
1175
|
+
makeNativeMethod(
|
|
1176
|
+
"enableMutationObserverByDefault",
|
|
1177
|
+
JReactNativeFeatureFlagsCxxInterop::enableMutationObserverByDefault),
|
|
1164
1178
|
makeNativeMethod(
|
|
1165
1179
|
"enableNativeCSSParsing",
|
|
1166
1180
|
JReactNativeFeatureFlagsCxxInterop::enableNativeCSSParsing),
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<bf1f3b156e29c081684a9bada7e81a4b>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -138,6 +138,9 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
138
138
|
static bool enableModuleArgumentNSNullConversionIOS(
|
|
139
139
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
140
140
|
|
|
141
|
+
static bool enableMutationObserverByDefault(
|
|
142
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
143
|
+
|
|
141
144
|
static bool enableNativeCSSParsing(
|
|
142
145
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
143
146
|
|
|
@@ -185,6 +185,12 @@ Pod::Spec.new do |s|
|
|
|
185
185
|
sss.exclude_files = "react/renderer/observers/intersection/tests"
|
|
186
186
|
sss.header_dir = "react/renderer/observers/intersection"
|
|
187
187
|
end
|
|
188
|
+
|
|
189
|
+
ss.subspec "mutation" do |sss|
|
|
190
|
+
sss.source_files = podspec_sources("react/renderer/observers/mutation/**/*.{m,mm,cpp,h}", "react/renderer/observers/mutation/**/*.h")
|
|
191
|
+
sss.exclude_files = "react/renderer/observers/mutation/tests"
|
|
192
|
+
sss.header_dir = "react/renderer/observers/mutation"
|
|
193
|
+
end
|
|
188
194
|
end
|
|
189
195
|
|
|
190
196
|
s.subspec "templateprocessor" do |ss|
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
|
|
15
15
|
#define REACT_NATIVE_VERSION_MAJOR 0
|
|
16
16
|
#define REACT_NATIVE_VERSION_MINOR 83
|
|
17
|
-
#define REACT_NATIVE_VERSION_PATCH
|
|
17
|
+
#define REACT_NATIVE_VERSION_PATCH 9
|
|
18
18
|
|
|
19
19
|
namespace facebook::react {
|
|
20
20
|
|
|
21
21
|
constexpr struct {
|
|
22
22
|
int32_t Major = 0;
|
|
23
23
|
int32_t Minor = 83;
|
|
24
|
-
int32_t Patch =
|
|
24
|
+
int32_t Patch = 9;
|
|
25
25
|
std::string_view Prerelease = "";
|
|
26
26
|
} ReactNativeVersion;
|
|
27
27
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<c7d08e6d97766cbb68db8772611530b5>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -170,6 +170,10 @@ bool ReactNativeFeatureFlags::enableModuleArgumentNSNullConversionIOS() {
|
|
|
170
170
|
return getAccessor().enableModuleArgumentNSNullConversionIOS();
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
+
bool ReactNativeFeatureFlags::enableMutationObserverByDefault() {
|
|
174
|
+
return getAccessor().enableMutationObserverByDefault();
|
|
175
|
+
}
|
|
176
|
+
|
|
173
177
|
bool ReactNativeFeatureFlags::enableNativeCSSParsing() {
|
|
174
178
|
return getAccessor().enableNativeCSSParsing();
|
|
175
179
|
}
|
|
@@ -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<<f8bd95ee62cd377756a0ca08caf3027a>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -219,6 +219,11 @@ class ReactNativeFeatureFlags {
|
|
|
219
219
|
*/
|
|
220
220
|
RN_EXPORT static bool enableModuleArgumentNSNullConversionIOS();
|
|
221
221
|
|
|
222
|
+
/**
|
|
223
|
+
* Enables the MutationObserver Web API in React Native.
|
|
224
|
+
*/
|
|
225
|
+
RN_EXPORT static bool enableMutationObserverByDefault();
|
|
226
|
+
|
|
222
227
|
/**
|
|
223
228
|
* Parse CSS strings using the Fabric CSS parser instead of ViewConfig processing
|
|
224
229
|
*/
|
|
@@ -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<<9c1e88ee388502478c3c1625b22178aa>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -677,6 +677,24 @@ bool ReactNativeFeatureFlagsAccessor::enableModuleArgumentNSNullConversionIOS()
|
|
|
677
677
|
return flagValue.value();
|
|
678
678
|
}
|
|
679
679
|
|
|
680
|
+
bool ReactNativeFeatureFlagsAccessor::enableMutationObserverByDefault() {
|
|
681
|
+
auto flagValue = enableMutationObserverByDefault_.load();
|
|
682
|
+
|
|
683
|
+
if (!flagValue.has_value()) {
|
|
684
|
+
// This block is not exclusive but it is not necessary.
|
|
685
|
+
// If multiple threads try to initialize the feature flag, we would only
|
|
686
|
+
// be accessing the provider multiple times but the end state of this
|
|
687
|
+
// instance and the returned flag value would be the same.
|
|
688
|
+
|
|
689
|
+
markFlagAsAccessed(36, "enableMutationObserverByDefault");
|
|
690
|
+
|
|
691
|
+
flagValue = currentProvider_->enableMutationObserverByDefault();
|
|
692
|
+
enableMutationObserverByDefault_ = flagValue;
|
|
693
|
+
}
|
|
694
|
+
|
|
695
|
+
return flagValue.value();
|
|
696
|
+
}
|
|
697
|
+
|
|
680
698
|
bool ReactNativeFeatureFlagsAccessor::enableNativeCSSParsing() {
|
|
681
699
|
auto flagValue = enableNativeCSSParsing_.load();
|
|
682
700
|
|
|
@@ -686,7 +704,7 @@ bool ReactNativeFeatureFlagsAccessor::enableNativeCSSParsing() {
|
|
|
686
704
|
// be accessing the provider multiple times but the end state of this
|
|
687
705
|
// instance and the returned flag value would be the same.
|
|
688
706
|
|
|
689
|
-
markFlagAsAccessed(
|
|
707
|
+
markFlagAsAccessed(37, "enableNativeCSSParsing");
|
|
690
708
|
|
|
691
709
|
flagValue = currentProvider_->enableNativeCSSParsing();
|
|
692
710
|
enableNativeCSSParsing_ = flagValue;
|
|
@@ -704,7 +722,7 @@ bool ReactNativeFeatureFlagsAccessor::enableNetworkEventReporting() {
|
|
|
704
722
|
// be accessing the provider multiple times but the end state of this
|
|
705
723
|
// instance and the returned flag value would be the same.
|
|
706
724
|
|
|
707
|
-
markFlagAsAccessed(
|
|
725
|
+
markFlagAsAccessed(38, "enableNetworkEventReporting");
|
|
708
726
|
|
|
709
727
|
flagValue = currentProvider_->enableNetworkEventReporting();
|
|
710
728
|
enableNetworkEventReporting_ = flagValue;
|
|
@@ -722,7 +740,7 @@ bool ReactNativeFeatureFlagsAccessor::enablePreparedTextLayout() {
|
|
|
722
740
|
// be accessing the provider multiple times but the end state of this
|
|
723
741
|
// instance and the returned flag value would be the same.
|
|
724
742
|
|
|
725
|
-
markFlagAsAccessed(
|
|
743
|
+
markFlagAsAccessed(39, "enablePreparedTextLayout");
|
|
726
744
|
|
|
727
745
|
flagValue = currentProvider_->enablePreparedTextLayout();
|
|
728
746
|
enablePreparedTextLayout_ = flagValue;
|
|
@@ -740,7 +758,7 @@ bool ReactNativeFeatureFlagsAccessor::enablePropsUpdateReconciliationAndroid() {
|
|
|
740
758
|
// be accessing the provider multiple times but the end state of this
|
|
741
759
|
// instance and the returned flag value would be the same.
|
|
742
760
|
|
|
743
|
-
markFlagAsAccessed(
|
|
761
|
+
markFlagAsAccessed(40, "enablePropsUpdateReconciliationAndroid");
|
|
744
762
|
|
|
745
763
|
flagValue = currentProvider_->enablePropsUpdateReconciliationAndroid();
|
|
746
764
|
enablePropsUpdateReconciliationAndroid_ = flagValue;
|
|
@@ -758,7 +776,7 @@ bool ReactNativeFeatureFlagsAccessor::enableResourceTimingAPI() {
|
|
|
758
776
|
// be accessing the provider multiple times but the end state of this
|
|
759
777
|
// instance and the returned flag value would be the same.
|
|
760
778
|
|
|
761
|
-
markFlagAsAccessed(
|
|
779
|
+
markFlagAsAccessed(41, "enableResourceTimingAPI");
|
|
762
780
|
|
|
763
781
|
flagValue = currentProvider_->enableResourceTimingAPI();
|
|
764
782
|
enableResourceTimingAPI_ = flagValue;
|
|
@@ -776,7 +794,7 @@ bool ReactNativeFeatureFlagsAccessor::enableSwiftUIBasedFilters() {
|
|
|
776
794
|
// be accessing the provider multiple times but the end state of this
|
|
777
795
|
// instance and the returned flag value would be the same.
|
|
778
796
|
|
|
779
|
-
markFlagAsAccessed(
|
|
797
|
+
markFlagAsAccessed(42, "enableSwiftUIBasedFilters");
|
|
780
798
|
|
|
781
799
|
flagValue = currentProvider_->enableSwiftUIBasedFilters();
|
|
782
800
|
enableSwiftUIBasedFilters_ = flagValue;
|
|
@@ -794,7 +812,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewCulling() {
|
|
|
794
812
|
// be accessing the provider multiple times but the end state of this
|
|
795
813
|
// instance and the returned flag value would be the same.
|
|
796
814
|
|
|
797
|
-
markFlagAsAccessed(
|
|
815
|
+
markFlagAsAccessed(43, "enableViewCulling");
|
|
798
816
|
|
|
799
817
|
flagValue = currentProvider_->enableViewCulling();
|
|
800
818
|
enableViewCulling_ = flagValue;
|
|
@@ -812,7 +830,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecycling() {
|
|
|
812
830
|
// be accessing the provider multiple times but the end state of this
|
|
813
831
|
// instance and the returned flag value would be the same.
|
|
814
832
|
|
|
815
|
-
markFlagAsAccessed(
|
|
833
|
+
markFlagAsAccessed(44, "enableViewRecycling");
|
|
816
834
|
|
|
817
835
|
flagValue = currentProvider_->enableViewRecycling();
|
|
818
836
|
enableViewRecycling_ = flagValue;
|
|
@@ -830,7 +848,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecyclingForImage() {
|
|
|
830
848
|
// be accessing the provider multiple times but the end state of this
|
|
831
849
|
// instance and the returned flag value would be the same.
|
|
832
850
|
|
|
833
|
-
markFlagAsAccessed(
|
|
851
|
+
markFlagAsAccessed(45, "enableViewRecyclingForImage");
|
|
834
852
|
|
|
835
853
|
flagValue = currentProvider_->enableViewRecyclingForImage();
|
|
836
854
|
enableViewRecyclingForImage_ = flagValue;
|
|
@@ -848,7 +866,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecyclingForScrollView() {
|
|
|
848
866
|
// be accessing the provider multiple times but the end state of this
|
|
849
867
|
// instance and the returned flag value would be the same.
|
|
850
868
|
|
|
851
|
-
markFlagAsAccessed(
|
|
869
|
+
markFlagAsAccessed(46, "enableViewRecyclingForScrollView");
|
|
852
870
|
|
|
853
871
|
flagValue = currentProvider_->enableViewRecyclingForScrollView();
|
|
854
872
|
enableViewRecyclingForScrollView_ = flagValue;
|
|
@@ -866,7 +884,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecyclingForText() {
|
|
|
866
884
|
// be accessing the provider multiple times but the end state of this
|
|
867
885
|
// instance and the returned flag value would be the same.
|
|
868
886
|
|
|
869
|
-
markFlagAsAccessed(
|
|
887
|
+
markFlagAsAccessed(47, "enableViewRecyclingForText");
|
|
870
888
|
|
|
871
889
|
flagValue = currentProvider_->enableViewRecyclingForText();
|
|
872
890
|
enableViewRecyclingForText_ = flagValue;
|
|
@@ -884,7 +902,7 @@ bool ReactNativeFeatureFlagsAccessor::enableViewRecyclingForView() {
|
|
|
884
902
|
// be accessing the provider multiple times but the end state of this
|
|
885
903
|
// instance and the returned flag value would be the same.
|
|
886
904
|
|
|
887
|
-
markFlagAsAccessed(
|
|
905
|
+
markFlagAsAccessed(48, "enableViewRecyclingForView");
|
|
888
906
|
|
|
889
907
|
flagValue = currentProvider_->enableViewRecyclingForView();
|
|
890
908
|
enableViewRecyclingForView_ = flagValue;
|
|
@@ -902,7 +920,7 @@ bool ReactNativeFeatureFlagsAccessor::enableVirtualViewClippingWithoutScrollView
|
|
|
902
920
|
// be accessing the provider multiple times but the end state of this
|
|
903
921
|
// instance and the returned flag value would be the same.
|
|
904
922
|
|
|
905
|
-
markFlagAsAccessed(
|
|
923
|
+
markFlagAsAccessed(49, "enableVirtualViewClippingWithoutScrollViewClipping");
|
|
906
924
|
|
|
907
925
|
flagValue = currentProvider_->enableVirtualViewClippingWithoutScrollViewClipping();
|
|
908
926
|
enableVirtualViewClippingWithoutScrollViewClipping_ = flagValue;
|
|
@@ -920,7 +938,7 @@ bool ReactNativeFeatureFlagsAccessor::enableVirtualViewContainerStateExperimenta
|
|
|
920
938
|
// be accessing the provider multiple times but the end state of this
|
|
921
939
|
// instance and the returned flag value would be the same.
|
|
922
940
|
|
|
923
|
-
markFlagAsAccessed(
|
|
941
|
+
markFlagAsAccessed(50, "enableVirtualViewContainerStateExperimental");
|
|
924
942
|
|
|
925
943
|
flagValue = currentProvider_->enableVirtualViewContainerStateExperimental();
|
|
926
944
|
enableVirtualViewContainerStateExperimental_ = flagValue;
|
|
@@ -938,7 +956,7 @@ bool ReactNativeFeatureFlagsAccessor::enableVirtualViewDebugFeatures() {
|
|
|
938
956
|
// be accessing the provider multiple times but the end state of this
|
|
939
957
|
// instance and the returned flag value would be the same.
|
|
940
958
|
|
|
941
|
-
markFlagAsAccessed(
|
|
959
|
+
markFlagAsAccessed(51, "enableVirtualViewDebugFeatures");
|
|
942
960
|
|
|
943
961
|
flagValue = currentProvider_->enableVirtualViewDebugFeatures();
|
|
944
962
|
enableVirtualViewDebugFeatures_ = flagValue;
|
|
@@ -956,7 +974,7 @@ bool ReactNativeFeatureFlagsAccessor::enableVirtualViewRenderState() {
|
|
|
956
974
|
// be accessing the provider multiple times but the end state of this
|
|
957
975
|
// instance and the returned flag value would be the same.
|
|
958
976
|
|
|
959
|
-
markFlagAsAccessed(
|
|
977
|
+
markFlagAsAccessed(52, "enableVirtualViewRenderState");
|
|
960
978
|
|
|
961
979
|
flagValue = currentProvider_->enableVirtualViewRenderState();
|
|
962
980
|
enableVirtualViewRenderState_ = flagValue;
|
|
@@ -974,7 +992,7 @@ bool ReactNativeFeatureFlagsAccessor::enableVirtualViewWindowFocusDetection() {
|
|
|
974
992
|
// be accessing the provider multiple times but the end state of this
|
|
975
993
|
// instance and the returned flag value would be the same.
|
|
976
994
|
|
|
977
|
-
markFlagAsAccessed(
|
|
995
|
+
markFlagAsAccessed(53, "enableVirtualViewWindowFocusDetection");
|
|
978
996
|
|
|
979
997
|
flagValue = currentProvider_->enableVirtualViewWindowFocusDetection();
|
|
980
998
|
enableVirtualViewWindowFocusDetection_ = flagValue;
|
|
@@ -992,7 +1010,7 @@ bool ReactNativeFeatureFlagsAccessor::enableWebPerformanceAPIsByDefault() {
|
|
|
992
1010
|
// be accessing the provider multiple times but the end state of this
|
|
993
1011
|
// instance and the returned flag value would be the same.
|
|
994
1012
|
|
|
995
|
-
markFlagAsAccessed(
|
|
1013
|
+
markFlagAsAccessed(54, "enableWebPerformanceAPIsByDefault");
|
|
996
1014
|
|
|
997
1015
|
flagValue = currentProvider_->enableWebPerformanceAPIsByDefault();
|
|
998
1016
|
enableWebPerformanceAPIsByDefault_ = flagValue;
|
|
@@ -1010,7 +1028,7 @@ bool ReactNativeFeatureFlagsAccessor::fixMappingOfEventPrioritiesBetweenFabricAn
|
|
|
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, "fixMappingOfEventPrioritiesBetweenFabricAndReact");
|
|
1014
1032
|
|
|
1015
1033
|
flagValue = currentProvider_->fixMappingOfEventPrioritiesBetweenFabricAndReact();
|
|
1016
1034
|
fixMappingOfEventPrioritiesBetweenFabricAndReact_ = flagValue;
|
|
@@ -1028,7 +1046,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxAssertSingleHostState() {
|
|
|
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, "fuseboxAssertSingleHostState");
|
|
1032
1050
|
|
|
1033
1051
|
flagValue = currentProvider_->fuseboxAssertSingleHostState();
|
|
1034
1052
|
fuseboxAssertSingleHostState_ = flagValue;
|
|
@@ -1046,7 +1064,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxEnabledRelease() {
|
|
|
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, "fuseboxEnabledRelease");
|
|
1050
1068
|
|
|
1051
1069
|
flagValue = currentProvider_->fuseboxEnabledRelease();
|
|
1052
1070
|
fuseboxEnabledRelease_ = flagValue;
|
|
@@ -1064,7 +1082,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxFrameRecordingEnabled() {
|
|
|
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, "fuseboxFrameRecordingEnabled");
|
|
1068
1086
|
|
|
1069
1087
|
flagValue = currentProvider_->fuseboxFrameRecordingEnabled();
|
|
1070
1088
|
fuseboxFrameRecordingEnabled_ = flagValue;
|
|
@@ -1082,7 +1100,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxNetworkInspectionEnabled() {
|
|
|
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, "fuseboxNetworkInspectionEnabled");
|
|
1086
1104
|
|
|
1087
1105
|
flagValue = currentProvider_->fuseboxNetworkInspectionEnabled();
|
|
1088
1106
|
fuseboxNetworkInspectionEnabled_ = flagValue;
|
|
@@ -1100,7 +1118,7 @@ bool ReactNativeFeatureFlagsAccessor::fuseboxScreenshotCaptureEnabled() {
|
|
|
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, "fuseboxScreenshotCaptureEnabled");
|
|
1104
1122
|
|
|
1105
1123
|
flagValue = currentProvider_->fuseboxScreenshotCaptureEnabled();
|
|
1106
1124
|
fuseboxScreenshotCaptureEnabled_ = flagValue;
|
|
@@ -1118,7 +1136,7 @@ bool ReactNativeFeatureFlagsAccessor::hideOffscreenVirtualViewsOnIOS() {
|
|
|
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, "hideOffscreenVirtualViewsOnIOS");
|
|
1122
1140
|
|
|
1123
1141
|
flagValue = currentProvider_->hideOffscreenVirtualViewsOnIOS();
|
|
1124
1142
|
hideOffscreenVirtualViewsOnIOS_ = flagValue;
|
|
@@ -1136,7 +1154,7 @@ bool ReactNativeFeatureFlagsAccessor::overrideBySynchronousMountPropsAtMountingA
|
|
|
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, "overrideBySynchronousMountPropsAtMountingAndroid");
|
|
1140
1158
|
|
|
1141
1159
|
flagValue = currentProvider_->overrideBySynchronousMountPropsAtMountingAndroid();
|
|
1142
1160
|
overrideBySynchronousMountPropsAtMountingAndroid_ = flagValue;
|
|
@@ -1154,7 +1172,7 @@ bool ReactNativeFeatureFlagsAccessor::perfIssuesEnabled() {
|
|
|
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, "perfIssuesEnabled");
|
|
1158
1176
|
|
|
1159
1177
|
flagValue = currentProvider_->perfIssuesEnabled();
|
|
1160
1178
|
perfIssuesEnabled_ = flagValue;
|
|
@@ -1172,7 +1190,7 @@ bool ReactNativeFeatureFlagsAccessor::perfMonitorV2Enabled() {
|
|
|
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, "perfMonitorV2Enabled");
|
|
1176
1194
|
|
|
1177
1195
|
flagValue = currentProvider_->perfMonitorV2Enabled();
|
|
1178
1196
|
perfMonitorV2Enabled_ = flagValue;
|
|
@@ -1190,7 +1208,7 @@ double ReactNativeFeatureFlagsAccessor::preparedTextCacheSize() {
|
|
|
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, "preparedTextCacheSize");
|
|
1194
1212
|
|
|
1195
1213
|
flagValue = currentProvider_->preparedTextCacheSize();
|
|
1196
1214
|
preparedTextCacheSize_ = flagValue;
|
|
@@ -1208,7 +1226,7 @@ bool ReactNativeFeatureFlagsAccessor::preventShadowTreeCommitExhaustion() {
|
|
|
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, "preventShadowTreeCommitExhaustion");
|
|
1212
1230
|
|
|
1213
1231
|
flagValue = currentProvider_->preventShadowTreeCommitExhaustion();
|
|
1214
1232
|
preventShadowTreeCommitExhaustion_ = flagValue;
|
|
@@ -1226,7 +1244,7 @@ bool ReactNativeFeatureFlagsAccessor::redBoxV2Android() {
|
|
|
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, "redBoxV2Android");
|
|
1230
1248
|
|
|
1231
1249
|
flagValue = currentProvider_->redBoxV2Android();
|
|
1232
1250
|
redBoxV2Android_ = flagValue;
|
|
@@ -1244,7 +1262,7 @@ bool ReactNativeFeatureFlagsAccessor::redBoxV2IOS() {
|
|
|
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, "redBoxV2IOS");
|
|
1248
1266
|
|
|
1249
1267
|
flagValue = currentProvider_->redBoxV2IOS();
|
|
1250
1268
|
redBoxV2IOS_ = flagValue;
|
|
@@ -1262,7 +1280,7 @@ bool ReactNativeFeatureFlagsAccessor::shouldPressibilityUseW3CPointerEventsForHo
|
|
|
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, "shouldPressibilityUseW3CPointerEventsForHover");
|
|
1266
1284
|
|
|
1267
1285
|
flagValue = currentProvider_->shouldPressibilityUseW3CPointerEventsForHover();
|
|
1268
1286
|
shouldPressibilityUseW3CPointerEventsForHover_ = flagValue;
|
|
@@ -1280,7 +1298,7 @@ bool ReactNativeFeatureFlagsAccessor::shouldTriggerResponderTransferOnScrollAndr
|
|
|
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, "shouldTriggerResponderTransferOnScrollAndroid");
|
|
1284
1302
|
|
|
1285
1303
|
flagValue = currentProvider_->shouldTriggerResponderTransferOnScrollAndroid();
|
|
1286
1304
|
shouldTriggerResponderTransferOnScrollAndroid_ = flagValue;
|
|
@@ -1298,7 +1316,7 @@ bool ReactNativeFeatureFlagsAccessor::skipActivityIdentityAssertionOnHostPause()
|
|
|
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, "skipActivityIdentityAssertionOnHostPause");
|
|
1302
1320
|
|
|
1303
1321
|
flagValue = currentProvider_->skipActivityIdentityAssertionOnHostPause();
|
|
1304
1322
|
skipActivityIdentityAssertionOnHostPause_ = flagValue;
|
|
@@ -1316,7 +1334,7 @@ bool ReactNativeFeatureFlagsAccessor::sweepActiveTouchOnChildNativeGesturesAndro
|
|
|
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, "sweepActiveTouchOnChildNativeGesturesAndroid");
|
|
1320
1338
|
|
|
1321
1339
|
flagValue = currentProvider_->sweepActiveTouchOnChildNativeGesturesAndroid();
|
|
1322
1340
|
sweepActiveTouchOnChildNativeGesturesAndroid_ = flagValue;
|
|
@@ -1334,7 +1352,7 @@ bool ReactNativeFeatureFlagsAccessor::traceTurboModulePromiseRejectionsOnAndroid
|
|
|
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, "traceTurboModulePromiseRejectionsOnAndroid");
|
|
1338
1356
|
|
|
1339
1357
|
flagValue = currentProvider_->traceTurboModulePromiseRejectionsOnAndroid();
|
|
1340
1358
|
traceTurboModulePromiseRejectionsOnAndroid_ = flagValue;
|
|
@@ -1352,7 +1370,7 @@ bool ReactNativeFeatureFlagsAccessor::updateRuntimeShadowNodeReferencesOnCommit(
|
|
|
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, "updateRuntimeShadowNodeReferencesOnCommit");
|
|
1356
1374
|
|
|
1357
1375
|
flagValue = currentProvider_->updateRuntimeShadowNodeReferencesOnCommit();
|
|
1358
1376
|
updateRuntimeShadowNodeReferencesOnCommit_ = flagValue;
|
|
@@ -1370,7 +1388,7 @@ bool ReactNativeFeatureFlagsAccessor::useAlwaysAvailableJSErrorHandling() {
|
|
|
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, "useAlwaysAvailableJSErrorHandling");
|
|
1374
1392
|
|
|
1375
1393
|
flagValue = currentProvider_->useAlwaysAvailableJSErrorHandling();
|
|
1376
1394
|
useAlwaysAvailableJSErrorHandling_ = flagValue;
|
|
@@ -1388,7 +1406,7 @@ bool ReactNativeFeatureFlagsAccessor::useFabricInterop() {
|
|
|
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, "useFabricInterop");
|
|
1392
1410
|
|
|
1393
1411
|
flagValue = currentProvider_->useFabricInterop();
|
|
1394
1412
|
useFabricInterop_ = flagValue;
|
|
@@ -1406,7 +1424,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeEqualsInNativeReadableArrayAndroi
|
|
|
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, "useNativeEqualsInNativeReadableArrayAndroid");
|
|
1410
1428
|
|
|
1411
1429
|
flagValue = currentProvider_->useNativeEqualsInNativeReadableArrayAndroid();
|
|
1412
1430
|
useNativeEqualsInNativeReadableArrayAndroid_ = flagValue;
|
|
@@ -1424,7 +1442,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeTransformHelperAndroid() {
|
|
|
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, "useNativeTransformHelperAndroid");
|
|
1428
1446
|
|
|
1429
1447
|
flagValue = currentProvider_->useNativeTransformHelperAndroid();
|
|
1430
1448
|
useNativeTransformHelperAndroid_ = flagValue;
|
|
@@ -1442,7 +1460,7 @@ bool ReactNativeFeatureFlagsAccessor::useNativeViewConfigsInBridgelessMode() {
|
|
|
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, "useNativeViewConfigsInBridgelessMode");
|
|
1446
1464
|
|
|
1447
1465
|
flagValue = currentProvider_->useNativeViewConfigsInBridgelessMode();
|
|
1448
1466
|
useNativeViewConfigsInBridgelessMode_ = flagValue;
|
|
@@ -1460,7 +1478,7 @@ bool ReactNativeFeatureFlagsAccessor::useOptimizedEventBatchingOnAndroid() {
|
|
|
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, "useOptimizedEventBatchingOnAndroid");
|
|
1464
1482
|
|
|
1465
1483
|
flagValue = currentProvider_->useOptimizedEventBatchingOnAndroid();
|
|
1466
1484
|
useOptimizedEventBatchingOnAndroid_ = flagValue;
|
|
@@ -1478,7 +1496,7 @@ bool ReactNativeFeatureFlagsAccessor::useRawPropsJsiValue() {
|
|
|
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, "useRawPropsJsiValue");
|
|
1482
1500
|
|
|
1483
1501
|
flagValue = currentProvider_->useRawPropsJsiValue();
|
|
1484
1502
|
useRawPropsJsiValue_ = flagValue;
|
|
@@ -1496,7 +1514,7 @@ bool ReactNativeFeatureFlagsAccessor::useShadowNodeStateOnClone() {
|
|
|
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, "useShadowNodeStateOnClone");
|
|
1500
1518
|
|
|
1501
1519
|
flagValue = currentProvider_->useShadowNodeStateOnClone();
|
|
1502
1520
|
useShadowNodeStateOnClone_ = flagValue;
|
|
@@ -1514,7 +1532,7 @@ bool ReactNativeFeatureFlagsAccessor::useSharedAnimatedBackend() {
|
|
|
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, "useSharedAnimatedBackend");
|
|
1518
1536
|
|
|
1519
1537
|
flagValue = currentProvider_->useSharedAnimatedBackend();
|
|
1520
1538
|
useSharedAnimatedBackend_ = flagValue;
|
|
@@ -1532,7 +1550,7 @@ bool ReactNativeFeatureFlagsAccessor::useTraitHiddenOnAndroid() {
|
|
|
1532
1550
|
// be accessing the provider multiple times but the end state of this
|
|
1533
1551
|
// instance and the returned flag value would be the same.
|
|
1534
1552
|
|
|
1535
|
-
markFlagAsAccessed(
|
|
1553
|
+
markFlagAsAccessed(84, "useTraitHiddenOnAndroid");
|
|
1536
1554
|
|
|
1537
1555
|
flagValue = currentProvider_->useTraitHiddenOnAndroid();
|
|
1538
1556
|
useTraitHiddenOnAndroid_ = flagValue;
|
|
@@ -1550,7 +1568,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModuleInterop() {
|
|
|
1550
1568
|
// be accessing the provider multiple times but the end state of this
|
|
1551
1569
|
// instance and the returned flag value would be the same.
|
|
1552
1570
|
|
|
1553
|
-
markFlagAsAccessed(
|
|
1571
|
+
markFlagAsAccessed(85, "useTurboModuleInterop");
|
|
1554
1572
|
|
|
1555
1573
|
flagValue = currentProvider_->useTurboModuleInterop();
|
|
1556
1574
|
useTurboModuleInterop_ = flagValue;
|
|
@@ -1568,7 +1586,7 @@ bool ReactNativeFeatureFlagsAccessor::useTurboModules() {
|
|
|
1568
1586
|
// be accessing the provider multiple times but the end state of this
|
|
1569
1587
|
// instance and the returned flag value would be the same.
|
|
1570
1588
|
|
|
1571
|
-
markFlagAsAccessed(
|
|
1589
|
+
markFlagAsAccessed(86, "useTurboModules");
|
|
1572
1590
|
|
|
1573
1591
|
flagValue = currentProvider_->useTurboModules();
|
|
1574
1592
|
useTurboModules_ = flagValue;
|
|
@@ -1586,7 +1604,7 @@ double ReactNativeFeatureFlagsAccessor::viewCullingOutsetRatio() {
|
|
|
1586
1604
|
// be accessing the provider multiple times but the end state of this
|
|
1587
1605
|
// instance and the returned flag value would be the same.
|
|
1588
1606
|
|
|
1589
|
-
markFlagAsAccessed(
|
|
1607
|
+
markFlagAsAccessed(87, "viewCullingOutsetRatio");
|
|
1590
1608
|
|
|
1591
1609
|
flagValue = currentProvider_->viewCullingOutsetRatio();
|
|
1592
1610
|
viewCullingOutsetRatio_ = flagValue;
|
|
@@ -1604,7 +1622,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewHysteresisRatio() {
|
|
|
1604
1622
|
// be accessing the provider multiple times but the end state of this
|
|
1605
1623
|
// instance and the returned flag value would be the same.
|
|
1606
1624
|
|
|
1607
|
-
markFlagAsAccessed(
|
|
1625
|
+
markFlagAsAccessed(88, "virtualViewHysteresisRatio");
|
|
1608
1626
|
|
|
1609
1627
|
flagValue = currentProvider_->virtualViewHysteresisRatio();
|
|
1610
1628
|
virtualViewHysteresisRatio_ = flagValue;
|
|
@@ -1622,7 +1640,7 @@ double ReactNativeFeatureFlagsAccessor::virtualViewPrerenderRatio() {
|
|
|
1622
1640
|
// be accessing the provider multiple times but the end state of this
|
|
1623
1641
|
// instance and the returned flag value would be the same.
|
|
1624
1642
|
|
|
1625
|
-
markFlagAsAccessed(
|
|
1643
|
+
markFlagAsAccessed(89, "virtualViewPrerenderRatio");
|
|
1626
1644
|
|
|
1627
1645
|
flagValue = currentProvider_->virtualViewPrerenderRatio();
|
|
1628
1646
|
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<<0b86f6df8b7e838d699980a9211c72df>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -68,6 +68,7 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
68
68
|
bool enableLayoutAnimationsOnIOS();
|
|
69
69
|
bool enableMainQueueCoordinatorOnIOS();
|
|
70
70
|
bool enableModuleArgumentNSNullConversionIOS();
|
|
71
|
+
bool enableMutationObserverByDefault();
|
|
71
72
|
bool enableNativeCSSParsing();
|
|
72
73
|
bool enableNetworkEventReporting();
|
|
73
74
|
bool enablePreparedTextLayout();
|
|
@@ -132,7 +133,7 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
132
133
|
std::unique_ptr<ReactNativeFeatureFlagsProvider> currentProvider_;
|
|
133
134
|
bool wasOverridden_;
|
|
134
135
|
|
|
135
|
-
std::array<std::atomic<const char*>,
|
|
136
|
+
std::array<std::atomic<const char*>, 90> accessedFeatureFlags_;
|
|
136
137
|
|
|
137
138
|
std::atomic<std::optional<bool>> commonTestFlag_;
|
|
138
139
|
std::atomic<std::optional<bool>> cdpInteractionMetricsEnabled_;
|
|
@@ -170,6 +171,7 @@ class ReactNativeFeatureFlagsAccessor {
|
|
|
170
171
|
std::atomic<std::optional<bool>> enableLayoutAnimationsOnIOS_;
|
|
171
172
|
std::atomic<std::optional<bool>> enableMainQueueCoordinatorOnIOS_;
|
|
172
173
|
std::atomic<std::optional<bool>> enableModuleArgumentNSNullConversionIOS_;
|
|
174
|
+
std::atomic<std::optional<bool>> enableMutationObserverByDefault_;
|
|
173
175
|
std::atomic<std::optional<bool>> enableNativeCSSParsing_;
|
|
174
176
|
std::atomic<std::optional<bool>> enableNetworkEventReporting_;
|
|
175
177
|
std::atomic<std::optional<bool>> enablePreparedTextLayout_;
|
|
@@ -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<<97d5c101032335f047a9a9bb06dab093>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -171,6 +171,10 @@ class ReactNativeFeatureFlagsDefaults : public ReactNativeFeatureFlagsProvider {
|
|
|
171
171
|
return false;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
+
bool enableMutationObserverByDefault() override {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
|
|
174
178
|
bool enableNativeCSSParsing() override {
|
|
175
179
|
return false;
|
|
176
180
|
}
|
|
@@ -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<<bb24ce8764d7c7049e3fd211dcd70510>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -369,6 +369,15 @@ class ReactNativeFeatureFlagsDynamicProvider : public ReactNativeFeatureFlagsDef
|
|
|
369
369
|
return ReactNativeFeatureFlagsDefaults::enableModuleArgumentNSNullConversionIOS();
|
|
370
370
|
}
|
|
371
371
|
|
|
372
|
+
bool enableMutationObserverByDefault() override {
|
|
373
|
+
auto value = values_["enableMutationObserverByDefault"];
|
|
374
|
+
if (!value.isNull()) {
|
|
375
|
+
return value.getBool();
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
return ReactNativeFeatureFlagsDefaults::enableMutationObserverByDefault();
|
|
379
|
+
}
|
|
380
|
+
|
|
372
381
|
bool enableNativeCSSParsing() override {
|
|
373
382
|
auto value = values_["enableNativeCSSParsing"];
|
|
374
383
|
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<<75595b7640dd5849fcd3c40a965582fe>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -61,6 +61,7 @@ class ReactNativeFeatureFlagsProvider {
|
|
|
61
61
|
virtual bool enableLayoutAnimationsOnIOS() = 0;
|
|
62
62
|
virtual bool enableMainQueueCoordinatorOnIOS() = 0;
|
|
63
63
|
virtual bool enableModuleArgumentNSNullConversionIOS() = 0;
|
|
64
|
+
virtual bool enableMutationObserverByDefault() = 0;
|
|
64
65
|
virtual bool enableNativeCSSParsing() = 0;
|
|
65
66
|
virtual bool enableNetworkEventReporting() = 0;
|
|
66
67
|
virtual bool enablePreparedTextLayout() = 0;
|
|
@@ -22,6 +22,7 @@ target_link_libraries(react_nativemodule_defaults
|
|
|
22
22
|
react_nativemodule_microtasks
|
|
23
23
|
react_nativemodule_idlecallbacks
|
|
24
24
|
react_nativemodule_intersectionobserver
|
|
25
|
+
react_nativemodule_mutationobserver
|
|
25
26
|
react_nativemodule_webperformance
|
|
26
27
|
)
|
|
27
28
|
target_compile_reactnative_options(react_nativemodule_defaults PRIVATE)
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
#include <react/nativemodule/idlecallbacks/NativeIdleCallbacks.h>
|
|
13
13
|
#include <react/nativemodule/intersectionobserver/NativeIntersectionObserver.h>
|
|
14
14
|
#include <react/nativemodule/microtasks/NativeMicrotasks.h>
|
|
15
|
+
#include <react/nativemodule/mutationobserver/NativeMutationObserver.h>
|
|
15
16
|
#include <react/nativemodule/webperformance/NativePerformance.h>
|
|
16
17
|
|
|
17
18
|
#ifdef REACT_NATIVE_DEBUGGER_ENABLED_DEVONLY
|
|
@@ -51,6 +52,12 @@ namespace facebook::react {
|
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
54
|
|
|
55
|
+
if (ReactNativeFeatureFlags::enableMutationObserverByDefault()) {
|
|
56
|
+
if (name == NativeMutationObserver::kModuleName) {
|
|
57
|
+
return std::make_shared<NativeMutationObserver>(jsInvoker);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
54
61
|
#ifdef REACT_NATIVE_DEBUGGER_ENABLED_DEVONLY
|
|
55
62
|
if (name == DevToolsRuntimeSettingsModule::kModuleName) {
|
|
56
63
|
return std::make_shared<DevToolsRuntimeSettingsModule>(jsInvoker);
|
|
@@ -53,6 +53,7 @@ Pod::Spec.new do |s|
|
|
|
53
53
|
s.dependency "React-microtasksnativemodule"
|
|
54
54
|
s.dependency "React-idlecallbacksnativemodule"
|
|
55
55
|
s.dependency "React-intersectionobservernativemodule"
|
|
56
|
+
s.dependency "React-mutationobservernativemodule"
|
|
56
57
|
s.dependency "React-webperformancenativemodule"
|
|
57
58
|
add_dependency(s, "React-RCTFBReactNativeSpec")
|
|
58
59
|
add_dependency(s, "React-featureflags")
|
|
@@ -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<<d4e9743710d91c1287986f2dab260e10>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -224,6 +224,11 @@ bool NativeReactNativeFeatureFlags::enableModuleArgumentNSNullConversionIOS(
|
|
|
224
224
|
return ReactNativeFeatureFlags::enableModuleArgumentNSNullConversionIOS();
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
+
bool NativeReactNativeFeatureFlags::enableMutationObserverByDefault(
|
|
228
|
+
jsi::Runtime& /*runtime*/) {
|
|
229
|
+
return ReactNativeFeatureFlags::enableMutationObserverByDefault();
|
|
230
|
+
}
|
|
231
|
+
|
|
227
232
|
bool NativeReactNativeFeatureFlags::enableNativeCSSParsing(
|
|
228
233
|
jsi::Runtime& /*runtime*/) {
|
|
229
234
|
return ReactNativeFeatureFlags::enableNativeCSSParsing();
|
|
@@ -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<<1b5ca84f5d82d6861379191ed93d8b63>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -108,6 +108,8 @@ class NativeReactNativeFeatureFlags
|
|
|
108
108
|
|
|
109
109
|
bool enableModuleArgumentNSNullConversionIOS(jsi::Runtime& runtime);
|
|
110
110
|
|
|
111
|
+
bool enableMutationObserverByDefault(jsi::Runtime& runtime);
|
|
112
|
+
|
|
111
113
|
bool enableNativeCSSParsing(jsi::Runtime& runtime);
|
|
112
114
|
|
|
113
115
|
bool enableNetworkEventReporting(jsi::Runtime& runtime);
|
|
@@ -7,7 +7,11 @@
|
|
|
7
7
|
|
|
8
8
|
#pragma once
|
|
9
9
|
|
|
10
|
+
#if __has_include("FBReactNativeSpecJSI.h") // CocoaPod headers on Apple
|
|
11
|
+
#include "FBReactNativeSpecJSI.h"
|
|
12
|
+
#else
|
|
10
13
|
#include <FBReactNativeSpec/FBReactNativeSpecJSI.h>
|
|
14
|
+
#endif
|
|
11
15
|
#include <react/renderer/bridging/bridging.h>
|
|
12
16
|
#include <react/renderer/observers/mutation/MutationObserverManager.h>
|
|
13
17
|
#include <react/renderer/uimanager/UIManager.h>
|
package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
2
|
+
#
|
|
3
|
+
# This source code is licensed under the MIT license found in the
|
|
4
|
+
# LICENSE file in the root directory of this source tree.
|
|
5
|
+
|
|
6
|
+
require "json"
|
|
7
|
+
|
|
8
|
+
package = JSON.parse(File.read(File.join(__dir__, "..", "..", "..", "..", "package.json")))
|
|
9
|
+
version = package['version']
|
|
10
|
+
|
|
11
|
+
source = { :git => 'https://github.com/facebook/react-native.git' }
|
|
12
|
+
if version == '1000.0.0'
|
|
13
|
+
# This is an unpublished version, use the latest commit hash of the react-native repo, which we're presumably in.
|
|
14
|
+
source[:commit] = `git rev-parse HEAD`.strip if system("git rev-parse --git-dir > /dev/null 2>&1")
|
|
15
|
+
else
|
|
16
|
+
source[:tag] = "v#{version}"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
header_search_paths = [
|
|
20
|
+
"\"$(PODS_ROOT)/Headers/Private/Yoga\"",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
if ENV['USE_FRAMEWORKS']
|
|
24
|
+
header_search_paths << "\"$(PODS_TARGET_SRCROOT)/../../..\"" # this is needed to allow the module access its own files
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
Pod::Spec.new do |s|
|
|
28
|
+
s.name = "React-mutationobservernativemodule"
|
|
29
|
+
s.version = version
|
|
30
|
+
s.summary = "React Native mutation observer native module"
|
|
31
|
+
s.homepage = "https://reactnative.dev/"
|
|
32
|
+
s.license = package["license"]
|
|
33
|
+
s.author = "Meta Platforms, Inc. and its affiliates"
|
|
34
|
+
s.platforms = min_supported_versions
|
|
35
|
+
s.source = source
|
|
36
|
+
s.source_files = podspec_sources("*.{cpp,h}", "*.h")
|
|
37
|
+
s.header_dir = "react/nativemodule/mutationobserver"
|
|
38
|
+
s.pod_target_xcconfig = { "CLANG_CXX_LANGUAGE_STANDARD" => rct_cxx_language_standard(),
|
|
39
|
+
"HEADER_SEARCH_PATHS" => header_search_paths.join(' '),
|
|
40
|
+
"OTHER_CFLAGS" => "$(inherited)",
|
|
41
|
+
"DEFINES_MODULE" => "YES" }
|
|
42
|
+
|
|
43
|
+
if ENV['USE_FRAMEWORKS']
|
|
44
|
+
s.module_name = "mutationobservernativemodule"
|
|
45
|
+
s.header_mappings_dir = "../.."
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
s.dependency "Yoga"
|
|
49
|
+
s.dependency "React-jsi"
|
|
50
|
+
s.dependency "React-jsiexecutor"
|
|
51
|
+
s.dependency "React-cxxreact"
|
|
52
|
+
|
|
53
|
+
depend_on_js_engine(s)
|
|
54
|
+
add_rn_third_party_dependencies(s)
|
|
55
|
+
add_rncore_dependency(s)
|
|
56
|
+
|
|
57
|
+
s.dependency "ReactCommon/turbomodule/core"
|
|
58
|
+
|
|
59
|
+
s.dependency "React-Fabric"
|
|
60
|
+
s.dependency "React-Fabric/bridging"
|
|
61
|
+
s.dependency "React-Fabric/observers/mutation"
|
|
62
|
+
s.dependency "React-featureflags"
|
|
63
|
+
add_dependency(s, "React-RCTFBReactNativeSpec")
|
|
64
|
+
add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"])
|
|
65
|
+
|
|
66
|
+
end
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native",
|
|
3
|
-
"version": "0.83.
|
|
3
|
+
"version": "0.83.9",
|
|
4
4
|
"description": "A framework for building native apps using React",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -160,13 +160,13 @@
|
|
|
160
160
|
},
|
|
161
161
|
"dependencies": {
|
|
162
162
|
"@jest/create-cache-key-function": "^29.7.0",
|
|
163
|
-
"@react-native/assets-registry": "0.83.
|
|
164
|
-
"@react-native/codegen": "0.83.
|
|
165
|
-
"@react-native/community-cli-plugin": "0.83.
|
|
166
|
-
"@react-native/gradle-plugin": "0.83.
|
|
167
|
-
"@react-native/js-polyfills": "0.83.
|
|
168
|
-
"@react-native/normalize-colors": "0.83.
|
|
169
|
-
"@react-native/virtualized-lists": "0.83.
|
|
163
|
+
"@react-native/assets-registry": "0.83.9",
|
|
164
|
+
"@react-native/codegen": "0.83.9",
|
|
165
|
+
"@react-native/community-cli-plugin": "0.83.9",
|
|
166
|
+
"@react-native/gradle-plugin": "0.83.9",
|
|
167
|
+
"@react-native/js-polyfills": "0.83.9",
|
|
168
|
+
"@react-native/normalize-colors": "0.83.9",
|
|
169
|
+
"@react-native/virtualized-lists": "0.83.9",
|
|
170
170
|
"abort-controller": "^3.0.0",
|
|
171
171
|
"anser": "^1.4.9",
|
|
172
172
|
"ansi-regex": "^5.0.0",
|
|
@@ -144,6 +144,7 @@ def use_react_native! (
|
|
|
144
144
|
pod 'React-microtasksnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/microtasks"
|
|
145
145
|
pod 'React-idlecallbacksnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/idlecallbacks"
|
|
146
146
|
pod 'React-intersectionobservernativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/intersectionobserver"
|
|
147
|
+
pod 'React-mutationobservernativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/mutationobserver"
|
|
147
148
|
pod 'React-webperformancenativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/webperformance"
|
|
148
149
|
pod 'React-domnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/dom"
|
|
149
150
|
pod 'React-defaultsnativemodule', :path => "#{prefix}/ReactCommon/react/nativemodule/defaults"
|
|
@@ -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<<2731bfb1c14d92e24ccb3ba0976c102a>>
|
|
8
8
|
* @flow strict
|
|
9
9
|
* @noformat
|
|
10
10
|
*/
|
|
@@ -86,6 +86,7 @@ export type ReactNativeFeatureFlags = $ReadOnly<{
|
|
|
86
86
|
enableLayoutAnimationsOnIOS: Getter<boolean>,
|
|
87
87
|
enableMainQueueCoordinatorOnIOS: Getter<boolean>,
|
|
88
88
|
enableModuleArgumentNSNullConversionIOS: Getter<boolean>,
|
|
89
|
+
enableMutationObserverByDefault: Getter<boolean>,
|
|
89
90
|
enableNativeCSSParsing: Getter<boolean>,
|
|
90
91
|
enableNetworkEventReporting: Getter<boolean>,
|
|
91
92
|
enablePreparedTextLayout: Getter<boolean>,
|
|
@@ -364,6 +365,10 @@ export const enableMainQueueCoordinatorOnIOS: Getter<boolean> = createNativeFlag
|
|
|
364
365
|
* Enable NSNull conversion when handling module arguments on iOS
|
|
365
366
|
*/
|
|
366
367
|
export const enableModuleArgumentNSNullConversionIOS: Getter<boolean> = createNativeFlagGetter('enableModuleArgumentNSNullConversionIOS', false);
|
|
368
|
+
/**
|
|
369
|
+
* Enables the MutationObserver Web API in React Native.
|
|
370
|
+
*/
|
|
371
|
+
export const enableMutationObserverByDefault: Getter<boolean> = createNativeFlagGetter('enableMutationObserverByDefault', false);
|
|
367
372
|
/**
|
|
368
373
|
* Parse CSS strings using the Fabric CSS parser instead of ViewConfig processing
|
|
369
374
|
*/
|
|
@@ -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<<8ef0f9289aa8f259fd110b70a8fd2294>>
|
|
8
8
|
* @flow strict
|
|
9
9
|
* @noformat
|
|
10
10
|
*/
|
|
@@ -61,6 +61,7 @@ export interface Spec extends TurboModule {
|
|
|
61
61
|
+enableLayoutAnimationsOnIOS?: () => boolean;
|
|
62
62
|
+enableMainQueueCoordinatorOnIOS?: () => boolean;
|
|
63
63
|
+enableModuleArgumentNSNullConversionIOS?: () => boolean;
|
|
64
|
+
+enableMutationObserverByDefault?: () => boolean;
|
|
64
65
|
+enableNativeCSSParsing?: () => boolean;
|
|
65
66
|
+enableNetworkEventReporting?: () => boolean;
|
|
66
67
|
+enablePreparedTextLayout?: () => boolean;
|
|
@@ -47,4 +47,10 @@ export default function setUpDefaltReactNativeEnvironment(
|
|
|
47
47
|
) {
|
|
48
48
|
require('./setUpIntersectionObserver').default();
|
|
49
49
|
}
|
|
50
|
+
|
|
51
|
+
if (
|
|
52
|
+
require('../../../src/private/featureflags/ReactNativeFeatureFlags').enableMutationObserverByDefault()
|
|
53
|
+
) {
|
|
54
|
+
require('./setUpMutationObserver').default();
|
|
55
|
+
}
|
|
50
56
|
}
|