react-native-tvos 0.83.6-0 → 0.83.9-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/Libraries/Core/ReactNativeVersion.js +1 -1
  2. package/React/Base/RCTVersion.m +1 -1
  3. package/React/CoreModules/RCTJscSafeUrl+Internal.h +23 -0
  4. package/React/CoreModules/RCTJscSafeUrl.mm +38 -0
  5. package/React/CoreModules/RCTRedBox+Internal.h +42 -0
  6. package/React/CoreModules/RCTRedBox.mm +30 -471
  7. package/React/CoreModules/RCTRedBox2AnsiParser+Internal.h +22 -0
  8. package/React/CoreModules/RCTRedBox2AnsiParser.mm +55 -0
  9. package/React/CoreModules/RCTRedBox2Controller+Internal.h +34 -0
  10. package/React/CoreModules/RCTRedBox2Controller.mm +764 -0
  11. package/React/CoreModules/RCTRedBox2ErrorParser+Internal.h +46 -0
  12. package/React/CoreModules/RCTRedBox2ErrorParser.mm +57 -0
  13. package/React/CoreModules/RCTRedBoxController+Internal.h +31 -0
  14. package/React/CoreModules/RCTRedBoxController.mm +447 -0
  15. package/React/CoreModules/RCTRedBoxHMRClient+Internal.h +26 -0
  16. package/React/CoreModules/RCTRedBoxHMRClient.mm +125 -0
  17. package/React/CoreModules/React-CoreModules.podspec +1 -0
  18. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +24 -0
  19. package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +1 -2
  20. package/ReactAndroid/gradle.properties +1 -1
  21. package/ReactAndroid/publish.gradle +20 -46
  22. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +19 -1
  23. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +31 -1
  24. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +7 -1
  25. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +7 -1
  26. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +34 -1
  27. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +7 -1
  28. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  29. package/ReactAndroid/src/main/jni/CMakeLists.txt +7 -0
  30. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +43 -1
  31. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +10 -1
  32. package/ReactCommon/React-Fabric.podspec +6 -0
  33. package/ReactCommon/cxxreact/ReactNativeVersion.h +2 -2
  34. package/ReactCommon/react/debug/CMakeLists.txt +2 -1
  35. package/ReactCommon/react/debug/React-debug.podspec +7 -1
  36. package/ReactCommon/react/debug/redbox/AnsiParser.cpp +139 -0
  37. package/ReactCommon/react/debug/redbox/AnsiParser.h +35 -0
  38. package/ReactCommon/react/debug/redbox/JscSafeUrl.cpp +179 -0
  39. package/ReactCommon/react/debug/redbox/JscSafeUrl.h +27 -0
  40. package/ReactCommon/react/debug/redbox/RedBoxErrorParser.cpp +171 -0
  41. package/ReactCommon/react/debug/redbox/RedBoxErrorParser.h +40 -0
  42. package/ReactCommon/react/debug/redbox/tests/AnsiParserTest.cpp +97 -0
  43. package/ReactCommon/react/debug/redbox/tests/JscSafeUrlTest.cpp +173 -0
  44. package/ReactCommon/react/debug/redbox/tests/RedBoxErrorParserTest.cpp +107 -0
  45. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +13 -1
  46. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +16 -1
  47. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +106 -52
  48. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +8 -2
  49. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +13 -1
  50. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +28 -1
  51. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +4 -1
  52. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  53. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
  54. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +1 -0
  55. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +16 -1
  56. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +7 -1
  57. package/ReactCommon/react/nativemodule/mutationobserver/NativeMutationObserver.h +4 -0
  58. package/ReactCommon/react/nativemodule/mutationobserver/React-mutationobservernativemodule.podspec +66 -0
  59. package/package.json +8 -8
  60. package/scripts/react_native_pods.rb +1 -0
  61. package/src/private/featureflags/ReactNativeFeatureFlags.js +16 -1
  62. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +4 -1
  63. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
