react-native 0.83.0-nightly-20251030-26ad9492b → 0.83.0-nightly-20251102-d8e6a985a
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/Libraries/EventEmitter/RCTDeviceEventEmitter.js +5 -2
- package/Libraries/LogBox/UI/AnsiHighlight.js +4 -1
- package/Libraries/Network/XMLHttpRequest.js +1 -39
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +20 -82
- package/React/Base/RCTVersion.m +1 -1
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +16 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +12 -1
- package/React/Views/RCTBorderDrawing.m +6 -2
- package/ReactAndroid/api/ReactAndroid.api +2 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayManager.kt +12 -0
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorOverlayView.kt +35 -7
- package/ReactAndroid/src/main/java/com/facebook/react/devsupport/perfmonitor/PerfMonitorUpdateListener.kt +4 -0
- package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java +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 +1 -3
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +5 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/ReactHostInspectorTarget.kt +6 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt +160 -2
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BlendModeHelper.kt +14 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolver.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/ComponentNameResolverBinding.kt +12 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FilterHelper.kt +16 -0
- package/ReactAndroid/src/main/java/com/facebook/react/uimanager/FloatUtil.kt +33 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +12 -3
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +9 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/view/ReactVirtualView.kt +16 -5
- package/ReactAndroid/src/main/java/com/facebook/react/views/virtual/viewexperimental/ReactVirtualViewExperimental.kt +17 -5
- 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/jni/react/runtime/jni/JReactHostInspectorTarget.cpp +7 -0
- package/ReactAndroid/src/main/jni/react/runtime/jni/JReactHostInspectorTarget.h +1 -0
- package/ReactApple/RCTSwiftUI/RCTSwiftUIContainerView.swift +18 -0
- package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIContainerViewWrapper.h +2 -0
- package/ReactApple/RCTSwiftUIWrapper/RCTSwiftUIContainerViewWrapper.m +10 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/jsc/JSCRuntime.cpp +1 -0
- package/ReactCommon/jsinspector-modern/HostTarget.cpp +14 -0
- package/ReactCommon/jsinspector-modern/HostTarget.h +22 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.cpp +5 -0
- package/ReactCommon/jsinspector-modern/InspectorFlags.h +6 -0
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.cpp +29 -0
- package/ReactCommon/jsinspector-modern/PerfMonitorV2.h +38 -0
- package/ReactCommon/jsinspector-modern/RuntimeTarget.h +1 -4
- package/ReactCommon/jsinspector-modern/RuntimeTargetConsole.cpp +10 -1
- package/ReactCommon/jsinspector-modern/tracing/CMakeLists.txt +1 -0
- package/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.cpp +22 -0
- package/ReactCommon/jsinspector-modern/tracing/ConsoleTimeStamp.h +4 -0
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +10 -1
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +3 -1
- package/ReactCommon/jsinspector-modern/tracing/React-jsinspectortracing.podspec +1 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +9 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +11 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +71 -35
- 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 +1 -5
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +3 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +11 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +5 -1
- package/ReactCommon/react/performance/cdpmetrics/CdpMetricsReporter.h +4 -4
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.cpp +60 -0
- package/ReactCommon/react/performance/cdpmetrics/CdpPerfIssuesReporter.h +37 -0
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.cpp +26 -15
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporter.h +6 -5
- package/ReactCommon/react/performance/timeline/PerformanceEntryReporterListeners.h +10 -2
- package/ReactCommon/react/performance/timeline/tests/PerformanceObserverTest.cpp +6 -2
- package/ReactCommon/react/renderer/animated/NativeAnimatedNodesManager.cpp +13 -6
- package/ReactCommon/react/renderer/core/ShadowNode.cpp +1 -1
- package/ReactCommon/react/renderer/scheduler/Scheduler.cpp +12 -4
- package/ReactCommon/react/renderer/scheduler/Scheduler.h +2 -0
- package/flow/bom.js.flow +1 -0
- package/package.json +9 -9
- package/sdks/hermes-engine/version.properties +1 -1
- package/src/private/featureflags/ReactNativeFeatureFlags.js +12 -8
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +3 -1
- package/types_generated/Libraries/Network/XMLHttpRequest.d.ts +1 -2
- package/types_generated/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.d.ts +9 -10
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +0 -152
- package/types_generated/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.d.ts +0 -28
|
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
|
|
|
29
29
|
static major: number = 0;
|
|
30
30
|
static minor: number = 83;
|
|
31
31
|
static patch: number = 0;
|
|
32
|
-
static prerelease: string | null = 'nightly-
|
|
32
|
+
static prerelease: string | null = 'nightly-20251102-d8e6a985a';
|
|
33
33
|
|
|
34
34
|
static getVersionString(): string {
|
|
35
35
|
return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
|
|
@@ -30,8 +30,11 @@ class RCTDeviceEventEmitterImpl extends EventEmitter<RCTDeviceEventDefinitions>
|
|
|
30
30
|
...args: RCTDeviceEventDefinitions[TEvent]
|
|
31
31
|
): void {
|
|
32
32
|
beginEvent(() => `RCTDeviceEventEmitter.emit#${eventType}`);
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
try {
|
|
34
|
+
super.emit(eventType, ...args);
|
|
35
|
+
} finally {
|
|
36
|
+
endEvent();
|
|
37
|
+
}
|
|
35
38
|
}
|
|
36
39
|
}
|
|
37
40
|
const RCTDeviceEventEmitter: IEventEmitter<RCTDeviceEventDefinitions> =
|
|
@@ -87,7 +87,7 @@ export default function Ansi({
|
|
|
87
87
|
<View style={styles.container}>
|
|
88
88
|
{parsedLines.map((items, i) => (
|
|
89
89
|
<View style={styles.line} key={i}>
|
|
90
|
-
<Text>
|
|
90
|
+
<Text style={styles.text}>
|
|
91
91
|
{items.map((bundle, key) => {
|
|
92
92
|
const textStyle =
|
|
93
93
|
bundle.fg && COLORS[bundle.fg]
|
|
@@ -122,4 +122,7 @@ const styles = StyleSheet.create({
|
|
|
122
122
|
line: {
|
|
123
123
|
flexDirection: 'row',
|
|
124
124
|
},
|
|
125
|
+
text: {
|
|
126
|
+
flexGrow: 1,
|
|
127
|
+
},
|
|
125
128
|
});
|
|
@@ -14,7 +14,6 @@ import type {
|
|
|
14
14
|
EventCallback,
|
|
15
15
|
EventListener,
|
|
16
16
|
} from '../../src/private/webapis/dom/events/EventTarget';
|
|
17
|
-
import type Performance from '../../src/private/webapis/performance/Performance';
|
|
18
17
|
import type {IPerformanceLogger} from '../Utilities/createPerformanceLogger';
|
|
19
18
|
|
|
20
19
|
import Event from '../../src/private/webapis/dom/events/Event';
|
|
@@ -34,13 +33,7 @@ const RCTNetworking = require('./RCTNetworking').default;
|
|
|
34
33
|
const base64 = require('base64-js');
|
|
35
34
|
const invariant = require('invariant');
|
|
36
35
|
|
|
37
|
-
const PERFORMANCE_TRACK_NAME = 'Network (JS-initiated only)';
|
|
38
|
-
const PERFORMANCE_TRACK_GROUP = 'Chrome DevTools Temp Compat';
|
|
39
|
-
|
|
40
|
-
declare var performance: Performance;
|
|
41
|
-
|
|
42
36
|
const DEBUG_NETWORK_SEND_DELAY: false = false; // Set to a number of milliseconds when debugging
|
|
43
|
-
const LABEL_FOR_MISSING_URL_FOR_PROFILING = 'Unknown URL';
|
|
44
37
|
|
|
45
38
|
export type NativeResponseType = 'base64' | 'blob' | 'text';
|
|
46
39
|
export type ResponseType =
|
|
@@ -141,7 +134,6 @@ class XMLHttpRequest extends EventTarget {
|
|
|
141
134
|
static DONE: number = DONE;
|
|
142
135
|
|
|
143
136
|
static _interceptor: ?XHRInterceptor = null;
|
|
144
|
-
static _profiling: boolean = false;
|
|
145
137
|
|
|
146
138
|
UNSENT: number = UNSENT;
|
|
147
139
|
OPENED: number = OPENED;
|
|
@@ -182,10 +174,6 @@ class XMLHttpRequest extends EventTarget {
|
|
|
182
174
|
XMLHttpRequest._interceptor = interceptor;
|
|
183
175
|
}
|
|
184
176
|
|
|
185
|
-
static enableProfiling(enableProfiling: boolean): void {
|
|
186
|
-
XMLHttpRequest._profiling = enableProfiling;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
177
|
constructor() {
|
|
190
178
|
super();
|
|
191
179
|
this._reset();
|
|
@@ -389,23 +377,12 @@ class XMLHttpRequest extends EventTarget {
|
|
|
389
377
|
return;
|
|
390
378
|
}
|
|
391
379
|
|
|
392
|
-
const start = XMLHttpRequest._profiling ? performance.now() : undefined;
|
|
393
|
-
|
|
394
380
|
if (!this._response) {
|
|
395
381
|
this._response = responseText;
|
|
396
382
|
} else {
|
|
397
383
|
this._response += responseText;
|
|
398
384
|
}
|
|
399
385
|
|
|
400
|
-
if (XMLHttpRequest._profiling) {
|
|
401
|
-
console.timeStamp(
|
|
402
|
-
'Incremental Data: ' + this._getMeasureURL(),
|
|
403
|
-
start,
|
|
404
|
-
undefined,
|
|
405
|
-
PERFORMANCE_TRACK_NAME,
|
|
406
|
-
PERFORMANCE_TRACK_GROUP,
|
|
407
|
-
);
|
|
408
|
-
}
|
|
409
386
|
XMLHttpRequest._interceptor &&
|
|
410
387
|
XMLHttpRequest._interceptor.dataReceived(requestId, responseText);
|
|
411
388
|
|
|
@@ -450,16 +427,7 @@ class XMLHttpRequest extends EventTarget {
|
|
|
450
427
|
this._clearSubscriptions();
|
|
451
428
|
this._requestId = null;
|
|
452
429
|
this.setReadyState(this.DONE);
|
|
453
|
-
|
|
454
|
-
const start = this._startTime;
|
|
455
|
-
console.timeStamp(
|
|
456
|
-
this._getMeasureURL(),
|
|
457
|
-
start,
|
|
458
|
-
undefined,
|
|
459
|
-
PERFORMANCE_TRACK_NAME,
|
|
460
|
-
PERFORMANCE_TRACK_GROUP,
|
|
461
|
-
);
|
|
462
|
-
}
|
|
430
|
+
|
|
463
431
|
if (error) {
|
|
464
432
|
XMLHttpRequest._interceptor &&
|
|
465
433
|
XMLHttpRequest._interceptor.loadingFailed(requestId, error);
|
|
@@ -729,12 +697,6 @@ class XMLHttpRequest extends EventTarget {
|
|
|
729
697
|
super.addEventListener(type, listener);
|
|
730
698
|
}
|
|
731
699
|
|
|
732
|
-
_getMeasureURL(): string {
|
|
733
|
-
return (
|
|
734
|
-
this._trackingName ?? this._url ?? LABEL_FOR_MISSING_URL_FOR_PROFILING
|
|
735
|
-
);
|
|
736
|
-
}
|
|
737
|
-
|
|
738
700
|
/*
|
|
739
701
|
* `on<event>` event handling (without JS prototype magic).
|
|
740
702
|
*/
|
|
@@ -13,124 +13,62 @@
|
|
|
13
13
|
* instances and get some data from them (like their instance handle / fiber).
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import type ReactNativeDocumentT from '../../../src/private/webapis/dom/nodes/ReactNativeDocument';
|
|
17
|
-
import typeof * as ReactNativeDocumentModuleT from '../../../src/private/webapis/dom/nodes/ReactNativeDocument';
|
|
18
|
-
import type ReactNativeElementT from '../../../src/private/webapis/dom/nodes/ReactNativeElement';
|
|
19
|
-
import type ReadOnlyTextT from '../../../src/private/webapis/dom/nodes/ReadOnlyText';
|
|
20
|
-
import typeof * as RendererProxyT from '../../ReactNative/RendererProxy';
|
|
21
16
|
import type {
|
|
22
17
|
InternalInstanceHandle,
|
|
23
18
|
Node,
|
|
24
19
|
ViewConfig,
|
|
25
20
|
} from '../../Renderer/shims/ReactNativeTypes';
|
|
26
21
|
import type {RootTag} from '../RootTag';
|
|
27
|
-
import type ReactFabricHostComponentT from './ReactFabricHostComponent';
|
|
28
22
|
|
|
29
|
-
import
|
|
23
|
+
import ReactNativeDocument, {
|
|
24
|
+
createReactNativeDocument,
|
|
25
|
+
} from '../../../src/private/webapis/dom/nodes/ReactNativeDocument';
|
|
26
|
+
import ReactNativeElement from '../../../src/private/webapis/dom/nodes/ReactNativeElement';
|
|
27
|
+
import ReadOnlyText from '../../../src/private/webapis/dom/nodes/ReadOnlyText';
|
|
28
|
+
import * as RendererProxy from '../../ReactNative/RendererProxy';
|
|
30
29
|
|
|
31
30
|
export opaque type PublicRootInstance = mixed;
|
|
32
31
|
|
|
33
|
-
// Lazy loaded to avoid evaluating the module when using the legacy renderer.
|
|
34
|
-
let ReactNativeDocumentModuleObject: ?ReactNativeDocumentModuleT;
|
|
35
|
-
let ReactFabricHostComponentClass: Class<ReactFabricHostComponentT>;
|
|
36
|
-
let ReactNativeElementClass: Class<ReactNativeElementT>;
|
|
37
|
-
let ReadOnlyTextClass: Class<ReadOnlyTextT>;
|
|
38
|
-
let RendererProxy: RendererProxyT;
|
|
39
|
-
|
|
40
|
-
function getReactNativeDocumentModule(): ReactNativeDocumentModuleT {
|
|
41
|
-
if (ReactNativeDocumentModuleObject == null) {
|
|
42
|
-
// We initialize this lazily to avoid a require cycle.
|
|
43
|
-
ReactNativeDocumentModuleObject = require('../../../src/private/webapis/dom/nodes/ReactNativeDocument');
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return ReactNativeDocumentModuleObject;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function getReactNativeElementClass(): Class<ReactNativeElementT> {
|
|
50
|
-
if (ReactNativeElementClass == null) {
|
|
51
|
-
ReactNativeElementClass =
|
|
52
|
-
require('../../../src/private/webapis/dom/nodes/ReactNativeElement').default;
|
|
53
|
-
}
|
|
54
|
-
return ReactNativeElementClass;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function getReactFabricHostComponentClass(): Class<ReactFabricHostComponentT> {
|
|
58
|
-
if (ReactFabricHostComponentClass == null) {
|
|
59
|
-
ReactFabricHostComponentClass =
|
|
60
|
-
require('./ReactFabricHostComponent').default;
|
|
61
|
-
}
|
|
62
|
-
return ReactFabricHostComponentClass;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
function getReadOnlyTextClass(): Class<ReadOnlyTextT> {
|
|
66
|
-
if (ReadOnlyTextClass == null) {
|
|
67
|
-
ReadOnlyTextClass =
|
|
68
|
-
require('../../../src/private/webapis/dom/nodes/ReadOnlyText').default;
|
|
69
|
-
}
|
|
70
|
-
return ReadOnlyTextClass;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
32
|
export function createPublicRootInstance(rootTag: RootTag): PublicRootInstance {
|
|
74
|
-
if (ReactNativeFeatureFlags.enableAccessToHostTreeInFabric()) {
|
|
75
|
-
const ReactNativeDocumentModule = getReactNativeDocumentModule();
|
|
76
|
-
|
|
77
|
-
// $FlowExpectedError[incompatible-return]
|
|
78
|
-
return ReactNativeDocumentModule.createReactNativeDocument(rootTag);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
33
|
// $FlowExpectedError[incompatible-return]
|
|
82
|
-
return
|
|
34
|
+
return createReactNativeDocument(rootTag);
|
|
83
35
|
}
|
|
84
36
|
|
|
85
37
|
export function createPublicInstance(
|
|
86
38
|
tag: number,
|
|
87
39
|
viewConfig: ViewConfig,
|
|
88
40
|
internalInstanceHandle: InternalInstanceHandle,
|
|
89
|
-
ownerDocument:
|
|
90
|
-
):
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
ownerDocument,
|
|
98
|
-
);
|
|
99
|
-
} else {
|
|
100
|
-
const ReactFabricHostComponent = getReactFabricHostComponentClass();
|
|
101
|
-
return new ReactFabricHostComponent(
|
|
102
|
-
tag,
|
|
103
|
-
viewConfig,
|
|
104
|
-
internalInstanceHandle,
|
|
105
|
-
);
|
|
106
|
-
}
|
|
41
|
+
ownerDocument: ReactNativeDocument,
|
|
42
|
+
): ReactNativeElement {
|
|
43
|
+
return new ReactNativeElement(
|
|
44
|
+
tag,
|
|
45
|
+
viewConfig,
|
|
46
|
+
internalInstanceHandle,
|
|
47
|
+
ownerDocument,
|
|
48
|
+
);
|
|
107
49
|
}
|
|
108
50
|
|
|
109
51
|
export function createPublicTextInstance(
|
|
110
52
|
internalInstanceHandle: InternalInstanceHandle,
|
|
111
|
-
ownerDocument:
|
|
112
|
-
):
|
|
113
|
-
const ReadOnlyText = getReadOnlyTextClass();
|
|
53
|
+
ownerDocument: ReactNativeDocument,
|
|
54
|
+
): ReadOnlyText {
|
|
114
55
|
return new ReadOnlyText(internalInstanceHandle, ownerDocument);
|
|
115
56
|
}
|
|
116
57
|
|
|
117
58
|
export function getNativeTagFromPublicInstance(
|
|
118
|
-
publicInstance:
|
|
59
|
+
publicInstance: ReactNativeElement,
|
|
119
60
|
): number {
|
|
120
61
|
return publicInstance.__nativeTag;
|
|
121
62
|
}
|
|
122
63
|
|
|
123
64
|
export function getNodeFromPublicInstance(
|
|
124
|
-
publicInstance:
|
|
65
|
+
publicInstance: ReactNativeElement,
|
|
125
66
|
): ?Node {
|
|
126
67
|
// Avoid loading ReactFabric if using an instance from the legacy renderer.
|
|
127
68
|
if (publicInstance.__internalInstanceHandle == null) {
|
|
128
69
|
return null;
|
|
129
70
|
}
|
|
130
71
|
|
|
131
|
-
if (RendererProxy == null) {
|
|
132
|
-
RendererProxy = require('../../ReactNative/RendererProxy');
|
|
133
|
-
}
|
|
134
72
|
return RendererProxy.getNodeFromInternalInstanceHandle(
|
|
135
73
|
// $FlowExpectedError[incompatible-type] __internalInstanceHandle is always an InternalInstanceHandle from React when we get here.
|
|
136
74
|
publicInstance.__internalInstanceHandle,
|
|
@@ -138,7 +76,7 @@ export function getNodeFromPublicInstance(
|
|
|
138
76
|
}
|
|
139
77
|
|
|
140
78
|
export function getInternalInstanceHandleFromPublicInstance(
|
|
141
|
-
publicInstance:
|
|
79
|
+
publicInstance: ReactNativeElement,
|
|
142
80
|
): InternalInstanceHandle {
|
|
143
81
|
// TODO(T174762768): Remove this once OSS versions of renderers will be synced.
|
|
144
82
|
// $FlowExpectedError[prop-missing] Keeping this for backwards-compatibility with the renderers versions in open source.
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
|
|
24
24
|
RCTVersionMajor: @(0),
|
|
25
25
|
RCTVersionMinor: @(83),
|
|
26
26
|
RCTVersionPatch: @(0),
|
|
27
|
-
RCTVersionPrerelease: @"nightly-
|
|
27
|
+
RCTVersionPrerelease: @"nightly-20251102-d8e6a985a",
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
return __rnVersion;
|
|
@@ -271,6 +271,7 @@ protected:
|
|
|
271
271
|
methodMap_["enableViewRecyclingForScrollView"] = MethodMetadata {.argCount = 0, .invoker = __enableViewRecyclingForScrollView};
|
|
272
272
|
methodMap_["enableViewRecyclingForText"] = MethodMetadata {.argCount = 0, .invoker = __enableViewRecyclingForText};
|
|
273
273
|
methodMap_["enableViewRecyclingForView"] = MethodMetadata {.argCount = 0, .invoker = __enableViewRecyclingForView};
|
|
274
|
+
methodMap_["enableVirtualViewClippingWithoutScrollViewClipping"] = MethodMetadata {.argCount = 0, .invoker = __enableVirtualViewClippingWithoutScrollViewClipping};
|
|
274
275
|
methodMap_["enableVirtualViewContainerStateExperimental"] = MethodMetadata {.argCount = 0, .invoker = __enableVirtualViewContainerStateExperimental};
|
|
275
276
|
methodMap_["enableVirtualViewDebugFeatures"] = MethodMetadata {.argCount = 0, .invoker = __enableVirtualViewDebugFeatures};
|
|
276
277
|
methodMap_["enableVirtualViewRenderState"] = MethodMetadata {.argCount = 0, .invoker = __enableVirtualViewRenderState};
|
|
@@ -281,6 +282,7 @@ protected:
|
|
|
281
282
|
methodMap_["fuseboxNetworkInspectionEnabled"] = MethodMetadata {.argCount = 0, .invoker = __fuseboxNetworkInspectionEnabled};
|
|
282
283
|
methodMap_["hideOffscreenVirtualViewsOnIOS"] = MethodMetadata {.argCount = 0, .invoker = __hideOffscreenVirtualViewsOnIOS};
|
|
283
284
|
methodMap_["overrideBySynchronousMountPropsAtMountingAndroid"] = MethodMetadata {.argCount = 0, .invoker = __overrideBySynchronousMountPropsAtMountingAndroid};
|
|
285
|
+
methodMap_["perfIssuesEnabled"] = MethodMetadata {.argCount = 0, .invoker = __perfIssuesEnabled};
|
|
284
286
|
methodMap_["perfMonitorV2Enabled"] = MethodMetadata {.argCount = 0, .invoker = __perfMonitorV2Enabled};
|
|
285
287
|
methodMap_["preparedTextCacheSize"] = MethodMetadata {.argCount = 0, .invoker = __preparedTextCacheSize};
|
|
286
288
|
methodMap_["preventShadowTreeCommitExhaustion"] = MethodMetadata {.argCount = 0, .invoker = __preventShadowTreeCommitExhaustion};
|
|
@@ -644,6 +646,13 @@ private:
|
|
|
644
646
|
return bridging::callFromJs<bool>(rt, &T::enableViewRecyclingForView, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
645
647
|
}
|
|
646
648
|
|
|
649
|
+
static jsi::Value __enableVirtualViewClippingWithoutScrollViewClipping(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
650
|
+
static_assert(
|
|
651
|
+
bridging::getParameterCount(&T::enableVirtualViewClippingWithoutScrollViewClipping) == 1,
|
|
652
|
+
"Expected enableVirtualViewClippingWithoutScrollViewClipping(...) to have 1 parameters");
|
|
653
|
+
return bridging::callFromJs<bool>(rt, &T::enableVirtualViewClippingWithoutScrollViewClipping, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
654
|
+
}
|
|
655
|
+
|
|
647
656
|
static jsi::Value __enableVirtualViewContainerStateExperimental(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
648
657
|
static_assert(
|
|
649
658
|
bridging::getParameterCount(&T::enableVirtualViewContainerStateExperimental) == 1,
|
|
@@ -714,6 +723,13 @@ private:
|
|
|
714
723
|
return bridging::callFromJs<bool>(rt, &T::overrideBySynchronousMountPropsAtMountingAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
715
724
|
}
|
|
716
725
|
|
|
726
|
+
static jsi::Value __perfIssuesEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
727
|
+
static_assert(
|
|
728
|
+
bridging::getParameterCount(&T::perfIssuesEnabled) == 1,
|
|
729
|
+
"Expected perfIssuesEnabled(...) to have 1 parameters");
|
|
730
|
+
return bridging::callFromJs<bool>(rt, &T::perfIssuesEnabled, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
731
|
+
}
|
|
732
|
+
|
|
717
733
|
static jsi::Value __perfMonitorV2Enabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
718
734
|
static_assert(
|
|
719
735
|
bridging::getParameterCount(&T::perfMonitorV2Enabled) == 1,
|
|
@@ -1088,6 +1088,16 @@ static RCTBorderStyle RCTBorderStyleFromOutlineStyle(OutlineStyle outlineStyle)
|
|
|
1088
1088
|
Float saturation = std::get<Float>(primitive.parameters);
|
|
1089
1089
|
[_swiftUIWrapper updateSaturation:@(saturation)];
|
|
1090
1090
|
}
|
|
1091
|
+
} else if (primitive.type == FilterType::Contrast) {
|
|
1092
|
+
if (_swiftUIWrapper != nullptr) {
|
|
1093
|
+
Float contrast = std::get<Float>(primitive.parameters);
|
|
1094
|
+
[_swiftUIWrapper updateContrast:@(contrast)];
|
|
1095
|
+
}
|
|
1096
|
+
} else if (primitive.type == FilterType::HueRotate) {
|
|
1097
|
+
if (_swiftUIWrapper != nullptr) {
|
|
1098
|
+
Float hueRotateDegrees = std::get<Float>(primitive.parameters);
|
|
1099
|
+
[_swiftUIWrapper updateHueRotate:@(hueRotateDegrees)];
|
|
1100
|
+
}
|
|
1091
1101
|
}
|
|
1092
1102
|
}
|
|
1093
1103
|
}
|
|
@@ -1545,7 +1555,8 @@ static NSString *RCTRecursiveAccessibilityLabel(UIView *view)
|
|
|
1545
1555
|
if (!_props->filter.empty()) {
|
|
1546
1556
|
for (const auto &primitive : _props->filter) {
|
|
1547
1557
|
if (primitive.type == FilterType::Blur || primitive.type == FilterType::Grayscale ||
|
|
1548
|
-
primitive.type == FilterType::DropShadow || primitive.type == FilterType::Saturate
|
|
1558
|
+
primitive.type == FilterType::DropShadow || primitive.type == FilterType::Saturate ||
|
|
1559
|
+
primitive.type == FilterType::Contrast || primitive.type == FilterType::HueRotate) {
|
|
1549
1560
|
return YES;
|
|
1550
1561
|
}
|
|
1551
1562
|
}
|
|
@@ -247,8 +247,12 @@ static UIImage *RCTGetSolidBorderImage(
|
|
|
247
247
|
|
|
248
248
|
const CGSize size = makeStretchable ? (CGSize){
|
|
249
249
|
// 1pt for the middle stretchable area along each axis
|
|
250
|
-
|
|
251
|
-
|
|
250
|
+
// we also need to round the edge insets to avoid border bleeding
|
|
251
|
+
// this is because if the size is decimal, when calculating the unit
|
|
252
|
+
// rectangle for CALayer.contentsCenter we encounter rounding errors
|
|
253
|
+
// which causes visual glitches
|
|
254
|
+
ceil(edgeInsets.left) + 1 + ceil(edgeInsets.right),
|
|
255
|
+
ceil(edgeInsets.top) + 1 + ceil(edgeInsets.bottom),
|
|
252
256
|
} : viewSize;
|
|
253
257
|
|
|
254
258
|
UIGraphicsImageRenderer *const imageRenderer =
|
|
@@ -5651,6 +5651,7 @@ public class com/facebook/react/views/scroll/ReactHorizontalScrollView : android
|
|
|
5651
5651
|
public fun pageScroll (I)Z
|
|
5652
5652
|
public fun reactSmoothScrollTo (II)V
|
|
5653
5653
|
public fun requestChildFocus (Landroid/view/View;Landroid/view/View;)V
|
|
5654
|
+
protected fun requestChildFocusWithoutScroll (Landroid/view/View;Landroid/view/View;)V
|
|
5654
5655
|
protected fun restoreScrollTo (II)V
|
|
5655
5656
|
public fun scrollTo (II)V
|
|
5656
5657
|
public fun scrollToPreservingMomentum (II)V
|
|
@@ -5791,6 +5792,7 @@ public class com/facebook/react/views/scroll/ReactScrollView : android/widget/Sc
|
|
|
5791
5792
|
public fun onTouchEvent (Landroid/view/MotionEvent;)Z
|
|
5792
5793
|
public fun reactSmoothScrollTo (II)V
|
|
5793
5794
|
public fun requestChildFocus (Landroid/view/View;Landroid/view/View;)V
|
|
5795
|
+
protected fun requestChildFocusWithoutScroll (Landroid/view/View;Landroid/view/View;)V
|
|
5794
5796
|
public fun scrollTo (II)V
|
|
5795
5797
|
public fun scrollToPreservingMomentum (II)V
|
|
5796
5798
|
public fun setBackgroundColor (I)V
|
|
@@ -22,6 +22,7 @@ internal class PerfMonitorOverlayManager(
|
|
|
22
22
|
|
|
23
23
|
private var view: PerfMonitorOverlayView? = null
|
|
24
24
|
private var tracingState: TracingState = TracingState.ENABLEDINCDPMODE
|
|
25
|
+
private var perfIssueCount: Int = 0
|
|
25
26
|
|
|
26
27
|
/** Enable the Perf Monitor overlay. */
|
|
27
28
|
fun enable() {
|
|
@@ -72,8 +73,19 @@ internal class PerfMonitorOverlayManager(
|
|
|
72
73
|
|
|
73
74
|
override fun onRecordingStateChanged(state: TracingState) {
|
|
74
75
|
tracingState = state
|
|
76
|
+
if (state != TracingState.DISABLED) {
|
|
77
|
+
perfIssueCount = 0
|
|
78
|
+
}
|
|
75
79
|
UiThreadUtil.runOnUiThread {
|
|
76
80
|
view?.updateRecordingState(state)
|
|
81
|
+
view?.updatePerfIssueCount(perfIssueCount)
|
|
82
|
+
view?.show()
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
override fun onPerfIssueAdded(name: String) {
|
|
87
|
+
UiThreadUtil.runOnUiThread {
|
|
88
|
+
view?.updatePerfIssueCount(++perfIssueCount)
|
|
77
89
|
view?.show()
|
|
78
90
|
}
|
|
79
91
|
}
|
|
@@ -30,9 +30,11 @@ internal class PerfMonitorOverlayView(
|
|
|
30
30
|
private val onButtonPress: () -> Unit,
|
|
31
31
|
) {
|
|
32
32
|
private val dialog: Dialog
|
|
33
|
+
private lateinit var statusIndicator: TextView
|
|
33
34
|
private lateinit var statusLabel: TextView
|
|
34
35
|
private lateinit var tooltipLabel: TextView
|
|
35
|
-
private lateinit var
|
|
36
|
+
private lateinit var issuesContainer: LinearLayout
|
|
37
|
+
private lateinit var issueCountLabel: TextView
|
|
36
38
|
|
|
37
39
|
init {
|
|
38
40
|
DisplayMetricsHolder.initDisplayMetricsIfNotInitialized(context)
|
|
@@ -70,6 +72,11 @@ internal class PerfMonitorOverlayView(
|
|
|
70
72
|
dialog.show()
|
|
71
73
|
}
|
|
72
74
|
|
|
75
|
+
fun updatePerfIssueCount(count: Int) {
|
|
76
|
+
issueCountLabel.text = count.toString()
|
|
77
|
+
issuesContainer.visibility = if (count == 0) LinearLayout.GONE else LinearLayout.VISIBLE
|
|
78
|
+
}
|
|
79
|
+
|
|
73
80
|
private fun createToolbarDialog(): Dialog {
|
|
74
81
|
statusIndicator =
|
|
75
82
|
TextView(context).apply {
|
|
@@ -85,11 +92,7 @@ internal class PerfMonitorOverlayView(
|
|
|
85
92
|
val textContainer =
|
|
86
93
|
LinearLayout(context).apply {
|
|
87
94
|
orientation = LinearLayout.VERTICAL
|
|
88
|
-
|
|
89
|
-
LinearLayout.LayoutParams(
|
|
90
|
-
LinearLayout.LayoutParams.WRAP_CONTENT,
|
|
91
|
-
LinearLayout.LayoutParams.WRAP_CONTENT,
|
|
92
|
-
)
|
|
95
|
+
setPadding(dpToPx(2f).toInt(), 0, 0, 0)
|
|
93
96
|
}
|
|
94
97
|
statusLabel =
|
|
95
98
|
TextView(context).apply {
|
|
@@ -106,10 +109,35 @@ internal class PerfMonitorOverlayView(
|
|
|
106
109
|
textContainer.addView(statusLabel)
|
|
107
110
|
textContainer.addView(tooltipLabel)
|
|
108
111
|
|
|
112
|
+
issuesContainer =
|
|
113
|
+
LinearLayout(context).apply {
|
|
114
|
+
setPadding(dpToPx(8f).toInt(), 0, 0, 0)
|
|
115
|
+
visibility = LinearLayout.GONE
|
|
116
|
+
}
|
|
117
|
+
issueCountLabel =
|
|
118
|
+
TextView(context).apply {
|
|
119
|
+
textSize = TEXT_SIZE_PRIMARY
|
|
120
|
+
setTextColor(Color.WHITE)
|
|
121
|
+
typeface = TYPEFACE_BOLD
|
|
122
|
+
val alertDrawable =
|
|
123
|
+
context.getDrawable(android.R.drawable.ic_dialog_alert)?.apply {
|
|
124
|
+
setBounds(
|
|
125
|
+
0,
|
|
126
|
+
1,
|
|
127
|
+
dpToPx(TEXT_SIZE_PRIMARY).toInt(),
|
|
128
|
+
dpToPx(TEXT_SIZE_PRIMARY).toInt() + 1,
|
|
129
|
+
)
|
|
130
|
+
}
|
|
131
|
+
setCompoundDrawables(alertDrawable, null, null, null)
|
|
132
|
+
compoundDrawablePadding = dpToPx(6f).toInt()
|
|
133
|
+
}
|
|
134
|
+
issuesContainer.addView(issueCountLabel)
|
|
135
|
+
|
|
109
136
|
val containerLayout = createInnerLayout()
|
|
110
137
|
containerLayout.setOnClickListener { onButtonPress() }
|
|
111
138
|
containerLayout.addView(statusIndicator)
|
|
112
139
|
containerLayout.addView(textContainer)
|
|
140
|
+
containerLayout.addView(issuesContainer)
|
|
113
141
|
|
|
114
142
|
val dialog =
|
|
115
143
|
createAnchoredDialog(dpToPx(12f), dpToPx(12f)).apply { setContentView(containerLayout) }
|
|
@@ -175,7 +203,7 @@ internal class PerfMonitorOverlayView(
|
|
|
175
203
|
showDividers = LinearLayout.SHOW_DIVIDER_MIDDLE
|
|
176
204
|
dividerDrawable =
|
|
177
205
|
object : ColorDrawable(Color.TRANSPARENT) {
|
|
178
|
-
override fun getIntrinsicWidth(): Int = dpToPx(
|
|
206
|
+
override fun getIntrinsicWidth(): Int = dpToPx(10f).toInt()
|
|
179
207
|
}
|
|
180
208
|
}
|
|
181
209
|
}
|
|
@@ -4,6 +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
|
+
|
|
7
8
|
package com.facebook.react.devsupport.perfmonitor
|
|
8
9
|
|
|
9
10
|
import com.facebook.react.devsupport.interfaces.TracingState
|
|
@@ -12,4 +13,7 @@ import com.facebook.react.devsupport.interfaces.TracingState
|
|
|
12
13
|
internal interface PerfMonitorUpdateListener {
|
|
13
14
|
/** Called when the recording state of the background performance trace has changed. */
|
|
14
15
|
fun onRecordingStateChanged(state: TracingState)
|
|
16
|
+
|
|
17
|
+
/** Called when a new Performance Issue is added. */
|
|
18
|
+
fun onPerfIssueAdded(name: String)
|
|
15
19
|
}
|
package/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java
CHANGED
|
@@ -80,7 +80,7 @@ public class SurfaceMountingManager {
|
|
|
80
80
|
// These are all non-null, until StopSurface is called
|
|
81
81
|
private ConcurrentHashMap<Integer, ViewState> mTagToViewState =
|
|
82
82
|
new ConcurrentHashMap<>(); // any thread
|
|
83
|
-
private Queue<MountItem> mOnViewAttachMountItems = new ArrayDeque<>();
|
|
83
|
+
private final Queue<MountItem> mOnViewAttachMountItems = new ArrayDeque<>();
|
|
84
84
|
private JSResponderHandler mJSResponderHandler;
|
|
85
85
|
private ViewManagerRegistry mViewManagerRegistry;
|
|
86
86
|
private RootViewManager mRootViewManager;
|
|
@@ -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<<d8dc8c3a2efe8b7e870546e5749ef5ad>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -312,6 +312,12 @@ public object ReactNativeFeatureFlags {
|
|
|
312
312
|
@JvmStatic
|
|
313
313
|
public fun enableViewRecyclingForView(): Boolean = accessor.enableViewRecyclingForView()
|
|
314
314
|
|
|
315
|
+
/**
|
|
316
|
+
* Set clipping to drawingRect of ScrollView.
|
|
317
|
+
*/
|
|
318
|
+
@JvmStatic
|
|
319
|
+
public fun enableVirtualViewClippingWithoutScrollViewClipping(): Boolean = accessor.enableVirtualViewClippingWithoutScrollViewClipping()
|
|
320
|
+
|
|
315
321
|
/**
|
|
316
322
|
* Enables the experimental version of `VirtualViewContainerState`.
|
|
317
323
|
*/
|
|
@@ -372,6 +378,12 @@ public object ReactNativeFeatureFlags {
|
|
|
372
378
|
@JvmStatic
|
|
373
379
|
public fun overrideBySynchronousMountPropsAtMountingAndroid(): Boolean = accessor.overrideBySynchronousMountPropsAtMountingAndroid()
|
|
374
380
|
|
|
381
|
+
/**
|
|
382
|
+
* Enable reporting Performance Issues (`detail.rnPerfIssue`). Displayed in the V2 Performance Monitor and the "Performance Issues" sub-panel in DevTools.
|
|
383
|
+
*/
|
|
384
|
+
@JvmStatic
|
|
385
|
+
public fun perfIssuesEnabled(): Boolean = accessor.perfIssuesEnabled()
|
|
386
|
+
|
|
375
387
|
/**
|
|
376
388
|
* Enable the V2 in-app Performance Monitor. This flag is global and should not be changed across React Host lifetimes.
|
|
377
389
|
*/
|
|
@@ -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<<447ccc7271b71b0208a2297b7eba5995>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -67,6 +67,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
67
67
|
private var enableViewRecyclingForScrollViewCache: Boolean? = null
|
|
68
68
|
private var enableViewRecyclingForTextCache: Boolean? = null
|
|
69
69
|
private var enableViewRecyclingForViewCache: Boolean? = null
|
|
70
|
+
private var enableVirtualViewClippingWithoutScrollViewClippingCache: Boolean? = null
|
|
70
71
|
private var enableVirtualViewContainerStateExperimentalCache: Boolean? = null
|
|
71
72
|
private var enableVirtualViewDebugFeaturesCache: Boolean? = null
|
|
72
73
|
private var enableVirtualViewRenderStateCache: Boolean? = null
|
|
@@ -77,6 +78,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
77
78
|
private var fuseboxNetworkInspectionEnabledCache: Boolean? = null
|
|
78
79
|
private var hideOffscreenVirtualViewsOnIOSCache: Boolean? = null
|
|
79
80
|
private var overrideBySynchronousMountPropsAtMountingAndroidCache: Boolean? = null
|
|
81
|
+
private var perfIssuesEnabledCache: Boolean? = null
|
|
80
82
|
private var perfMonitorV2EnabledCache: Boolean? = null
|
|
81
83
|
private var preparedTextCacheSizeCache: Double? = null
|
|
82
84
|
private var preventShadowTreeCommitExhaustionCache: Boolean? = null
|
|
@@ -525,6 +527,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
525
527
|
return cached
|
|
526
528
|
}
|
|
527
529
|
|
|
530
|
+
override fun enableVirtualViewClippingWithoutScrollViewClipping(): Boolean {
|
|
531
|
+
var cached = enableVirtualViewClippingWithoutScrollViewClippingCache
|
|
532
|
+
if (cached == null) {
|
|
533
|
+
cached = ReactNativeFeatureFlagsCxxInterop.enableVirtualViewClippingWithoutScrollViewClipping()
|
|
534
|
+
enableVirtualViewClippingWithoutScrollViewClippingCache = cached
|
|
535
|
+
}
|
|
536
|
+
return cached
|
|
537
|
+
}
|
|
538
|
+
|
|
528
539
|
override fun enableVirtualViewContainerStateExperimental(): Boolean {
|
|
529
540
|
var cached = enableVirtualViewContainerStateExperimentalCache
|
|
530
541
|
if (cached == null) {
|
|
@@ -615,6 +626,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
615
626
|
return cached
|
|
616
627
|
}
|
|
617
628
|
|
|
629
|
+
override fun perfIssuesEnabled(): Boolean {
|
|
630
|
+
var cached = perfIssuesEnabledCache
|
|
631
|
+
if (cached == null) {
|
|
632
|
+
cached = ReactNativeFeatureFlagsCxxInterop.perfIssuesEnabled()
|
|
633
|
+
perfIssuesEnabledCache = cached
|
|
634
|
+
}
|
|
635
|
+
return cached
|
|
636
|
+
}
|
|
637
|
+
|
|
618
638
|
override fun perfMonitorV2Enabled(): Boolean {
|
|
619
639
|
var cached = perfMonitorV2EnabledCache
|
|
620
640
|
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<<d6403b67e269ad80ef3e2389ac923c8a>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -122,6 +122,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
122
122
|
|
|
123
123
|
@DoNotStrip @JvmStatic public external fun enableViewRecyclingForView(): Boolean
|
|
124
124
|
|
|
125
|
+
@DoNotStrip @JvmStatic public external fun enableVirtualViewClippingWithoutScrollViewClipping(): Boolean
|
|
126
|
+
|
|
125
127
|
@DoNotStrip @JvmStatic public external fun enableVirtualViewContainerStateExperimental(): Boolean
|
|
126
128
|
|
|
127
129
|
@DoNotStrip @JvmStatic public external fun enableVirtualViewDebugFeatures(): Boolean
|
|
@@ -142,6 +144,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
142
144
|
|
|
143
145
|
@DoNotStrip @JvmStatic public external fun overrideBySynchronousMountPropsAtMountingAndroid(): Boolean
|
|
144
146
|
|
|
147
|
+
@DoNotStrip @JvmStatic public external fun perfIssuesEnabled(): Boolean
|
|
148
|
+
|
|
145
149
|
@DoNotStrip @JvmStatic public external fun perfMonitorV2Enabled(): Boolean
|
|
146
150
|
|
|
147
151
|
@DoNotStrip @JvmStatic public external fun preparedTextCacheSize(): Double
|