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.
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/React/Base/RCTBundleManager.h +2 -2
- package/React/Base/RCTBundleManager.m +14 -1
- package/React/Base/RCTVersion.m +1 -1
- package/React/CoreModules/RCTDevSettings.h +36 -1
- package/React/CoreModules/RCTDevSettings.mm +45 -9
- package/React/DevSupport/RCTPackagerConnection.h +4 -2
- package/React/DevSupport/RCTPackagerConnection.mm +30 -33
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +16 -0
- package/ReactAndroid/api/ReactAndroid.api +1 -0
- package/ReactAndroid/build.gradle.kts +2 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +13 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +21 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +6 -2
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +23 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsOverrides_RNOSS_Canary_Android.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/network/NetworkEventUtil.kt +23 -0
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +84 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageView.kt +12 -9
- package/ReactAndroid/src/main/jni/CMakeLists.txt +5 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +29 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +7 -1
- package/ReactAndroid/src/main/res/views/uimanager/values-ne/strings.xml +1 -0
- package/ReactCommon/React-Fabric.podspec +8 -2
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +11 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +110 -74
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +6 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +10 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +19 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsOverridesOSSCanary.h +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +3 -1
- package/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModuleManager.mm +2 -2
- package/ReactCommon/react/nativemodule/defaults/CMakeLists.txt +1 -0
- package/ReactCommon/react/nativemodule/defaults/DefaultTurboModules.cpp +7 -0
- package/ReactCommon/react/nativemodule/defaults/React-defaultsnativemodule.podspec +5 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +11 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +5 -1
- package/ReactCommon/react/nativemodule/intersectionobserver/NativeIntersectionObserver.h +4 -0
- package/ReactCommon/react/nativemodule/intersectionobserver/React-intersectionobservernativemodule.podspec +66 -0
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +4 -10
- package/ReactCommon/react/renderer/core/tests/ShadowNodeTest.cpp +32 -0
- package/package.json +8 -8
- package/scripts/react_native_pods.rb +1 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +13 -3
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -1
- 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-
|
|
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
|
-
- (
|
|
57
|
+
- (nonnull NSString *)getPackagerServerScheme;
|
|
58
58
|
|
|
59
|
-
- (
|
|
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
|
-
|
|
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
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
|
|
24
24
|
RCTVersionMajor: @(0),
|
|
25
25
|
RCTVersionMinor: @(84),
|
|
26
26
|
RCTVersionPatch: @(0),
|
|
27
|
-
RCTVersionPrerelease: @"nightly-
|
|
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
|
|
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
|
|
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 = [
|
|
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
|
-
|
|
200
|
+
__weak __typeof(self) weakSelf = self;
|
|
201
|
+
devMenuToken = [self
|
|
191
202
|
addNotificationHandler:^(id params) {
|
|
192
|
-
|
|
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
|
-
[
|
|
258
|
+
[_packagerConnection removeHandler:reloadToken];
|
|
244
259
|
#if RCT_DEV_MENU
|
|
245
|
-
[
|
|
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
|
-
[
|
|
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
|
|
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 = [
|
|
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:[
|
|
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
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<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<<
|
|
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<<
|
|
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<<
|
|
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 =
|
|
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<<
|
|
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) {
|