react-native 0.84.0-nightly-20251113-6ddba300b → 0.84.0-nightly-20251115-e08abbcb9

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 (52) hide show
  1. package/Libraries/Core/ReactNativeVersion.js +1 -1
  2. package/React/Base/RCTBundleManager.h +2 -2
  3. package/React/Base/RCTBundleManager.m +14 -1
  4. package/React/Base/RCTVersion.m +1 -1
  5. package/React/CoreModules/RCTDevSettings.h +36 -1
  6. package/React/CoreModules/RCTDevSettings.mm +45 -9
  7. package/React/DevSupport/RCTPackagerConnection.h +4 -2
  8. package/React/DevSupport/RCTPackagerConnection.mm +30 -33
  9. package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +16 -0
  10. package/ReactAndroid/api/ReactAndroid.api +1 -0
  11. package/ReactAndroid/build.gradle.kts +2 -0
  12. package/ReactAndroid/gradle.properties +1 -1
  13. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +13 -1
  14. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +21 -1
  15. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +5 -1
  16. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +6 -2
  17. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +23 -1
  18. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +3 -1
  19. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +5 -1
  20. package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +23 -0
  21. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  22. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +84 -2
  23. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
  24. package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -0
  25. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +29 -1
  26. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +7 -1
  27. package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +1 -0
  28. package/ReactCommon/React-Fabric.podspec +8 -2
  29. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  30. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +9 -1
  31. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +11 -1
  32. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +110 -74
  33. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +6 -2
  34. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +10 -2
  35. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +19 -1
  36. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +5 -1
  37. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +3 -1
  38. package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +2 -2
  39. package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
  40. package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
  41. package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +5 -1
  42. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +11 -1
  43. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +5 -1
  44. package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.h +4 -0
  45. package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +66 -0
  46. package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
  47. package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
  48. package/package.json +8 -8
  49. package/scripts/react_native_pods.rb +1 -0
  50. package/src/private/featureflags/ReactNativeFeatureFlags.js +13 -3
  51. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -1
  52. package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
29
29
  static major: number = 0;
30
30
  static minor: number = 84;
31
31
  static patch: number = 0;
32
- static prerelease: string | null = 'nightly-20251113-6ddba300b';
32
+ static prerelease: string | null = 'nightly-20251115-e08abbcb9';
33
33
 
34
34
  static getVersionString(): string {
35
35
  return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
@@ -54,9 +54,9 @@ typedef NSMutableArray<NSURLQueryItem *> *_Nullable (^RCTPackagerOptionsUpdater)
54
54
 
55
55
  - (nullable NSURL *)getBundleURL;
56
56
 
57
- - (nullable NSString *)getPackagerServerScheme;
57
+ - (nonnull NSString *)getPackagerServerScheme;
58
58
 
59
- - (nullable NSString *)getPackagerServerHost;
59
+ - (nonnull NSString *)getPackagerServerHost;
60
60
 
61
61
  @end
62
62
 
@@ -7,6 +7,7 @@
7
7
 
8
8
  #import "RCTBundleManager.h"
9
9
  #import <React/RCTBundleURLProvider.h>
10
+ #import <React/RCTDevLoadingViewSetEnabled.h>
10
11
  #import "RCTAssert.h"
11
12
  #import "RCTBridge+Private.h"
12
13
  #import "RCTBridge.h"
@@ -48,6 +49,12 @@
48
49
  {
49
50
  return options;
50
51
  };
52
+
53
+ // When the bundleFilePath is set in the RCTBundleConfiguration the Metro connection
54
+ // shouldn't be suggested/required.
55
+ if (_bundleFilePath != nil) {
56
+ RCTDevLoadingViewSetEnabled(false);
57
+ }
51
58
  }
52
59
 
53
60
  return self;
@@ -160,7 +167,13 @@
160
167
  _bridgelessBundleURLGetter != nil,
161
168
  @"RCTBundleManager: In bridgeless mode, RCTBridgelessBundleURLGetter must not be nil.");
162
169
 
163
- return _bridgelessBundleURLGetter();
170
+ NSURL *bundleURL = [_bundleConfig getBundleURL];
171
+
172
+ if (bundleURL == nil) {
173
+ return _bridgelessBundleURLGetter();
174
+ }
175
+
176
+ return bundleURL;
164
177
  }
165
178
 
166
179
  - (void)resetBundleURL
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
24
24
  RCTVersionMajor: @(0),
25
25
  RCTVersionMinor: @(84),
26
26
  RCTVersionPatch: @(0),
