react-native 0.82.0-rc.0 → 0.83.0-nightly-20250903-f33a1cd26
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 +2 -2
- package/Libraries/Core/setUpPerformance.js +3 -5
- package/Libraries/Lists/FlatList.js +8 -8
- package/Libraries/Lists/ViewabilityHelper.js +1 -1
- package/Libraries/Lists/VirtualizedList.js +1 -0
- package/React/Base/RCTVersion.m +2 -2
- package/React/CoreModules/RCTAlertController.mm +6 -1
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +6 -6
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +9 -9
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +8 -2
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PrefetchResourcesMountItem.kt +34 -0
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +11 -11
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +12 -12
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +3 -3
- package/ReactAndroid/src/main/java/com/facebook/react/modules/image/ImageLoaderModule.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +53 -145
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CompositeBackgroundDrawable.kt +0 -32
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -15
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -4
- package/ReactCommon/cxxreact/ReactNativeVersion.h +3 -3
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -6
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +27 -27
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +3 -3
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +5 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +10 -10
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +2 -2
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +6 -6
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -3
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +3 -0
- package/ReactCommon/react/renderer/animated/nodes/AnimatedNode.cpp +2 -0
- package/ReactCommon/react/renderer/animated/nodes/AnimatedNode.h +1 -0
- package/ReactCommon/react/renderer/animated/nodes/ObjectAnimatedNode.cpp +121 -0
- package/ReactCommon/react/renderer/animated/nodes/ObjectAnimatedNode.h +38 -0
- package/ReactCommon/react/renderer/animated/nodes/PropsAnimatedNode.cpp +7 -0
- package/ReactCommon/react/renderer/animated/nodes/StyleAnimatedNode.cpp +7 -0
- package/ReactCommon/react/renderer/animated/tests/AnimatedNodeTests.cpp +51 -0
- package/ReactCommon/react/renderer/components/view/AccessibilityPrimitives.h +2 -60
- package/ReactCommon/react/renderer/components/view/accessibilityPropsConversions.h +56 -0
- package/ReactCommon/react/renderer/components/view/conversions.h +1 -1
- package/ReactCommon/react/renderer/components/view/platform/android/react/renderer/components/view/HostPlatformViewProps.cpp +3 -40
- package/flow/bom.js.flow +157 -0
- package/index.js.flow +1 -0
- package/package.json +8 -8
- package/scripts/replace-rncore-version.js +4 -2
- package/sdks/hermes-engine/utils/replace_hermes_version.js +4 -2
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/src/private/components/virtualview/VirtualView.js +22 -27
- package/src/private/featureflags/ReactNativeFeatureFlags.js +12 -6
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -2
- package/src/private/setup/{setUpPerformanceObserver.js → setUpPerformanceModern.js} +43 -18
- package/src/private/webapis/performance/EventTiming.js +34 -15
- package/src/private/webapis/performance/LongTasks.js +35 -2
- package/src/private/webapis/performance/Performance.js +23 -6
- package/src/private/webapis/performance/PerformanceEntry.js +21 -8
- package/src/private/webapis/performance/PerformanceObserver.js +30 -1
- package/src/private/webapis/performance/ResourceTiming.js +29 -18
- package/src/private/webapis/performance/UserTiming.js +33 -28
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +3 -4
- package/third-party-podspecs/replace_dependencies_version.js +4 -2
- package/types_generated/Libraries/Lists/VirtualizedList.d.ts +2 -2
- package/types_generated/index.d.ts +2 -2
- package/types_generated/src/private/components/virtualview/VirtualView.d.ts +7 -7
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/drawable/CSSBackgroundDrawable.java +0 -1474
- package/sdks/.hermesversion +0 -1
|
@@ -27,9 +27,9 @@
|
|
|
27
27
|
*/
|
|
28
28
|
export default class ReactNativeVersion {
|
|
29
29
|
static major: number = 0;
|
|
30
|
-
static minor: number =
|
|
30
|
+
static minor: number = 83;
|
|
31
31
|
static patch: number = 0;
|
|
32
|
-
static prerelease: string | null = '
|
|
32
|
+
static prerelease: string | null = 'nightly-20250903-f33a1cd26';
|
|
33
33
|
|
|
34
34
|
static getVersionString(): string {
|
|
35
35
|
return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
|
|
@@ -4,19 +4,17 @@
|
|
|
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
|
-
* @flow strict
|
|
7
|
+
* @flow strict-local
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
+
import setUpPerformanceModern from '../../src/private/setup/setUpPerformanceModern';
|
|
11
12
|
import NativePerformance from '../../src/private/webapis/performance/specs/NativePerformance';
|
|
12
13
|
|
|
13
14
|
// In case if the native implementation of the Performance API is available, use it,
|
|
14
15
|
// otherwise fall back to the legacy/default one, which only defines 'Performance.now()'
|
|
15
16
|
if (NativePerformance) {
|
|
16
|
-
|
|
17
|
-
require('../../src/private/webapis/performance/Performance').default;
|
|
18
|
-
// $FlowExpectedError[cannot-write]
|
|
19
|
-
global.performance = new Performance();
|
|
17
|
+
setUpPerformanceModern();
|
|
20
18
|
} else {
|
|
21
19
|
if (!global.performance) {
|
|
22
20
|
// $FlowExpectedError[cannot-write]
|
|
@@ -13,8 +13,8 @@ import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
|
|
|
13
13
|
import type {
|
|
14
14
|
ListRenderItem,
|
|
15
15
|
ListRenderItemInfo,
|
|
16
|
+
ListViewToken,
|
|
16
17
|
ViewabilityConfigCallbackPair,
|
|
17
|
-
ViewToken,
|
|
18
18
|
VirtualizedListProps,
|
|
19
19
|
} from '@react-native/virtualized-lists';
|
|
20
20
|
|
|
@@ -573,7 +573,7 @@ class FlatList<ItemT = any> extends React.PureComponent<FlatListProps<ItemT>> {
|
|
|
573
573
|
return keyExtractor(items, index);
|
|
574
574
|
};
|
|
575
575
|
|
|
576
|
-
_pushMultiColumnViewable(arr: Array<
|
|
576
|
+
_pushMultiColumnViewable(arr: Array<ListViewToken>, v: ListViewToken): void {
|
|
577
577
|
const numColumns = numColumnsOrDefault(this.props.numColumns);
|
|
578
578
|
const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;
|
|
579
579
|
v.item.forEach((item, ii) => {
|
|
@@ -585,22 +585,22 @@ class FlatList<ItemT = any> extends React.PureComponent<FlatListProps<ItemT>> {
|
|
|
585
585
|
|
|
586
586
|
_createOnViewableItemsChanged(
|
|
587
587
|
onViewableItemsChanged: ?(info: {
|
|
588
|
-
viewableItems: Array<
|
|
589
|
-
changed: Array<
|
|
588
|
+
viewableItems: Array<ListViewToken>,
|
|
589
|
+
changed: Array<ListViewToken>,
|
|
590
590
|
...
|
|
591
591
|
}) => void,
|
|
592
592
|
// $FlowFixMe[missing-local-annot]
|
|
593
593
|
) {
|
|
594
594
|
return (info: {
|
|
595
|
-
viewableItems: Array<
|
|
596
|
-
changed: Array<
|
|
595
|
+
viewableItems: Array<ListViewToken>,
|
|
596
|
+
changed: Array<ListViewToken>,
|
|
597
597
|
...
|
|
598
598
|
}) => {
|
|
599
599
|
const numColumns = numColumnsOrDefault(this.props.numColumns);
|
|
600
600
|
if (onViewableItemsChanged) {
|
|
601
601
|
if (numColumns > 1) {
|
|
602
|
-
const changed: Array<
|
|
603
|
-
const viewableItems: Array<
|
|
602
|
+
const changed: Array<ListViewToken> = [];
|
|
603
|
+
const viewableItems: Array<ListViewToken> = [];
|
|
604
604
|
info.viewableItems.forEach(v =>
|
|
605
605
|
this._pushMultiColumnViewable(viewableItems, v),
|
|
606
606
|
);
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -22,9 +22,9 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
|
|
22
22
|
dispatch_once(&onceToken, ^(void){
|
|
23
23
|
__rnVersion = @{
|
|
24
24
|
RCTVersionMajor: @(0),
|
|
25
|
-
RCTVersionMinor: @(
|
|
25
|
+
RCTVersionMinor: @(83),
|
|
26
26
|
RCTVersionPatch: @(0),
|
|
27
|
-
RCTVersionPrerelease: @"
|
|
27
|
+
RCTVersionPrerelease: @"nightly-20250903-f33a1cd26",
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
return __rnVersion;
|
|
@@ -20,7 +20,12 @@
|
|
|
20
20
|
- (UIWindow *)alertWindow
|
|
21
21
|
{
|
|
22
22
|
if (_alertWindow == nil) {
|
|
23
|
-
|
|
23
|
+
UIWindowScene *scene = RCTKeyWindow().windowScene;
|
|
24
|
+
if (scene != nil) {
|
|
25
|
+
_alertWindow = [[UIWindow alloc] initWithWindowScene:scene];
|
|
26
|
+
} else {
|
|
27
|
+
_alertWindow = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
|
|
28
|
+
}
|
|
24
29
|
|
|
25
30
|
if (_alertWindow) {
|
|
26
31
|
_alertWindow.rootViewController = [UIViewController new];
|
|
@@ -207,6 +207,11 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableI
|
|
|
207
207
|
rt
|
|
208
208
|
);
|
|
209
209
|
}
|
|
210
|
+
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableImagePrefetchingOnUiThreadAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
211
|
+
return static_cast<NativeReactNativeFeatureFlagsCxxSpecJSI *>(&turboModule)->enableImagePrefetchingOnUiThreadAndroid(
|
|
212
|
+
rt
|
|
213
|
+
);
|
|
214
|
+
}
|
|
210
215
|
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableImmediateUpdateModeForContentOffsetChanges(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
211
216
|
return static_cast<NativeReactNativeFeatureFlagsCxxSpecJSI *>(&turboModule)->enableImmediateUpdateModeForContentOffsetChanges(
|
|
212
217
|
rt
|
|
@@ -247,11 +252,6 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableN
|
|
|
247
252
|
rt
|
|
248
253
|
);
|
|
249
254
|
}
|
|
250
|
-
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableNewBackgroundAndBorderDrawables(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
251
|
-
return static_cast<NativeReactNativeFeatureFlagsCxxSpecJSI *>(&turboModule)->enableNewBackgroundAndBorderDrawables(
|
|
252
|
-
rt
|
|
253
|
-
);
|
|
254
|
-
}
|
|
255
255
|
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enablePreparedTextLayout(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
256
256
|
return static_cast<NativeReactNativeFeatureFlagsCxxSpecJSI *>(&turboModule)->enablePreparedTextLayout(
|
|
257
257
|
rt
|
|
@@ -460,6 +460,7 @@ NativeReactNativeFeatureFlagsCxxSpecJSI::NativeReactNativeFeatureFlagsCxxSpecJSI
|
|
|
460
460
|
methodMap_["enableIOSTextBaselineOffsetPerLine"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableIOSTextBaselineOffsetPerLine};
|
|
461
461
|
methodMap_["enableIOSViewClipToPaddingBox"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableIOSViewClipToPaddingBox};
|
|
462
462
|
methodMap_["enableImagePrefetchingAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableImagePrefetchingAndroid};
|
|
463
|
+
methodMap_["enableImagePrefetchingOnUiThreadAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableImagePrefetchingOnUiThreadAndroid};
|
|
463
464
|
methodMap_["enableImmediateUpdateModeForContentOffsetChanges"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableImmediateUpdateModeForContentOffsetChanges};
|
|
464
465
|
methodMap_["enableInteropViewManagerClassLookUpOptimizationIOS"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableInteropViewManagerClassLookUpOptimizationIOS};
|
|
465
466
|
methodMap_["enableLayoutAnimationsOnAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableLayoutAnimationsOnAndroid};
|
|
@@ -468,7 +469,6 @@ NativeReactNativeFeatureFlagsCxxSpecJSI::NativeReactNativeFeatureFlagsCxxSpecJSI
|
|
|
468
469
|
methodMap_["enableModuleArgumentNSNullConversionIOS"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableModuleArgumentNSNullConversionIOS};
|
|
469
470
|
methodMap_["enableNativeCSSParsing"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableNativeCSSParsing};
|
|
470
471
|
methodMap_["enableNetworkEventReporting"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableNetworkEventReporting};
|
|
471
|
-
methodMap_["enableNewBackgroundAndBorderDrawables"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableNewBackgroundAndBorderDrawables};
|
|
472
472
|
methodMap_["enablePreparedTextLayout"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enablePreparedTextLayout};
|
|
473
473
|
methodMap_["enablePropsUpdateReconciliationAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enablePropsUpdateReconciliationAndroid};
|
|
474
474
|
methodMap_["enableResourceTimingAPI"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_enableResourceTimingAPI};
|
|
@@ -351,6 +351,7 @@ public:
|
|
|
351
351
|
virtual bool enableIOSTextBaselineOffsetPerLine(jsi::Runtime &rt) = 0;
|
|
352
352
|
virtual bool enableIOSViewClipToPaddingBox(jsi::Runtime &rt) = 0;
|
|
353
353
|
virtual bool enableImagePrefetchingAndroid(jsi::Runtime &rt) = 0;
|
|
354
|
+
virtual bool enableImagePrefetchingOnUiThreadAndroid(jsi::Runtime &rt) = 0;
|
|
354
355
|
virtual bool enableImmediateUpdateModeForContentOffsetChanges(jsi::Runtime &rt) = 0;
|
|
355
356
|
virtual bool enableInteropViewManagerClassLookUpOptimizationIOS(jsi::Runtime &rt) = 0;
|
|
356
357
|
virtual bool enableLayoutAnimationsOnAndroid(jsi::Runtime &rt) = 0;
|
|
@@ -359,7 +360,6 @@ public:
|
|
|
359
360
|
virtual bool enableModuleArgumentNSNullConversionIOS(jsi::Runtime &rt) = 0;
|
|
360
361
|
virtual bool enableNativeCSSParsing(jsi::Runtime &rt) = 0;
|
|
361
362
|
virtual bool enableNetworkEventReporting(jsi::Runtime &rt) = 0;
|
|
362
|
-
virtual bool enableNewBackgroundAndBorderDrawables(jsi::Runtime &rt) = 0;
|
|
363
363
|
virtual bool enablePreparedTextLayout(jsi::Runtime &rt) = 0;
|
|
364
364
|
virtual bool enablePropsUpdateReconciliationAndroid(jsi::Runtime &rt) = 0;
|
|
365
365
|
virtual bool enableResourceTimingAPI(jsi::Runtime &rt) = 0;
|
|
@@ -626,6 +626,14 @@ private:
|
|
|
626
626
|
return bridging::callFromJs<bool>(
|
|
627
627
|
rt, &T::enableImagePrefetchingAndroid, jsInvoker_, instance_);
|
|
628
628
|
}
|
|
629
|
+
bool enableImagePrefetchingOnUiThreadAndroid(jsi::Runtime &rt) override {
|
|
630
|
+
static_assert(
|
|
631
|
+
bridging::getParameterCount(&T::enableImagePrefetchingOnUiThreadAndroid) == 1,
|
|
632
|
+
"Expected enableImagePrefetchingOnUiThreadAndroid(...) to have 1 parameters");
|
|
633
|
+
|
|
634
|
+
return bridging::callFromJs<bool>(
|
|
635
|
+
rt, &T::enableImagePrefetchingOnUiThreadAndroid, jsInvoker_, instance_);
|
|
636
|
+
}
|
|
629
637
|
bool enableImmediateUpdateModeForContentOffsetChanges(jsi::Runtime &rt) override {
|
|
630
638
|
static_assert(
|
|
631
639
|
bridging::getParameterCount(&T::enableImmediateUpdateModeForContentOffsetChanges) == 1,
|
|
@@ -690,14 +698,6 @@ private:
|
|
|
690
698
|
return bridging::callFromJs<bool>(
|
|
691
699
|
rt, &T::enableNetworkEventReporting, jsInvoker_, instance_);
|
|
692
700
|
}
|
|
693
|
-
bool enableNewBackgroundAndBorderDrawables(jsi::Runtime &rt) override {
|
|
694
|
-
static_assert(
|
|
695
|
-
bridging::getParameterCount(&T::enableNewBackgroundAndBorderDrawables) == 1,
|
|
696
|
-
"Expected enableNewBackgroundAndBorderDrawables(...) to have 1 parameters");
|
|
697
|
-
|
|
698
|
-
return bridging::callFromJs<bool>(
|
|
699
|
-
rt, &T::enableNewBackgroundAndBorderDrawables, jsInvoker_, instance_);
|
|
700
|
-
}
|
|
701
701
|
bool enablePreparedTextLayout(jsi::Runtime &rt) override {
|
|
702
702
|
static_assert(
|
|
703
703
|
bridging::getParameterCount(&T::enablePreparedTextLayout) == 1,
|
|
@@ -65,6 +65,7 @@ import com.facebook.react.fabric.mounting.mountitems.BatchMountItem;
|
|
|
65
65
|
import com.facebook.react.fabric.mounting.mountitems.DispatchCommandMountItem;
|
|
66
66
|
import com.facebook.react.fabric.mounting.mountitems.MountItem;
|
|
67
67
|
import com.facebook.react.fabric.mounting.mountitems.MountItemFactory;
|
|
68
|
+
import com.facebook.react.fabric.mounting.mountitems.PrefetchResourcesMountItem;
|
|
68
69
|
import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags;
|
|
69
70
|
import com.facebook.react.internal.featureflags.ReactNativeNewArchitectureFeatureFlags;
|
|
70
71
|
import com.facebook.react.internal.interop.InteropEventEmitter;
|
|
@@ -985,8 +986,13 @@ public class FabricUIManager
|
|
|
985
986
|
*/
|
|
986
987
|
@UnstableReactNativeAPI
|
|
987
988
|
public void experimental_prefetchResources(String componentName, ReadableMapBuffer params) {
|
|
988
|
-
|
|
989
|
-
|
|
989
|
+
if (ReactNativeFeatureFlags.enableImagePrefetchingOnUiThreadAndroid()) {
|
|
990
|
+
mMountItemDispatcher.addMountItem(
|
|
991
|
+
new PrefetchResourcesMountItem(mReactApplicationContext, componentName, params));
|
|
992
|
+
} else {
|
|
993
|
+
mMountingManager.experimental_prefetchResources(
|
|
994
|
+
mReactApplicationContext, componentName, params);
|
|
995
|
+
}
|
|
990
996
|
}
|
|
991
997
|
|
|
992
998
|
void setBinding(FabricUIManagerBinding binding) {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
package com.facebook.react.fabric.mounting.mountitems
|
|
9
|
+
|
|
10
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
11
|
+
import com.facebook.react.common.annotations.FrameworkAPI
|
|
12
|
+
import com.facebook.react.common.annotations.UnstableReactNativeAPI
|
|
13
|
+
import com.facebook.react.common.mapbuffer.ReadableMapBuffer
|
|
14
|
+
import com.facebook.react.fabric.mounting.MountingManager
|
|
15
|
+
|
|
16
|
+
internal class PrefetchResourcesMountItem(
|
|
17
|
+
private val reactApplicationContext: ReactApplicationContext,
|
|
18
|
+
private val componentName: String,
|
|
19
|
+
private val params: ReadableMapBuffer,
|
|
20
|
+
) : MountItem {
|
|
21
|
+
|
|
22
|
+
@OptIn(UnstableReactNativeAPI::class, FrameworkAPI::class)
|
|
23
|
+
override fun execute(mountingManager: MountingManager) {
|
|
24
|
+
mountingManager.experimental_prefetchResources(
|
|
25
|
+
reactApplicationContext,
|
|
26
|
+
componentName,
|
|
27
|
+
params,
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
override fun getSurfaceId(): Int = -1 /* unused */
|
|
32
|
+
|
|
33
|
+
override fun toString(): String = "PrefetchResourcesMountItem"
|
|
34
|
+
}
|
|
@@ -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<<a5534457a42ada7d6e2a5d820844b782>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -174,6 +174,12 @@ public object ReactNativeFeatureFlags {
|
|
|
174
174
|
@JvmStatic
|
|
175
175
|
public fun enableImagePrefetchingAndroid(): Boolean = accessor.enableImagePrefetchingAndroid()
|
|
176
176
|
|
|
177
|
+
/**
|
|
178
|
+
* When enabled, Android will initiate image prefetch requested on ImageShadowNode::layout on the UI thread
|
|
179
|
+
*/
|
|
180
|
+
@JvmStatic
|
|
181
|
+
public fun enableImagePrefetchingOnUiThreadAndroid(): Boolean = accessor.enableImagePrefetchingOnUiThreadAndroid()
|
|
182
|
+
|
|
177
183
|
/**
|
|
178
184
|
* Dispatches state updates for content offset changes synchronously on the main thread.
|
|
179
185
|
*/
|
|
@@ -222,12 +228,6 @@ public object ReactNativeFeatureFlags {
|
|
|
222
228
|
@JvmStatic
|
|
223
229
|
public fun enableNetworkEventReporting(): Boolean = accessor.enableNetworkEventReporting()
|
|
224
230
|
|
|
225
|
-
/**
|
|
226
|
-
* Use BackgroundDrawable and BorderDrawable instead of CSSBackgroundDrawable
|
|
227
|
-
*/
|
|
228
|
-
@JvmStatic
|
|
229
|
-
public fun enableNewBackgroundAndBorderDrawables(): Boolean = accessor.enableNewBackgroundAndBorderDrawables()
|
|
230
|
-
|
|
231
231
|
/**
|
|
232
232
|
* Enables caching text layout artifacts for later reuse
|
|
233
233
|
*/
|
|
@@ -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<<7dbb21bddd9c2ae447c83923a25372e4>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -44,6 +44,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
44
44
|
private var enableIOSTextBaselineOffsetPerLineCache: Boolean? = null
|
|
45
45
|
private var enableIOSViewClipToPaddingBoxCache: Boolean? = null
|
|
46
46
|
private var enableImagePrefetchingAndroidCache: Boolean? = null
|
|
47
|
+
private var enableImagePrefetchingOnUiThreadAndroidCache: Boolean? = null
|
|
47
48
|
private var enableImmediateUpdateModeForContentOffsetChangesCache: Boolean? = null
|
|
48
49
|
private var enableInteropViewManagerClassLookUpOptimizationIOSCache: Boolean? = null
|
|
49
50
|
private var enableLayoutAnimationsOnAndroidCache: Boolean? = null
|
|
@@ -52,7 +53,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
52
53
|
private var enableModuleArgumentNSNullConversionIOSCache: Boolean? = null
|
|
53
54
|
private var enableNativeCSSParsingCache: Boolean? = null
|
|
54
55
|
private var enableNetworkEventReportingCache: Boolean? = null
|
|
55
|
-
private var enableNewBackgroundAndBorderDrawablesCache: Boolean? = null
|
|
56
56
|
private var enablePreparedTextLayoutCache: Boolean? = null
|
|
57
57
|
private var enablePropsUpdateReconciliationAndroidCache: Boolean? = null
|
|
58
58
|
private var enableResourceTimingAPICache: Boolean? = null
|
|
@@ -306,6 +306,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
306
306
|
return cached
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
+
override fun enableImagePrefetchingOnUiThreadAndroid(): Boolean {
|
|
310
|
+
var cached = enableImagePrefetchingOnUiThreadAndroidCache
|
|
311
|
+
if (cached == null) {
|
|
312
|
+
cached = ReactNativeFeatureFlagsCxxInterop.enableImagePrefetchingOnUiThreadAndroid()
|
|
313
|
+
enableImagePrefetchingOnUiThreadAndroidCache = cached
|
|
314
|
+
}
|
|
315
|
+
return cached
|
|
316
|
+
}
|
|
317
|
+
|
|
309
318
|
override fun enableImmediateUpdateModeForContentOffsetChanges(): Boolean {
|
|
310
319
|
var cached = enableImmediateUpdateModeForContentOffsetChangesCache
|
|
311
320
|
if (cached == null) {
|
|
@@ -378,15 +387,6 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
378
387
|
return cached
|
|
379
388
|
}
|
|
380
389
|
|
|
381
|
-
override fun enableNewBackgroundAndBorderDrawables(): Boolean {
|
|
382
|
-
var cached = enableNewBackgroundAndBorderDrawablesCache
|
|
383
|
-
if (cached == null) {
|
|
384
|
-
cached = ReactNativeFeatureFlagsCxxInterop.enableNewBackgroundAndBorderDrawables()
|
|
385
|
-
enableNewBackgroundAndBorderDrawablesCache = cached
|
|
386
|
-
}
|
|
387
|
-
return cached
|
|
388
|
-
}
|
|
389
|
-
|
|
390
390
|
override fun enablePreparedTextLayout(): Boolean {
|
|
391
391
|
var cached = enablePreparedTextLayoutCache
|
|
392
392
|
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<<4f93b4eb8f3cb427d3b926ffa18f9f9b>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -76,6 +76,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
76
76
|
|
|
77
77
|
@DoNotStrip @JvmStatic public external fun enableImagePrefetchingAndroid(): Boolean
|
|
78
78
|
|
|
79
|
+
@DoNotStrip @JvmStatic public external fun enableImagePrefetchingOnUiThreadAndroid(): Boolean
|
|
80
|
+
|
|
79
81
|
@DoNotStrip @JvmStatic public external fun enableImmediateUpdateModeForContentOffsetChanges(): Boolean
|
|
80
82
|
|
|
81
83
|
@DoNotStrip @JvmStatic public external fun enableInteropViewManagerClassLookUpOptimizationIOS(): Boolean
|
|
@@ -92,8 +94,6 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
92
94
|
|
|
93
95
|
@DoNotStrip @JvmStatic public external fun enableNetworkEventReporting(): Boolean
|
|
94
96
|
|
|
95
|
-
@DoNotStrip @JvmStatic public external fun enableNewBackgroundAndBorderDrawables(): Boolean
|
|
96
|
-
|
|
97
97
|
@DoNotStrip @JvmStatic public external fun enablePreparedTextLayout(): Boolean
|
|
98
98
|
|
|
99
99
|
@DoNotStrip @JvmStatic public external fun enablePropsUpdateReconciliationAndroid(): 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<<731176315c5589990865a0995f8b7e20>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -71,6 +71,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
71
71
|
|
|
72
72
|
override fun enableImagePrefetchingAndroid(): Boolean = false
|
|
73
73
|
|
|
74
|
+
override fun enableImagePrefetchingOnUiThreadAndroid(): Boolean = false
|
|
75
|
+
|
|
74
76
|
override fun enableImmediateUpdateModeForContentOffsetChanges(): Boolean = false
|
|
75
77
|
|
|
76
78
|
override fun enableInteropViewManagerClassLookUpOptimizationIOS(): Boolean = false
|
|
@@ -87,8 +89,6 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
87
89
|
|
|
88
90
|
override fun enableNetworkEventReporting(): Boolean = false
|
|
89
91
|
|
|
90
|
-
override fun enableNewBackgroundAndBorderDrawables(): Boolean = true
|
|
91
|
-
|
|
92
92
|
override fun enablePreparedTextLayout(): Boolean = false
|
|
93
93
|
|
|
94
94
|
override fun enablePropsUpdateReconciliationAndroid(): 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<<
|
|
7
|
+
* @generated SignedSource<<7af6546cb6e02afcfca90635b3cbe603>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -48,6 +48,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
48
48
|
private var enableIOSTextBaselineOffsetPerLineCache: Boolean? = null
|
|
49
49
|
private var enableIOSViewClipToPaddingBoxCache: Boolean? = null
|
|
50
50
|
private var enableImagePrefetchingAndroidCache: Boolean? = null
|
|
51
|
+
private var enableImagePrefetchingOnUiThreadAndroidCache: Boolean? = null
|
|
51
52
|
private var enableImmediateUpdateModeForContentOffsetChangesCache: Boolean? = null
|
|
52
53
|
private var enableInteropViewManagerClassLookUpOptimizationIOSCache: Boolean? = null
|
|
53
54
|
private var enableLayoutAnimationsOnAndroidCache: Boolean? = null
|
|
@@ -56,7 +57,6 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
56
57
|
private var enableModuleArgumentNSNullConversionIOSCache: Boolean? = null
|
|
57
58
|
private var enableNativeCSSParsingCache: Boolean? = null
|
|
58
59
|
private var enableNetworkEventReportingCache: Boolean? = null
|
|
59
|
-
private var enableNewBackgroundAndBorderDrawablesCache: Boolean? = null
|
|
60
60
|
private var enablePreparedTextLayoutCache: Boolean? = null
|
|
61
61
|
private var enablePropsUpdateReconciliationAndroidCache: Boolean? = null
|
|
62
62
|
private var enableResourceTimingAPICache: Boolean? = null
|
|
@@ -334,6 +334,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
334
334
|
return cached
|
|
335
335
|
}
|
|
336
336
|
|
|
337
|
+
override fun enableImagePrefetchingOnUiThreadAndroid(): Boolean {
|
|
338
|
+
var cached = enableImagePrefetchingOnUiThreadAndroidCache
|
|
339
|
+
if (cached == null) {
|
|
340
|
+
cached = currentProvider.enableImagePrefetchingOnUiThreadAndroid()
|
|
341
|
+
accessedFeatureFlags.add("enableImagePrefetchingOnUiThreadAndroid")
|
|
342
|
+
enableImagePrefetchingOnUiThreadAndroidCache = cached
|
|
343
|
+
}
|
|
344
|
+
return cached
|
|
345
|
+
}
|
|
346
|
+
|
|
337
347
|
override fun enableImmediateUpdateModeForContentOffsetChanges(): Boolean {
|
|
338
348
|
var cached = enableImmediateUpdateModeForContentOffsetChangesCache
|
|
339
349
|
if (cached == null) {
|
|
@@ -414,16 +424,6 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
414
424
|
return cached
|
|
415
425
|
}
|
|
416
426
|
|
|
417
|
-
override fun enableNewBackgroundAndBorderDrawables(): Boolean {
|
|
418
|
-
var cached = enableNewBackgroundAndBorderDrawablesCache
|
|
419
|
-
if (cached == null) {
|
|
420
|
-
cached = currentProvider.enableNewBackgroundAndBorderDrawables()
|
|
421
|
-
accessedFeatureFlags.add("enableNewBackgroundAndBorderDrawables")
|
|
422
|
-
enableNewBackgroundAndBorderDrawablesCache = cached
|
|
423
|
-
}
|
|
424
|
-
return cached
|
|
425
|
-
}
|
|
426
|
-
|
|
427
427
|
override fun enablePreparedTextLayout(): Boolean {
|
|
428
428
|
var cached = enablePreparedTextLayoutCache
|
|
429
429
|
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<<9a982d4167179619629627529916259b>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -71,6 +71,8 @@ public interface ReactNativeFeatureFlagsProvider {
|
|
|
71
71
|
|
|
72
72
|
@DoNotStrip public fun enableImagePrefetchingAndroid(): Boolean
|
|
73
73
|
|
|
74
|
+
@DoNotStrip public fun enableImagePrefetchingOnUiThreadAndroid(): Boolean
|
|
75
|
+
|
|
74
76
|
@DoNotStrip public fun enableImmediateUpdateModeForContentOffsetChanges(): Boolean
|
|
75
77
|
|
|
76
78
|
@DoNotStrip public fun enableInteropViewManagerClassLookUpOptimizationIOS(): Boolean
|
|
@@ -87,8 +89,6 @@ public interface ReactNativeFeatureFlagsProvider {
|
|
|
87
89
|
|
|
88
90
|
@DoNotStrip public fun enableNetworkEventReporting(): Boolean
|
|
89
91
|
|
|
90
|
-
@DoNotStrip public fun enableNewBackgroundAndBorderDrawables(): Boolean
|
|
91
|
-
|
|
92
92
|
@DoNotStrip public fun enablePreparedTextLayout(): Boolean
|
|
93
93
|
|
|
94
94
|
@DoNotStrip public fun enablePropsUpdateReconciliationAndroid(): Boolean
|
|
@@ -230,8 +230,8 @@ internal class ImageLoaderModule : NativeImageLoaderAndroidSpec, LifecycleEventL
|
|
|
230
230
|
override fun doInBackgroundGuarded(vararg params: Void) {
|
|
231
231
|
val result = buildReadableMap {
|
|
232
232
|
val imagePipeline: ImagePipeline = this@ImageLoaderModule.imagePipeline
|
|
233
|
-
repeat(uris.size()) {
|
|
234
|
-
val uriString = uris.getString(
|
|
233
|
+
repeat(uris.size()) { index ->
|
|
234
|
+
val uriString = uris.getString(index)
|
|
235
235
|
if (!uriString.isNullOrEmpty()) {
|
|
236
236
|
val uri = Uri.parse(uriString)
|
|
237
237
|
if (imagePipeline.isInBitmapMemoryCache(uri)) {
|