react-native 0.84.0-nightly-20251114-dd6805dec → 0.84.0-nightly-20251116-d52b9d2f8

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 (46) 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 +8 -0
  10. package/ReactAndroid/api/ReactAndroid.api +1 -0
  11. package/ReactAndroid/gradle.properties +1 -1
  12. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +7 -1
  13. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +11 -1
  14. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +3 -1
  15. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +3 -1
  16. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +12 -1
  17. package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +3 -1
  18. package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
  19. package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +84 -2
  20. package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
  21. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -1
  22. package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -1
  23. package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
  24. package/ReactCommon/jsi/jsi/jsi.h +6 -0
  25. package/ReactCommon/jsinspector-modern/tracing/TracingCategory.h +10 -5
  26. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -1
  27. package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -1
  28. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +93 -75
  29. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +4 -2
  30. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +5 -1
  31. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +10 -1
  32. package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +2 -1
  33. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboModule.h +0 -1
  34. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +6 -1
  35. package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -1
  36. package/ReactCommon/react/renderer/components/image/ImageProps.cpp +2 -2
  37. package/ReactCommon/react/renderer/components/image/ImageProps.h +2 -2
  38. package/ReactCommon/react/renderer/components/image/ImageShadowNode.cpp +9 -2
  39. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h +9 -4
  40. package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h +8 -4
  41. package/package.json +9 -9
  42. package/sdks/hermes-engine/version.properties +1 -1
  43. package/src/private/featureflags/ReactNativeFeatureFlags.js +6 -1
  44. package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -1
  45. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.cpp +0 -212
  46. package/ReactCommon/react/nativemodule/core/ReactCommon/TurboCxxModule.h +0 -40
@@ -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-20251114-dd6805dec';
32
+ static prerelease: string | null = 'nightly-20251116-d52b9d2f8';
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-20251114-dd6805dec",
27
+ RCTVersionPrerelease: @"nightly-20251116-d52b9d2f8",
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};
@@ -420,6 +421,13 @@ private:
420
421
  return bridging::callFromJs<bool>(rt, &T::enableAccumulatedUpdatesInRawPropsAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
421
422
  }
422
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
+
423
431
  static jsi::Value __enableAndroidLinearText(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
424
432
  static_assert(
425
433
  bridging::getParameterCount(&T::enableAndroidLinearText) == 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;
@@ -1,4 +1,4 @@
1
- VERSION_NAME=0.84.0-nightly-20251114-dd6805dec
1
+ VERSION_NAME=0.84.0-nightly-20251116-d52b9d2f8
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<<10999fe360a25451c316eed2d27b6d92>>
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
  */
@@ -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<<b935cd2546fdba877e317aea30fceaf9>>
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
@@ -235,6 +236,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
235
236
  return cached
236
237
  }
237
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
+
238
248
  override fun enableAndroidLinearText(): Boolean {
239
249
  var cached = enableAndroidLinearTextCache
240
250
  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<<b7a9d14c50bae9afa15b3ead8308fc9b>>
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
@@ -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<<4b24bc3165b6ab1583efc8e1a22444ed>>
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
@@ -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<<bd86cec4dcf659b9586aeee1c141963c>>
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
@@ -253,6 +254,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
253
254
  return cached
254
255
  }
255
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
+
256
267
  override fun enableAndroidLinearText(): Boolean {
257
268
  var cached = enableAndroidLinearTextCache
258
269
  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<<90fd5f8d9c5b6833c6fdd10167577bb9>>
7
+ * @generated SignedSource<<48d0d5486793b60914cfd595f0fc78d1>>
8
8
  */
9
9
 
10
10
  /**
@@ -51,6 +51,8 @@ public interface ReactNativeFeatureFlagsProvider {
51
51
 
52
52
  @DoNotStrip public fun enableAccumulatedUpdatesInRawPropsAndroid(): Boolean
53
53
 
54
+ @DoNotStrip public fun enableAndroidAntialiasedBorderRadiusClipping(): Boolean
55
+
54
56
  @DoNotStrip public fun enableAndroidLinearText(): Boolean
55
57
 
56
58
  @DoNotStrip public fun enableAndroidTextMeasurementOptimizations(): Boolean
@@ -15,6 +15,6 @@ public object ReactNativeVersion {
15
15
  "major" to 0,
16
16
  "minor" to 84,
17
17
  "patch" to 0,
18
- "prerelease" to "nightly-20251114-dd6805dec"
18
+ "prerelease" to "nightly-20251116-d52b9d2f8"
19
19
  )
20
20
  }