27
- RCTVersionPrerelease: @"nightly-20251113-6ddba300b",
27
+ RCTVersionPrerelease: @"nightly-20251115-e08abbcb9",
28
28
  };
29
29
  });
30
30
  return __rnVersion;
@@ -11,6 +11,14 @@
11
11
  #import <React/RCTEventEmitter.h>
12
12
  #import <React/RCTInitializing.h>
13
13
 
14
+ @class RCTPackagerClientResponder;
15
+ typedef uint32_t RCTHandlerToken;
16
+ typedef void (^RCTNotificationHandler)(NSDictionary<NSString *, id> *);
17
+ typedef void (^RCTRequestHandler)(NSDictionary<NSString *, id> *, RCTPackagerClientResponder *);
18
+ typedef void (^RCTConnectedHandler)(void);
19
+
20
+ @class RCTPackagerConnection;
21
+
14
22
  @protocol RCTPackagerClientMethod;
15
23
 
16
24
  /**
@@ -85,6 +93,10 @@
85
93
  */
86
94
  @property (nonatomic, assign) BOOL isPerfMonitorShown;
87
95
 
96
+ #if RCT_DEV
97
+ @property (nonatomic, readonly) RCTPackagerConnection *packagerConnection;
98
+ #endif
99
+
88
100
  /**
89
101
  * Toggle the element inspector.
90
102
  */
@@ -102,7 +114,30 @@
102
114
 
103
115
  #if RCT_DEV_MENU
104
116
  - (void)addHandler:(id<RCTPackagerClientMethod>)handler
105
- forPackagerMethod:(NSString *)name __deprecated_msg("Use RCTPackagerConnection directly instead");
117
+ forPackagerMethod:(NSString *)name __deprecated_msg("Use addRequestHandler or addNotificationHandler instead");
118
+ #endif
119
+
120
+ #if RCT_DEV
121
+ /**
122
+ * Registers a handler for a notification broadcast from the packager. An
123
+ * example is "reload" - an instruction to reload from the packager.
124
+ * If multiple notification handlers are registered for the same method, they
125
+ * will all be invoked sequentially.
126
+ */
127
+ - (RCTHandlerToken)addNotificationHandler:(RCTNotificationHandler)handler
128
+ queue:(dispatch_queue_t)queue
129
+ forMethod:(NSString *)method;
130
+
131
+ /**
132
+ * Registers a handler for a request from the packager. An example is
133
+ * pokeSamplingProfiler; it asks for profile data from the client.
134
+ * Only one handler can be registered for a given method; calling this
135
+ * displaces any previous request handler registered for that method.
136
+ */
137
+ - (RCTHandlerToken)addRequestHandler:(RCTRequestHandler)handler
138
+ queue:(dispatch_queue_t)queue
139
+ forMethod:(NSString *)method;
140
+
106
141
  #endif
107
142
 
108
143
  @end
@@ -32,9 +32,12 @@ static NSString *const kRCTDevSettingIsPerfMonitorShown = @"RCTPerfMonitorKey";
32
32
 
33
33
  static NSString *const kRCTDevSettingsUserDefaultsKey = @"RCTDevMenu";
34
34
 
35
+ #if RCT_DEV
36
+ #import <React/RCTPackagerConnection.h>
37
+ #endif
38
+
35
39
  #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION
36
40
  #import <React/RCTPackagerClient.h>
37
- #import <React/RCTPackagerConnection.h>
38
41
  #endif
39
42
 
40
43
  #if RCT_ENABLE_INSPECTOR
@@ -52,7 +55,7 @@ void RCTDevSettingsSetEnabled(BOOL enabled)
52
55
  devSettingsMenuEnabled = enabled;
53
56
  }
54
57
 
55
- #if RCT_DEV_MENU || RCT_REMOTE_PROFILE
58
+ #if RCT_DEV || RCT_REMOTE_PROFILE
56
59
 
57
60
  @interface RCTDevSettingsUserDefaultsDataSource : NSObject <RCTDevSettingsDataSource>
58
61
 
@@ -145,6 +148,9 @@ RCT_EXPORT_MODULE()
145
148
  };
146
149
  RCTDevSettingsUserDefaultsDataSource *dataSource =
147
150
  [[RCTDevSettingsUserDefaultsDataSource alloc] initWithDefaultValues:defaultValues];
151
+ #if RCT_DEV
152
+ _packagerConnection = [RCTPackagerConnection new];
153
+ #endif
148
154
  _isShakeGestureEnabled = true;
149
155
  return [self initWithDataSource:dataSource];
150
156
  }