@@ -0,0 +1,125 @@
1
+ /*
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ #import "RCTRedBoxHMRClient+Internal.h"
9
+
10
+ #if RCT_DEV_MENU
11
+
12
+ @implementation RCTRedBoxHMRClient {
13
+ NSURL *_bundleURL;
14
+ NSURLSessionWebSocketTask *_webSocketTask;
15
+ NSURLSession *_session;
16
+ void (^_onFileChange)(void);
17
+ BOOL _stopped;
18
+ }
19
+
20
+ - (instancetype)initWithBundleURL:(NSURL *)bundleURL onFileChange:(void (^)(void))onFileChange
21
+ {
22
+ if (self = [super init]) {
23
+ _bundleURL = bundleURL;
24
+ _onFileChange = [onFileChange copy];
25
+ }
26
+ return self;
27
+ }
28
+
29
+ - (void)start
30
+ {
31
+ if (![_bundleURL.scheme hasPrefix:@"http"]) {
32
+ return;
33
+ }
34
+
35
+ NSURLComponents *components = [[NSURLComponents alloc] initWithURL:_bundleURL resolvingAgainstBaseURL:NO];
36
+ components.scheme = [_bundleURL.scheme isEqualToString:@"https"] ? @"wss" : @"ws";
37
+ components.path = @"/hot";
38
+ components.query = nil;
39
+ components.fragment = nil;
40
+ NSURL *wsURL = components.URL;
41
+ if (!wsURL) {
42
+ return;
43
+ }
44
+
45
+ _session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]
46
+ delegate:self
47
+ delegateQueue:nil];
48
+ _webSocketTask = [_session webSocketTaskWithURL:wsURL];
49
+ [_webSocketTask resume];
50
+ }
51
+
52
+ - (void)stop
53
+ {
54
+ _stopped = YES;
55
+ _onFileChange = nil;
56
+ [_webSocketTask cancel];
57
+ _webSocketTask = nil;
58
+ [_session invalidateAndCancel];
59
+ _session = nil;
60
+ }
61
+
62
+ - (void)URLSession:(__unused NSURLSession *)session
63
+ webSocketTask:(__unused NSURLSessionWebSocketTask *)webSocketTask
64
+ didOpenWithProtocol:(__unused NSString *)protocol
65
+ {
66
+ NSDictionary *registration = @{
67
+ @"type" : @"register-entrypoints",
68
+ @"entryPoints" : @[ _bundleURL.absoluteString ],
69
+ };
70
+ NSData *json = [NSJSONSerialization dataWithJSONObject:registration options:0 error:nil];
71
+ NSURLSessionWebSocketMessage *msg = [[NSURLSessionWebSocketMessage alloc]
72
+ initWithString:[[NSString alloc] initWithData:json encoding:NSUTF8StringEncoding]];
73
+ [_webSocketTask sendMessage:msg
74
+ completionHandler:^(__unused NSError *error){
75
+ }];
76
+ [self _listenForNextMessage];
77
+ }
78
+
79
+ - (void)_listenForNextMessage
80
+ {
81
+ if (_stopped) {
82
+ return;
83
+ }
84
+ __weak __typeof(self) weakSelf = self;
85
+ [_webSocketTask receiveMessageWithCompletionHandler:^(NSURLSessionWebSocketMessage *message, NSError *error) {
86
+ if (error || !message) {
87
+ return;
88
+ }
89
+ [weakSelf _handleMessage:message];
90
+ [weakSelf _listenForNextMessage];
91
+ }];
92
+ }
93
+
94
+ - (void)_handleMessage:(NSURLSessionWebSocketMessage *)message
95
+ {
96
+ if (message.type != NSURLSessionWebSocketMessageTypeString || _stopped) {
97
+ return;
98
+ }
99
+ NSData *data = [message.string dataUsingEncoding:NSUTF8StringEncoding];
100
+ NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
101
+ if ([json[@"type"] isEqualToString:@"update-start"]) {
102
+ // Ignore the initial update that fires when the client first registers.
103
+ // Only react to subsequent file changes.
104
+ NSDictionary *body = json[@"body"];
105
+ if ([body isKindOfClass:[NSDictionary class]] && [body[@"isInitialUpdate"] boolValue]) {
106
+ return;
107
+ }
108
+ dispatch_async(dispatch_get_main_queue(), ^{
109
+ if (self->_onFileChange) {
110
+ self->_onFileChange();
111
+ }
112
+ });
113
+ }
114
+ }
115
+
116
+ - (void)URLSession:(__unused NSURLSession *)session
117
+ webSocketTask:(__unused NSURLSessionWebSocketTask *)task
118
+ didCloseWithCode:(__unused NSURLSessionWebSocketCloseCode)closeCode
119
+ reason:(__unused NSData *)reason
120
+ {
121
+ }
122
+
123
+ @end
124
+
125
+ #endif
@@ -51,6 +51,7 @@ Pod::Spec.new do |s|
51
51
  s.dependency "React-Core/CoreModulesHeaders", version
52
52
  s.dependency "React-RCTImage", version
53
53
  s.dependency "React-jsi", version
54
+ add_dependency(s, "React-featureflags")
54
55
  s.dependency 'React-RCTBlob'
55
56
  add_dependency(s, "React-debug")
56
57
  add_dependency(s, "React-runtimeexecutor", :additional_framework_paths => ["platform/ios"])
@@ -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};
@@ -290,6 +291,8 @@ protected:
290
291
  methodMap_["perfMonitorV2Enabled"] = MethodMetadata {.argCount = 0, .invoker = __perfMonitorV2Enabled};
291
292
  methodMap_["preparedTextCacheSize"] = MethodMetadata {.argCount = 0, .invoker = __preparedTextCacheSize};
292
293
  methodMap_["preventShadowTreeCommitExhaustion"] = MethodMetadata {.argCount = 0, .invoker = __preventShadowTreeCommitExhaustion};
294
+ methodMap_["redBoxV2Android"] = MethodMetadata {.argCount = 0, .invoker = __redBoxV2Android};
295
+ methodMap_["redBoxV2IOS"] = MethodMetadata {.argCount = 0, .invoker = __redBoxV2IOS};
293
296
  methodMap_["shouldPressibilityUseW3CPointerEventsForHover"] = MethodMetadata {.argCount = 0, .invoker = __shouldPressibilityUseW3CPointerEventsForHover};
294
297
  methodMap_["shouldTriggerResponderTransferOnScrollAndroid"] = MethodMetadata {.argCount = 0, .invoker = __shouldTriggerResponderTransferOnScrollAndroid};
295
298
  methodMap_["skipActivityIdentityAssertionOnHostPause"] = MethodMetadata {.argCount = 0, .invoker = __skipActivityIdentityAssertionOnHostPause};
@@ -573,6 +576,13 @@ private:
573
576
  return bridging::callFromJs<bool>(rt, &T::enableModuleArgumentNSNullConversionIOS, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
574
577
  }
575
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
+
576
586
  static jsi::Value __enableNativeCSSParsing(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
577
587
  static_assert(
578
588
  bridging::getParameterCount(&T::enableNativeCSSParsing) == 1,
@@ -783,6 +793,20 @@ private:
783
793
  return bridging::callFromJs<bool>(rt, &T::preventShadowTreeCommitExhaustion, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
784
794
  }
785
795
 
796
+ static jsi::Value __redBoxV2Android(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
797
+ static_assert(
798
+ bridging::getParameterCount(&T::redBoxV2Android) == 1,
799
+ "Expected redBoxV2Android(...) to have 1 parameters");
800
+ return bridging::callFromJs<bool>(rt, &T::redBoxV2Android, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
801
+ }
802
+
803
+ static jsi::Value __redBoxV2IOS(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
804
+ static_assert(
805
+ bridging::getParameterCount(&T::redBoxV2IOS) == 1,
806
+ "Expected redBoxV2IOS(...) to have 1 parameters");
807
+ return bridging::callFromJs<bool>(rt, &T::redBoxV2IOS, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
808
+ }
809
+
786
810
  static jsi::Value __shouldPressibilityUseW3CPointerEventsForHover(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
787
811
  static_assert(
788
812
  bridging::getParameterCount(&T::shouldPressibilityUseW3CPointerEventsForHover) == 1,
@@ -610,11 +610,10 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
610
610
  // [self isTVFocusGuide] is false when autofocus and destinations are not used, so we cannot use that.
611
611
  // Generally speaking, it would happen for any non-collapsable `View`.
612
612
  } else if (context.previouslyFocusedView == self) {
613
- [self disableDirectionalFocusGuides];
614
613
  [coordinator addCoordinatedAnimations:^(void){
615
614
  [self removeParallaxMotionEffects];
616
615
  if (self->_eventEmitter) self->_eventEmitter->onBlur();
617
- } completion:^(void){}];
616
+ } completion:^(void){[self disableDirectionalFocusGuides];}];
618
617
  [self resignFirstResponder];
619
618
  }
620
619
  }
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.83.6-0
1
+ VERSION_NAME=0.83.9-0
2
2
  react.internal.publishingGroup=io.github.react-native-tvos
3
3
  react.internal.hermesPublishingGroup=com.facebook.hermes
4
4
 
@@ -3,25 +3,17 @@
3
3
  *
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
- *
7
- * This file is modified from the original Meta source to work in the
8
- * `react-native-ci` project.
9
6
  */
10
- /* groovylint-disable CompileStatic, DuplicateStringLiteral, LineLength, NestedBlockDepth, NoDef, UnusedVariable, VariableTypeRequired */
11
7
 
12
8
  apply plugin: 'maven-publish'
13
9
  apply plugin: 'signing'
14
10
 
15
- def isSnapshot = false
16
- // Rewritten when copying this to ReactAndroid/publish.gradle
17
- def signingKey = findProperty('SIGNING_KEY')
18
- def signingPwd = findProperty('SIGNING_PWD')
19
- def sonatypeUsername = findProperty('SONATYPE_USERNAME')
20
- def sonatypePassword = findProperty('SONATYPE_PASSWORD')
11
+ def isSnapshot = findProperty("isSnapshot")?.toBoolean()
12
+ def signingKey = findProperty("SIGNING_KEY")
13
+ def signingPwd = findProperty("SIGNING_PWD")
21
14
 
22
15
  def reactAndroidProjectDir = project(':packages:react-native:ReactAndroid').projectDir
23
- def mavenTempLocalUrl = 'file:///home/expo/workingdir/build/maven-local'
24
- // Rewritten when copying this to ReactAndroid/publish.gradle
16
+ def mavenTempLocalUrl = "file:///tmp/maven-local"
25
17
 