@@ -178,18 +184,27 @@ RCT_EXPORT_MODULE()
178
184
 
179
185
  - (void)initialize
180
186
  {
187
+ #if RCT_DEV
188
+ [_packagerConnection startWithBundleManager:_bundleManager];
189
+ #endif
190
+
181
191
  #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION
182
192
  if (numInitializedModules++ == 0) {
183
- reloadToken = [[RCTPackagerConnection sharedPackagerConnection]
193
+ reloadToken = [self
184
194
  addNotificationHandler:^(id params) {
185
195
  RCTTriggerReloadCommandListeners(@"Global hotkey");
186
196
  }
187
197
  queue:dispatch_get_main_queue()
188
198
  forMethod:@"reload"];
189
199
  #if RCT_DEV_MENU
190
- devMenuToken = [[RCTPackagerConnection sharedPackagerConnection]
200
+ __weak __typeof(self) weakSelf = self;
201
+ devMenuToken = [self
191
202
  addNotificationHandler:^(id params) {
192
- [[self.moduleRegistry moduleForName:"DevMenu"] show];
203
+ __typeof(self) strongSelf = weakSelf;
204
+ if (strongSelf == nullptr) {
205
+ return;
206
+ }
207
+ [[strongSelf.moduleRegistry moduleForName:"DevMenu"] show];
193
208
  }
194
209
  queue:dispatch_get_main_queue()
195
210
  forMethod:@"devMenu"];
@@ -240,9 +255,9 @@ RCT_EXPORT_MODULE()
240
255
  [super invalidate];
241
256
  #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION
242
257
  if (--numInitializedModules == 0) {
243
- [[RCTPackagerConnection sharedPackagerConnection] removeHandler:reloadToken];
258
+ [_packagerConnection removeHandler:reloadToken];
244
259
  #if RCT_DEV_MENU
245
- [[RCTPackagerConnection sharedPackagerConnection] removeHandler:devMenuToken];
260
+ [_packagerConnection removeHandler:devMenuToken];
246
261
  #endif
247
262
  }
248
263
  #endif
@@ -422,10 +437,27 @@ RCT_EXPORT_METHOD(addMenuItem : (NSString *)title)
422
437
  }
423
438
  }
424
439
 
440
+ #if RCT_DEV
441
+ - (RCTHandlerToken)addNotificationHandler:(RCTNotificationHandler)handler
442
+ queue:(dispatch_queue_t)queue
443
+ forMethod:(NSString *)method
444
+ {
445
+ return [_packagerConnection addNotificationHandler:handler queue:queue forMethod:method];
446
+ }
447
+
448
+ - (RCTHandlerToken)addRequestHandler:(RCTRequestHandler)handler
449
+ queue:(dispatch_queue_t)queue
450
+ forMethod:(NSString *)method
451
+ {
452
+ return [_packagerConnection addRequestHandler:handler queue:queue forMethod:method];
453
+ }
454
+
455
+ #endif
456
+
425
457
  - (void)addHandler:(id<RCTPackagerClientMethod>)handler forPackagerMethod:(NSString *)name
426
458
  {
427
459
  #if RCT_DEV_SETTINGS_ENABLE_PACKAGER_CONNECTION
428
- [[RCTPackagerConnection sharedPackagerConnection] addHandler:handler forMethod:name];
460
+ [_packagerConnection addHandler:handler forMethod:name];
429
461
  #endif
430
462
  }
431
463
 
@@ -512,7 +544,7 @@ RCT_EXPORT_METHOD(openDebugger)
512
544
 
513
545
  @end
514
546
 
515
- #else // #if RCT_DEV_MENU
547
+ #else // #if RCT_DEV || RCT_REMOTE_PROFILE
516
548
 
517
549
  @interface RCTDevSettings () <NativeDevSettingsSpec>
518
550
  @end
@@ -578,6 +610,10 @@ RCT_EXPORT_METHOD(openDebugger)
578
610
  return std::make_shared<facebook::react::NativeDevSettingsSpecJSI>(params);
579
611
  }
580
612
 
613
+ - (void)addHandler:(id<RCTPackagerClientMethod>)handler forPackagerMethod:(NSString *)name
614
+ {
615
+ }
616
+
581
617
  @end
582
618
 
583
619
  #endif // #if RCT_DEV_MENU
@@ -7,6 +7,7 @@
7
7
 
8
8
  #import <Foundation/Foundation.h>
9
9
 
10
+ #import <React/RCTBundleManager.h>
10
11
  #import <React/RCTDefines.h>
11
12
 
12
13
  #if RCT_DEV
@@ -24,8 +25,6 @@ typedef void (^RCTConnectedHandler)(void);
24
25
  /** Encapsulates singleton connection to React Native packager. */
25
26
  @interface RCTPackagerConnection : NSObject
26
27
 
27
- + (instancetype)sharedPackagerConnection;
28
-
29
28
  /**
30
29
  * Registers a handler for a notification broadcast from the packager. An
31
30
  * example is "reload" - an instruction to reload from the packager.
@@ -62,6 +61,9 @@ typedef void (^RCTConnectedHandler)(void);
62
61
  /** Reconnect with given packager server, if packagerServerHostPort has changed. */
63
62
  - (void)reconnect:(NSString *)packagerServerHostPort;
64
63
 
64
+ /** starts packager connection with configuration from the bundle manager */
65
+ - (void)startWithBundleManager:(RCTBundleManager *)bundleManager;
66
+
65
67
  /**
66
68
  * Historically no distinction was made between notification and request
67
69
  * handlers. If you use this method, it will be registered as *both* a
@@ -13,6 +13,7 @@
13
13
 
14
14
  #import <React/RCTAssert.h>
15
15
  #import <React/RCTBridge.h>
16
+ #import <React/RCTBundleManager.h>
16
17
  #import <React/RCTBundleURLProvider.h>
17
18
  #import <React/RCTConstants.h>
18
19
  #import <React/RCTConvert.h>
@@ -50,43 +51,13 @@ struct Registration {
50
51
  std::vector<Registration<RCTNotificationHandler>> _notificationRegistrations;
51
52
  std::vector<Registration<RCTRequestHandler>> _requestRegistrations;
52
53
  std::vector<Registration<RCTConnectedHandler>> _connectedRegistrations;
53
- }
54
-
55
- + (instancetype)sharedPackagerConnection
56
- {
57
- static RCTPackagerConnection *connection;
58
- static dispatch_once_t onceToken;
59
- dispatch_once(&onceToken, ^{
60
- connection = [RCTPackagerConnection new];
61
- });
62
- return connection;
54
+ RCTBundleManager *_bundleManager;
63
55
  }
64
56
 
65
57
  - (instancetype)init
66
58
  {
67
59
  if (self = [super init]) {
68
60
  _nextToken = 1; // Prevent randomly erasing a handler if you pass a bogus 0 token
69
- _serverHostPortForSocket = [[RCTBundleURLProvider sharedSettings] packagerServerHostPort];
70
- _serverSchemeForSocket = [[RCTBundleURLProvider sharedSettings] packagerScheme];
71
- _socket = socketForLocation(_serverHostPortForSocket, _serverSchemeForSocket);
72
- _socket.delegate = self;
73
- [_socket start];
74
-
75
- RCTPackagerConnection *const __weak weakSelf = self;
76
- _bundleURLChangeObserver =
77
- [[NSNotificationCenter defaultCenter] addObserverForName:RCTBundleURLProviderUpdatedNotification
78
- object:nil
79
- queue:[NSOperationQueue mainQueue]
80
- usingBlock:^(NSNotification *_Nonnull __unused note) {
81
- [weakSelf bundleURLSettingsChanged];
82
- }];
83
- _reloadWithPotentiallyNewURLObserver =
84
- [[NSNotificationCenter defaultCenter] addObserverForName:RCTTriggerReloadCommandNotification
85
- object:nil
86
- queue:[NSOperationQueue mainQueue]
87
- usingBlock:^(NSNotification *_Nonnull __unused note) {
88
- [weakSelf bundleURLSettingsChanged];
89
- }];
90
61
  }
91
62
  return self;
92
63
  }
@@ -119,6 +90,32 @@ static RCTReconnectingWebSocket *socketForLocation(NSString *const serverHostPor
119
90
  return [[RCTReconnectingWebSocket alloc] initWithURL:components.URL queue:queue];
120
91
  }
121
92
 
93
+ - (void)startWithBundleManager:(RCTBundleManager *)bundleManager
94
+ {
95
+ _serverHostPortForSocket = [bundleManager.bundleConfig getPackagerServerHost];
96
+ _serverSchemeForSocket = [bundleManager.bundleConfig getPackagerServerScheme];
97
+ _socket = socketForLocation(_serverHostPortForSocket, _serverSchemeForSocket);
98
+ _socket.delegate = self;
99
+ [_socket start];
100
+ _bundleManager = bundleManager;
101
+
102
+ RCTPackagerConnection *const __weak weakSelf = self;
103
+ _bundleURLChangeObserver =
104
+ [[NSNotificationCenter defaultCenter] addObserverForName:RCTBundleURLProviderUpdatedNotification
105
+ object:nil
106
+ queue:[NSOperationQueue mainQueue]
107
+ usingBlock:^(NSNotification *_Nonnull __unused note) {
108
+ [weakSelf bundleURLSettingsChanged];
109
+ }];
110
+ _reloadWithPotentiallyNewURLObserver =
111
+ [[NSNotificationCenter defaultCenter] addObserverForName:RCTTriggerReloadCommandNotification
112
+ object:nil
113
+ queue:[NSOperationQueue mainQueue]
114
+ usingBlock:^(NSNotification *_Nonnull __unused note) {
115
+ [weakSelf bundleURLSettingsChanged];
116
+ }];
117
+ }
118
+
122
119
  - (void)stop
123
120
  {
124
121
  std::lock_guard<std::mutex> l(_mutex);
@@ -144,7 +141,7 @@ static RCTReconnectingWebSocket *socketForLocation(NSString *const serverHostPor
144
141
  return; // already stopped
145
142
  }
146
143
 
147
- NSString *const serverScheme = [[RCTBundleURLProvider sharedSettings] packagerScheme];
144
+ NSString *const serverScheme = [_bundleManager.bundleConfig getPackagerServerScheme];
148
145
  if ([packagerServerHostPort isEqual:_serverHostPortForSocket] && [serverScheme isEqual:_serverSchemeForSocket]) {
149
146
  return; // unchanged
150
147
  }
@@ -161,7 +158,7 @@ static RCTReconnectingWebSocket *socketForLocation(NSString *const serverHostPor
161
158
  - (void)bundleURLSettingsChanged
162
159
  {
163
160
  // Will only reconnect if `packagerServerHostPort` has actually changed
164
- [self reconnect:[[RCTBundleURLProvider sharedSettings] packagerServerHostPort]];
161
+ [self reconnect:[_bundleManager.bundleConfig getPackagerServerHost]];
165
162
  }
166
163
 
167
164
  - (RCTHandlerToken)addNotificationHandler:(RCTNotificationHandler)handler
@@ -238,6 +238,7 @@ protected:
238
238
  methodMap_["disableViewPreallocationAndroid"] = MethodMetadata {.argCount = 0, .invoker = __disableViewPreallocationAndroid};
239
239
  methodMap_["enableAccessibilityOrder"] = MethodMetadata {.argCount = 0, .invoker = __enableAccessibilityOrder};
240
240
  methodMap_["enableAccumulatedUpdatesInRawPropsAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enableAccumulatedUpdatesInRawPropsAndroid};
241
+ methodMap_["enableAndroidAntialiasedBorderRadiusClipping"] = MethodMetadata {.argCount = 0, .invoker = __enableAndroidAntialiasedBorderRadiusClipping};
241
242
  methodMap_["enableAndroidLinearText"] = MethodMetadata {.argCount = 0, .invoker = __enableAndroidLinearText};
242
243
  methodMap_["enableAndroidTextMeasurementOptimizations"] = MethodMetadata {.argCount = 0, .invoker = __enableAndroidTextMeasurementOptimizations};
243
244
  methodMap_["enableBridgelessArchitecture"] = MethodMetadata {.argCount = 0, .invoker = __enableBridgelessArchitecture};
@@ -259,6 +260,7 @@ protected:
259
260
  methodMap_["enableImmediateUpdateModeForContentOffsetChanges"] = MethodMetadata {.argCount = 0, .invoker = __enableImmediateUpdateModeForContentOffsetChanges};
260
261
  methodMap_["enableImperativeFocus"] = MethodMetadata {.argCount = 0, .invoker = __enableImperativeFocus};
261
262
  methodMap_["enableInteropViewManagerClassLookUpOptimizationIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableInteropViewManagerClassLookUpOptimizationIOS};
263
+ methodMap_["enableIntersectionObserverByDefault"] = MethodMetadata {.argCount = 0, .invoker = __enableIntersectionObserverByDefault};
262
264
  methodMap_["enableKeyEvents"] = MethodMetadata {.argCount = 0, .invoker = __enableKeyEvents};
263
265
  methodMap_["enableLayoutAnimationsOnAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enableLayoutAnimationsOnAndroid};
264
266
  methodMap_["enableLayoutAnimationsOnIOS"] = MethodMetadata {.argCount = 0, .invoker = __enableLayoutAnimationsOnIOS};
@@ -419,6 +421,13 @@ private:
419
421
  return bridging::callFromJs<bool>(rt, &T::enableAccumulatedUpdatesInRawPropsAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
420
422
  }
421
423
 
424
+ static jsi::Value __enableAndroidAntialiasedBorderRadiusClipping(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
425
+ static_assert(
426
+ bridging::getParameterCount(&T::enableAndroidAntialiasedBorderRadiusClipping) == 1,
427
+ "Expected enableAndroidAntialiasedBorderRadiusClipping(...) to have 1 parameters");
428
+ return bridging::callFromJs<bool>(rt, &T::enableAndroidAntialiasedBorderRadiusClipping, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
429
+ }
430
+
422
431
  static jsi::Value __enableAndroidLinearText(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
423
432
  static_assert(
424
433
  bridging::getParameterCount(&T::enableAndroidLinearText) == 1,
@@ -566,6 +575,13 @@ private:
566
575
  return bridging::callFromJs<bool>(rt, &T::enableInteropViewManagerClassLookUpOptimizationIOS, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
567
576
  }
568
577
 
578
+ static jsi::Value __enableIntersectionObserverByDefault(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
579
+ static_assert(
580
+ bridging::getParameterCount(&T::enableIntersectionObserverByDefault) == 1,
581
+ "Expected enableIntersectionObserverByDefault(...) to have 1 parameters");
582
+ return bridging::callFromJs<bool>(rt, &T::enableIntersectionObserverByDefault, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
583
+ }
584
+
569
585
  static jsi::Value __enableKeyEvents(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
570
586
  static_assert(
571
587
  bridging::getParameterCount(&T::enableKeyEvents) == 1,
@@ -3228,6 +3228,7 @@ public abstract interface class com/facebook/react/turbomodule/core/interfaces/T
3228
3228
  public final class com/facebook/react/uimanager/BackgroundStyleApplicator {
3229
3229
  public static final field INSTANCE Lcom/facebook/react/uimanager/BackgroundStyleApplicator;
3230
3230
  public static final fun clipToPaddingBox (Landroid/view/View;Landroid/graphics/Canvas;)V
3231
+ public static final fun clipToPaddingBoxWithAntiAliasing (Landroid/view/View;Landroid/graphics/Canvas;Lkotlin/jvm/functions/Function0;)V
3231
3232
  public static final fun getBackgroundColor (Landroid/view/View;)Ljava/lang/Integer;
3232
3233
  public static final fun getBorderColor (Landroid/view/View;Lcom/facebook/react/uimanager/style/LogicalEdge;)Ljava/lang/Integer;
3233
3234
  public static final fun getBorderRadius (Landroid/view/View;Lcom/facebook/react/uimanager/style/BorderRadiusProp;)Lcom/facebook/react/uimanager/LengthPercentage;
@@ -104,6 +104,8 @@ val preparePrefab by
104
104
  Pair(File(buildDir, "third-party-ndk/glog/exported/").absolutePath, ""),
105
105
  // jsiinpsector
106
106
  Pair("../ReactCommon/jsinspector-modern/", "jsinspector-modern/"),
107
+ // jsitooling
108
+ Pair("../ReactCommon/jsitooling/", ""),
107
109
  // mapbufferjni
108
110
  Pair("src/main/jni/react/mapbuffer", ""),
109
111
  // turbomodulejsijni
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.84.0-nightly-20251113-6ddba300b
1
+ VERSION_NAME=0.84.0-nightly-20251115-e08abbcb9
2
2
  react.internal.publishingGroup=com.facebook.react
3
3
  react.internal.hermesPublishingGroup=com.facebook.hermes
4
4
 
@@ -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<<9cb554e599417e707c0953baa6adb0c2>>
7
+ * @generated SignedSource<<b1469e448ca6f773a3095ec2cbf4bc00>>
8
8
  */
9
9
 
10
10
  /**
@@ -114,6 +114,12 @@ public object ReactNativeFeatureFlags {
114
114
  @JvmStatic
115
115
  public fun enableAccumulatedUpdatesInRawPropsAndroid(): Boolean = accessor.enableAccumulatedUpdatesInRawPropsAndroid()
116
116
 
117
+ /**
118
+ * Enable antialiased border radius clipping for Android API 28 and below using manual masking with Porter-Duff compositing
119
+ */
120
+ @JvmStatic
121
+ public fun enableAndroidAntialiasedBorderRadiusClipping(): Boolean = accessor.enableAndroidAntialiasedBorderRadiusClipping()
122
+
117
123
  /**
118
124
  * Enables linear text rendering on Android wherever subpixel text rendering is enabled
119
125
  */
@@ -240,6 +246,12 @@ public object ReactNativeFeatureFlags {
240
246
  @JvmStatic
241
247
  public fun enableInteropViewManagerClassLookUpOptimizationIOS(): Boolean = accessor.enableInteropViewManagerClassLookUpOptimizationIOS()
242
248
 
249
+ /**
250
+ * Enables the IntersectionObserver Web API in React Native.
251
+ */
252
+ @JvmStatic
253
+ public fun enableIntersectionObserverByDefault(): Boolean = accessor.enableIntersectionObserverByDefault()
254
+
243
255
  /**
244
256
  * Enables key up/down/press events to be sent to JS from components
245
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<<24a3e681a86bce628917f5e20ce1b1eb>>
7
+ * @generated SignedSource<<b2c2e874b05283e0ebd62899f7c417d8>>
8
8
  */
9
9
 
10
10
  /**
@@ -34,6 +34,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
34
34
  private var disableViewPreallocationAndroidCache: Boolean? = null
35
35
  private var enableAccessibilityOrderCache: Boolean? = null
36
36
  private var enableAccumulatedUpdatesInRawPropsAndroidCache: Boolean? = null
37
+ private var enableAndroidAntialiasedBorderRadiusClippingCache: Boolean? = null
37
38
  private var enableAndroidLinearTextCache: Boolean? = null
38
39
  private var enableAndroidTextMeasurementOptimizationsCache: Boolean? = null
39
40
  private var enableBridgelessArchitectureCache: Boolean? = null
@@ -55,6 +56,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
55
56
  private var enableImmediateUpdateModeForContentOffsetChangesCache: Boolean? = null
56
57
  private var enableImperativeFocusCache: Boolean? = null
57
58
  private var enableInteropViewManagerClassLookUpOptimizationIOSCache: Boolean? = null
59
+ private var enableIntersectionObserverByDefaultCache: Boolean? = null
58
60
  private var enableKeyEventsCache: Boolean? = null
59
61
  private var enableLayoutAnimationsOnAndroidCache: Boolean? = null
60
62
  private var enableLayoutAnimationsOnIOSCache: Boolean? = null
@@ -234,6 +236,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
234
236
  return cached
235
237
  }
236
238
 
239
+ override fun enableAndroidAntialiasedBorderRadiusClipping(): Boolean {
240
+ var cached = enableAndroidAntialiasedBorderRadiusClippingCache
241
+ if (cached == null) {
242
+ cached = ReactNativeFeatureFlagsCxxInterop.enableAndroidAntialiasedBorderRadiusClipping()
243
+ enableAndroidAntialiasedBorderRadiusClippingCache = cached
244
+ }
245
+ return cached
246
+ }
247
+
237
248
  override fun enableAndroidLinearText(): Boolean {
238
249
  var cached = enableAndroidLinearTextCache
239
250
  if (cached == null) {
@@ -423,6 +434,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
423
434
  return cached
424
435
  }
425
436
 
437
+ override fun enableIntersectionObserverByDefault(): Boolean {
438
+ var cached = enableIntersectionObserverByDefaultCache
439
+ if (cached == null) {
440
+ cached = ReactNativeFeatureFlagsCxxInterop.enableIntersectionObserverByDefault()
441
+ enableIntersectionObserverByDefaultCache = cached
442
+ }
443
+ return cached
444
+ }
445
+
426
446
  override fun enableKeyEvents(): Boolean {
427
447
  var cached = enableKeyEventsCache
428
448
  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<<f57b2ecf22eabb7f207b86c472059084>>
7
+ * @generated SignedSource<<ccb22ddcd1a76b7c52cf0f1b23e6152b>>
8
8
  */
9
9
 
10
10
  /**
@@ -56,6 +56,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
56
56
 
57
57
  @DoNotStrip @JvmStatic public external fun enableAccumulatedUpdatesInRawPropsAndroid(): Boolean
58
58
 
59
+ @DoNotStrip @JvmStatic public external fun enableAndroidAntialiasedBorderRadiusClipping(): Boolean
60
+
59
61
  @DoNotStrip @JvmStatic public external fun enableAndroidLinearText(): Boolean
60
62
 
61
63
  @DoNotStrip @JvmStatic public external fun enableAndroidTextMeasurementOptimizations(): Boolean
@@ -98,6 +100,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
98
100
 
99
101
  @DoNotStrip @JvmStatic public external fun enableInteropViewManagerClassLookUpOptimizationIOS(): Boolean
100
102
 
103
+ @DoNotStrip @JvmStatic public external fun enableIntersectionObserverByDefault(): Boolean
104
+
101
105
  @DoNotStrip @JvmStatic public external fun enableKeyEvents(): Boolean
102
106
 
103
107
  @DoNotStrip @JvmStatic public external fun enableLayoutAnimationsOnAndroid(): 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<<47b33d1a21af24f369e52d3b8f226d73>>
7
+ * @generated SignedSource<<30ca2685ceb6f2733531f5e7fce4416d>>
8
8
  */
9
9
 
10
10
  /**
@@ -51,6 +51,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
51
51
 
52
52
  override fun enableAccumulatedUpdatesInRawPropsAndroid(): Boolean = false
53
53
 
54
+ override fun enableAndroidAntialiasedBorderRadiusClipping(): Boolean = false
55
+
54
56
  override fun enableAndroidLinearText(): Boolean = false
55
57
 
56
58
  override fun enableAndroidTextMeasurementOptimizations(): Boolean = false
@@ -93,6 +95,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
93
95
 
94
96
  override fun enableInteropViewManagerClassLookUpOptimizationIOS(): Boolean = false
95
97
 
98
+ override fun enableIntersectionObserverByDefault(): Boolean = false
99
+
96
100
  override fun enableKeyEvents(): Boolean = false
97
101
 
98
102
  override fun enableLayoutAnimationsOnAndroid(): Boolean = false
@@ -159,7 +163,7 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
159
163
 
160
164
  override fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean = false
161
165
 
162
- override fun shouldSetEnabledBasedOnAccessibilityState(): Boolean = false
166
+ override fun shouldSetEnabledBasedOnAccessibilityState(): Boolean = true
163
167
 
164
168
  override fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean = false
165
169
 
@@ -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<<a9c53954bffc14f69cf1e7c4707cb37a>>
7
+ * @generated SignedSource<<6d1a15e64f42cc7d8869300720276215>>
8
8
  */
9
9
 
10
10
  /**
@@ -38,6 +38,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
38
38
  private var disableViewPreallocationAndroidCache: Boolean? = null
39
39
  private var enableAccessibilityOrderCache: Boolean? = null
40
40
  private var enableAccumulatedUpdatesInRawPropsAndroidCache: Boolean? = null
41
+ private var enableAndroidAntialiasedBorderRadiusClippingCache: Boolean? = null
41
42
  private var enableAndroidLinearTextCache: Boolean? = null
42
43
  private var enableAndroidTextMeasurementOptimizationsCache: Boolean? = null
43
44
  private var enableBridgelessArchitectureCache: Boolean? = null
@@ -59,6 +60,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
59
60
  private var enableImmediateUpdateModeForContentOffsetChangesCache: Boolean? = null
60
61
  private var enableImperativeFocusCache: Boolean? = null
61
62
  private var enableInteropViewManagerClassLookUpOptimizationIOSCache: Boolean? = null
63
+ private var enableIntersectionObserverByDefaultCache: Boolean? = null
62
64
  private var enableKeyEventsCache: Boolean? = null
63
65
  private var enableLayoutAnimationsOnAndroidCache: Boolean? = null
64
66
  private var enableLayoutAnimationsOnIOSCache: Boolean? = null
@@ -252,6 +254,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
252
254
  return cached
253
255
  }
254
256
 
257
+ override fun enableAndroidAntialiasedBorderRadiusClipping(): Boolean {
258
+ var cached = enableAndroidAntialiasedBorderRadiusClippingCache
259
+ if (cached == null) {
260
+ cached = currentProvider.enableAndroidAntialiasedBorderRadiusClipping()
261
+ accessedFeatureFlags.add("enableAndroidAntialiasedBorderRadiusClipping")
262
+ enableAndroidAntialiasedBorderRadiusClippingCache = cached
263
+ }
264
+ return cached
265
+ }
266
+
255
267
  override fun enableAndroidLinearText(): Boolean {
256
268
  var cached = enableAndroidLinearTextCache
257
269
  if (cached == null) {
@@ -462,6 +474,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
462
474
  return cached
463
475
  }
464
476
 
477
+ override fun enableIntersectionObserverByDefault(): Boolean {
478
+ var cached = enableIntersectionObserverByDefaultCache
479
+ if (cached == null) {
480
+ cached = currentProvider.enableIntersectionObserverByDefault()
481
+ accessedFeatureFlags.add("enableIntersectionObserverByDefault")
482
+ enableIntersectionObserverByDefaultCache = cached
483
+ }
484
+ return cached
485
+ }
486
+
465
487
  override fun enableKeyEvents(): Boolean {
466
488
  var cached = enableKeyEventsCache
467
489
  if (cached == null) {