26
18
  publishing {
27
19
  publications {
@@ -29,7 +21,7 @@ publishing {
29
21
  afterEvaluate {
30
22
  // We do a multi variant release, so for Android libraries
31
23
  // we publish `components.release`
32
- if (plugins.hasPlugin('com.android.library')) {
24
+ if (plugins.hasPlugin("com.android.library")) {
33
25
  from components.default
34
26
  }
35
27
  }
@@ -37,35 +29,35 @@ publishing {
37
29
  // We populate the publishing version using the project version,
38
30
  // appending -SNAPSHOT if on nightly or prerelase.
39
31
  if (isSnapshot) {
40
- version = this.version + '-SNAPSHOT'
32
+ version = this.version + "-SNAPSHOT"
41
33
  } else {
42
34
  version = this.version
43
35
  }
44
36
 
45
37
  pom {
46
- name = 'react-native'
47
- description = 'A framework for building native apps with React'
48
- url = 'https://github.com/facebook/react-native'
38
+ name = "react-native"
39
+ description = "A framework for building native apps with React"
40
+ url = "https://github.com/facebook/react-native"
49
41
 
50
42
  developers {
51
43
  developer {
52
- id = 'facebook'
53
- name = 'Facebook'
44
+ id = "facebook"
45
+ name = "Facebook"
54
46
  }
55
47
  }
56
48
 
57
49
  licenses {
58
50
  license {
59
- name = 'MIT License'
60
- url = 'https://github.com/facebook/react-native/blob/HEAD/LICENSE'
61
- distribution = 'repo'
51
+ name = "MIT License"
52
+ url = "https://github.com/facebook/react-native/blob/HEAD/LICENSE"
53
+ distribution = "repo"
62
54
  }
63
55
  }
64
56
 
65
57
  scm {
66
- url = 'https://github.com/facebook/react-native.git'
67
- connection = 'scm:git:https://github.com/facebook/react-native.git'
68
- developerConnection = 'scm:git:git@github.com:facebook/react-native.git'
58
+ url = "https://github.com/facebook/react-native.git"
59
+ connection = "scm:git:https://github.com/facebook/react-native.git"
60
+ developerConnection = "scm:git:git@github.com:facebook/react-native.git"
69
61
  }
70
62
  }
71
63
  }
@@ -73,36 +65,18 @@ publishing {
73
65
 
74
66
  repositories {
75
67
  maven {
76
- name = 'mavenTempLocal'
68
+ name = "mavenTempLocal"
77
69
  url = mavenTempLocalUrl
78
70
  }
79
- maven {
80
- name = 'sonatypeRelease'
81
- url = 'https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/'
82
- // url = 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/'
83
- credentials(PasswordCredentials) {
84
- username = sonatypeUsername
85
- password = sonatypePassword
86
- }
87
- }
88
- maven {
89
- name = 'sonatypeSnapshot'
90
- url = 'https://central.sonatype.com/repository/maven-snapshots/'
91
- // url = 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
92
- credentials(PasswordCredentials) {
93
- username = sonatypeUsername
94
- password = sonatypePassword
95
- }
96
- }
97
71
  }
98
72
 
99
73
  if (signingKey && signingPwd) {
100
- logger.info('PGP Key found - Signing enabled')
74
+ logger.info("PGP Key found - Signing enabled")
101
75
  signing {
102
76
  useInMemoryPgpKeys(signingKey, signingPwd)
103
77
  sign(publishing.publications.release)
104
78
  }
105
79
  } else {
106
- logger.info('Signing disabled as the PGP key was not found')
80
+ logger.info("Signing disabled as the PGP key was not found")
107
81
  }
108
82
  }
@@ -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<<a92c35b9527c3954516ee68db651afa7>>
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
  */
@@ -426,6 +432,18 @@ public object ReactNativeFeatureFlags {
426
432
  @JvmStatic
427
433
  public fun preventShadowTreeCommitExhaustion(): Boolean = accessor.preventShadowTreeCommitExhaustion()
428
434
 
435
+ /**
436
+ * Use the redesigned RedBox error overlay on Android, styled to match the LogBox visual language.
437
+ */
438
+ @JvmStatic
439
+ public fun redBoxV2Android(): Boolean = accessor.redBoxV2Android()
440
+
441
+ /**
442
+ * Use the redesigned RedBox error overlay on iOS, styled to match the LogBox visual language.
443
+ */
444
+ @JvmStatic
445
+ public fun redBoxV2IOS(): Boolean = accessor.redBoxV2IOS()
446
+
429
447
  /**
430
448
  * Function used to enable / disable Pressibility from using W3C Pointer Events for its hover callbacks
431
449
  */
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<a9ec10139cccac681fb73d8155377b02>>
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
@@ -86,6 +87,8 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
86
87
  private var perfMonitorV2EnabledCache: Boolean? = null
87
88
  private var preparedTextCacheSizeCache: Double? = null
88
89
  private var preventShadowTreeCommitExhaustionCache: Boolean? = null
90
+ private var redBoxV2AndroidCache: Boolean? = null
91
+ private var redBoxV2IOSCache: Boolean? = null
89
92
  private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
90
93
  private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
91
94
  private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
@@ -432,6 +435,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
432
435
  return cached
433
436
  }
434
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
+
435
447
  override fun enableNativeCSSParsing(): Boolean {
436
448
  var cached = enableNativeCSSParsingCache
437
449
  if (cached == null) {
@@ -702,6 +714,24 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
702
714
  return cached
703
715
  }
704
716
 
717
+ override fun redBoxV2Android(): Boolean {
718
+ var cached = redBoxV2AndroidCache
719
+ if (cached == null) {
720
+ cached = ReactNativeFeatureFlagsCxxInterop.redBoxV2Android()
721
+ redBoxV2AndroidCache = cached
722
+ }
723
+ return cached
724
+ }
725
+
726
+ override fun redBoxV2IOS(): Boolean {
727
+ var cached = redBoxV2IOSCache
728
+ if (cached == null) {
729
+ cached = ReactNativeFeatureFlagsCxxInterop.redBoxV2IOS()
730
+ redBoxV2IOSCache = cached
731
+ }
732
+ return cached
733
+ }
734
+
705
735
  override fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean {
706
736
  var cached = shouldPressibilityUseW3CPointerEventsForHoverCache
707
737
  if (cached == null) {
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<ceb1cf55a1d6b6d71ad27ec7f8594b50>>
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
@@ -160,6 +162,10 @@ public object ReactNativeFeatureFlagsCxxInterop {
160
162
 
161
163
  @DoNotStrip @JvmStatic public external fun preventShadowTreeCommitExhaustion(): Boolean
162
164
 
165
+ @DoNotStrip @JvmStatic public external fun redBoxV2Android(): Boolean
166
+
167
+ @DoNotStrip @JvmStatic public external fun redBoxV2IOS(): Boolean
168
+
163
169
  @DoNotStrip @JvmStatic public external fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean
164
170
 
165
171
  @DoNotStrip @JvmStatic public external fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<a292a8c3ac8d59484071106c1c323b63>>
7
+ * @generated SignedSource<<e40518ddbe70d708d85e504be47a2d82>>
8
8
  */
9
9
 
10
10
  /**
@@ -95,6 +95,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
95
95
 
96
96
  override fun enableModuleArgumentNSNullConversionIOS(): Boolean = false
97
97
 
98
+ override fun enableMutationObserverByDefault(): Boolean = false
99
+
98
100
  override fun enableNativeCSSParsing(): Boolean = false
99
101
 
100
102
  override fun enableNetworkEventReporting(): Boolean = true
@@ -155,6 +157,10 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
155
157
 
156
158
  override fun preventShadowTreeCommitExhaustion(): Boolean = false
157
159
 
160
+ override fun redBoxV2Android(): Boolean = false
161
+
162
+ override fun redBoxV2IOS(): Boolean = false
163
+
158
164
  override fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean = false
159
165
 
160
166
  override fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean = false
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<38e86d50298e5c4199d456f709ac13fc>>
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
@@ -90,6 +91,8 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
90
91
  private var perfMonitorV2EnabledCache: Boolean? = null
91
92
  private var preparedTextCacheSizeCache: Double? = null
92
93
  private var preventShadowTreeCommitExhaustionCache: Boolean? = null
94
+ private var redBoxV2AndroidCache: Boolean? = null
95
+ private var redBoxV2IOSCache: Boolean? = null
93
96
  private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
94
97
  private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
95
98
  private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
@@ -472,6 +475,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
472
475
  return cached
473
476
  }
474
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
+
475
488
  override fun enableNativeCSSParsing(): Boolean {
476
489
  var cached = enableNativeCSSParsingCache
477
490
  if (cached == null) {
@@ -772,6 +785,26 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
772
785
  return cached
773
786
  }
774
787
 
788
+ override fun redBoxV2Android(): Boolean {
789
+ var cached = redBoxV2AndroidCache
790
+ if (cached == null) {
791
+ cached = currentProvider.redBoxV2Android()
792
+ accessedFeatureFlags.add("redBoxV2Android")
793
+ redBoxV2AndroidCache = cached
794
+ }
795
+ return cached
796
+ }
797
+
798
+ override fun redBoxV2IOS(): Boolean {
799
+ var cached = redBoxV2IOSCache
800
+ if (cached == null) {
801
+ cached = currentProvider.redBoxV2IOS()
802
+ accessedFeatureFlags.add("redBoxV2IOS")
803
+ redBoxV2IOSCache = cached
804
+ }
805
+ return cached
806
+ }
807
+
775
808
  override fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean {
776
809
  var cached = shouldPressibilityUseW3CPointerEventsForHoverCache
777
810
  if (cached == null) {
@@ -4,7 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
- * @generated SignedSource<<eb09ee29f25cd03df2e7c3d2b3def992>>
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
@@ -155,6 +157,10 @@ public interface ReactNativeFeatureFlagsProvider {
155
157
 
156
158
  @DoNotStrip public fun preventShadowTreeCommitExhaustion(): Boolean
157
159
 
160
+ @DoNotStrip public fun redBoxV2Android(): Boolean
161
+
162
+ @DoNotStrip public fun redBoxV2IOS(): Boolean
163
+
158
164
  @DoNotStrip public fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean
159
165
 
160
166
  @DoNotStrip public fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean
@@ -14,7 +14,7 @@ public object ReactNativeVersion {
14
14
  public val VERSION: Map<String, Any?> = mapOf(
15
15
  "major" to 0,
16
16
  "minor" to 83,
17
- "patch" to 6,
17
+ "patch" to 9,
18
18
  "prerelease" to "0"
19
19
  )
20
20
  }
@@ -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>