react-native 0.83.0-nightly-20250916-15daa2787 → 0.83.0-nightly-20250918-4d2e38edd
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/Components/ScrollView/ScrollViewStickyHeader.js +6 -6
- package/Libraries/Components/Touchable/TouchableBounce.js +7 -7
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Debugging/DebuggingOverlay.js +14 -14
- package/React/Base/RCTVersion.m +1 -1
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +10 -0
- package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt +14 -8
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.kt +2 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/text/internal/ReactTextInlineImageShadowNode.kt +7 -0
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/jsinspector-modern/cdp/CdpJson.cpp +2 -2
- package/ReactCommon/jsinspector-modern/cdp/CdpJson.h +2 -2
- package/ReactCommon/jsinspector-modern/network/NetworkHandler.cpp +23 -17
- package/ReactCommon/jsinspector-modern/network/NetworkHandler.h +3 -2
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.cpp +6 -6
- package/ReactCommon/jsinspector-modern/tracing/PerformanceTracer.h +3 -3
- package/ReactCommon/jsinspector-modern/tracing/RuntimeSamplingProfile.h +6 -0
- package/jest/mockComponent.js +2 -1
- package/package.json +9 -9
- 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/types_generated/Libraries/Components/ScrollView/ScrollViewStickyHeader.d.ts +3 -3
|
@@ -44,7 +44,7 @@ interface Instance extends React.ElementRef<typeof Animated.View> {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
const ScrollViewStickyHeader: component(
|
|
47
|
-
ref
|
|
47
|
+
ref?: React.RefSetter<Instance>,
|
|
48
48
|
...props: ScrollViewStickyHeaderProps
|
|
49
49
|
) = function ScrollViewStickyHeader({
|
|
50
50
|
ref: forwardedRef,
|
|
@@ -282,7 +282,7 @@ const ScrollViewStickyHeader: component(
|
|
|
282
282
|
const passthroughAnimatedPropExplicitValues =
|
|
283
283
|
isFabric && translateY != null
|
|
284
284
|
? {
|
|
285
|
-
style: {transform: [{translateY
|
|
285
|
+
style: {transform: [{translateY}]},
|
|
286
286
|
}
|
|
287
287
|
: null;
|
|
288
288
|
|
|
@@ -303,20 +303,20 @@ const ScrollViewStickyHeader: component(
|
|
|
303
303
|
passthroughAnimatedPropExplicitValues
|
|
304
304
|
}>
|
|
305
305
|
{cloneElement(child, {
|
|
306
|
-
style: styles.fill, // We transfer the child style to the wrapper.
|
|
307
306
|
onLayout: undefined, // we call this manually through our this._onLayout
|
|
307
|
+
style: styles.fill, // We transfer the child style to the wrapper.
|
|
308
308
|
})}
|
|
309
309
|
</Animated.View>
|
|
310
310
|
);
|
|
311
311
|
};
|
|
312
312
|
|
|
313
313
|
const styles = StyleSheet.create({
|
|
314
|
-
header: {
|
|
315
|
-
zIndex: 10,
|
|
316
|
-
},
|
|
317
314
|
fill: {
|
|
318
315
|
flex: 1,
|
|
319
316
|
},
|
|
317
|
+
header: {
|
|
318
|
+
zIndex: 10,
|
|
319
|
+
},
|
|
320
320
|
});
|
|
321
321
|
|
|
322
322
|
export default ScrollViewStickyHeader;
|
|
@@ -47,15 +47,14 @@ class TouchableBounce extends React.Component<
|
|
|
47
47
|
|
|
48
48
|
_createPressabilityConfig(): PressabilityConfig {
|
|
49
49
|
return {
|
|
50
|
+
android_disableSound: this.props.touchSoundDisabled,
|
|
50
51
|
cancelable: !this.props.rejectResponderTermination,
|
|
51
|
-
disabled: this.props.disabled,
|
|
52
|
-
hitSlop: this.props.hitSlop,
|
|
53
52
|
delayLongPress: this.props.delayLongPress,
|
|
54
53
|
delayPressIn: this.props.delayPressIn,
|
|
55
54
|
delayPressOut: this.props.delayPressOut,
|
|
55
|
+
disabled: this.props.disabled,
|
|
56
|
+
hitSlop: this.props.hitSlop,
|
|
56
57
|
minPressDuration: 0,
|
|
57
|
-
pressRectOffset: this.props.pressRetentionOffset,
|
|
58
|
-
android_disableSound: this.props.touchSoundDisabled,
|
|
59
58
|
onBlur: event => {
|
|
60
59
|
if (Platform.isTV) {
|
|
61
60
|
this._bounceTo(1, 0.4, 0);
|
|
@@ -113,6 +112,7 @@ class TouchableBounce extends React.Component<
|
|
|
113
112
|
this.props.onPressOut(event);
|
|
114
113
|
}
|
|
115
114
|
},
|
|
115
|
+
pressRectOffset: this.props.pressRetentionOffset,
|
|
116
116
|
};
|
|
117
117
|
}
|
|
118
118
|
|
|
@@ -123,10 +123,10 @@ class TouchableBounce extends React.Component<
|
|
|
123
123
|
callback?: ?() => void,
|
|
124
124
|
) {
|
|
125
125
|
Animated.spring(this.state.scale, {
|
|
126
|
-
toValue,
|
|
127
|
-
velocity,
|
|
128
126
|
bounciness,
|
|
127
|
+
toValue,
|
|
129
128
|
useNativeDriver: true,
|
|
129
|
+
velocity,
|
|
130
130
|
}).start(callback);
|
|
131
131
|
}
|
|
132
132
|
|
|
@@ -230,6 +230,6 @@ export default (function TouchableBounceWrapper({
|
|
|
230
230
|
}) {
|
|
231
231
|
return <TouchableBounce {...props} hostRef={hostRef} />;
|
|
232
232
|
} as component(
|
|
233
|
-
ref
|
|
233
|
+
ref?: React.RefSetter<mixed>,
|
|
234
234
|
...props: $ReadOnly<Omit<TouchableBounceProps, 'hostRef'>>
|
|
235
235
|
));
|
|
@@ -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-20250918-4d2e38edd';
|
|
33
33
|
|
|
34
34
|
static getVersionString(): string {
|
|
35
35
|
return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
|
|
@@ -39,20 +39,13 @@ function DebuggingOverlay({
|
|
|
39
39
|
useImperativeHandle(
|
|
40
40
|
ref,
|
|
41
41
|
() => ({
|
|
42
|
-
|
|
42
|
+
clearElementsHighlight() {
|
|
43
43
|
if (!isNativeComponentReady) {
|
|
44
44
|
return;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
const nonEmptyRectangles = updates.filter(
|
|
48
|
-
({rectangle, color}) => rectangle.width >= 0 && rectangle.height >= 0,
|
|
49
|
-
);
|
|
50
|
-
|
|
51
47
|
if (nativeComponentRef.current != null) {
|
|
52
|
-
Commands.
|
|
53
|
-
nativeComponentRef.current,
|
|
54
|
-
nonEmptyRectangles,
|
|
55
|
-
);
|
|
48
|
+
Commands.clearElementsHighlights(nativeComponentRef.current);
|
|
56
49
|
}
|
|
57
50
|
},
|
|
58
51
|
highlightElements(elements) {
|
|
@@ -64,13 +57,20 @@ function DebuggingOverlay({
|
|
|
64
57
|
Commands.highlightElements(nativeComponentRef.current, elements);
|
|
65
58
|
}
|
|
66
59
|
},
|
|
67
|
-
|
|
60
|
+
highlightTraceUpdates(updates) {
|
|
68
61
|
if (!isNativeComponentReady) {
|
|
69
62
|
return;
|
|
70
63
|
}
|
|
71
64
|
|
|
65
|
+
const nonEmptyRectangles = updates.filter(
|
|
66
|
+
({rectangle, color}) => rectangle.width >= 0 && rectangle.height >= 0,
|
|
67
|
+
);
|
|
68
|
+
|
|
72
69
|
if (nativeComponentRef.current != null) {
|
|
73
|
-
Commands.
|
|
70
|
+
Commands.highlightTraceUpdates(
|
|
71
|
+
nativeComponentRef.current,
|
|
72
|
+
nonEmptyRectangles,
|
|
73
|
+
);
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
}),
|
|
@@ -95,14 +95,14 @@ function DebuggingOverlay({
|
|
|
95
95
|
|
|
96
96
|
const styles = StyleSheet.create({
|
|
97
97
|
overlay: {
|
|
98
|
-
position: 'absolute',
|
|
99
|
-
top: 0,
|
|
100
98
|
bottom: 0,
|
|
101
99
|
left: 0,
|
|
100
|
+
position: 'absolute',
|
|
102
101
|
right: 0,
|
|
102
|
+
top: 0,
|
|
103
103
|
},
|
|
104
104
|
});
|
|
105
105
|
|
|
106
106
|
export default DebuggingOverlay as component(
|
|
107
|
-
ref
|
|
107
|
+
ref?: React.RefSetter<DebuggingOverlayHandle>,
|
|
108
108
|
);
|
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-20250918-4d2e38edd",
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
return __rnVersion;
|
|
@@ -328,6 +328,15 @@ public class ReactInstanceManager {
|
|
|
328
328
|
}
|
|
329
329
|
|
|
330
330
|
registerCxxErrorHandlerFunc();
|
|
331
|
+
|
|
332
|
+
// Using `if (true)` just to prevent tests / lint errors.
|
|
333
|
+
if (true) {
|
|
334
|
+
// Legacy architecture of React Native is deprecated and can't be initialized anymore.
|
|
335
|
+
// More details on:
|
|
336
|
+
// https://github.com/react-native-community/discussions-and-proposals/blob/nc/legacy-arch-removal/proposals/0929-legacy-architecture-removal.md
|
|
337
|
+
throw new UnsupportedOperationException(
|
|
338
|
+
"ReactInstanceManager.createReactContext is unsupported.");
|
|
339
|
+
}
|
|
331
340
|
}
|
|
332
341
|
|
|
333
342
|
private ReactInstanceDevHelper createDevHelperInterface() {
|
|
@@ -1446,6 +1455,7 @@ public class ReactInstanceManager {
|
|
|
1446
1455
|
*/
|
|
1447
1456
|
private ReactApplicationContext createReactContext(
|
|
1448
1457
|
JavaScriptExecutor jsExecutor, JSBundleLoader jsBundleLoader) {
|
|
1458
|
+
|
|
1449
1459
|
FLog.d(ReactConstants.TAG, "ReactInstanceManager.createReactContext()");
|
|
1450
1460
|
ReactMarker.logMarker(CREATE_REACT_CONTEXT_START, jsExecutor.getName());
|
|
1451
1461
|
|
package/ReactAndroid/src/main/java/com/facebook/react/defaults/DefaultNewArchitectureEntryPoint.kt
CHANGED
|
@@ -125,6 +125,12 @@ public object DefaultNewArchitectureEntryPoint {
|
|
|
125
125
|
privateConcurrentReactEnabled = featureFlags.enableFabricRenderer()
|
|
126
126
|
privateBridgelessEnabled = featureFlags.enableBridgelessArchitecture()
|
|
127
127
|
|
|
128
|
+
val (isValid, errorMessage) =
|
|
129
|
+
isConfigurationValid(turboModulesEnabled, fabricEnabled, bridgelessEnabled)
|
|
130
|
+
if (!isValid) {
|
|
131
|
+
error(errorMessage)
|
|
132
|
+
}
|
|
133
|
+
|
|
128
134
|
DefaultSoLoader.maybeLoadSoLibrary()
|
|
129
135
|
}
|
|
130
136
|
|
|
@@ -158,13 +164,13 @@ public object DefaultNewArchitectureEntryPoint {
|
|
|
158
164
|
fabricEnabled: Boolean,
|
|
159
165
|
bridgelessEnabled: Boolean,
|
|
160
166
|
): Pair<Boolean, String> =
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
"
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
if (!turboModulesEnabled || !fabricEnabled || !bridgelessEnabled) {
|
|
168
|
+
false to
|
|
169
|
+
"You cannot load React Native with the New Architecture disabled. " +
|
|
170
|
+
"Please use DefaultNewArchitectureEntryPoint.load() instead of " +
|
|
171
|
+
"DefaultNewArchitectureEntryPoint.load(turboModulesEnabled=$turboModulesEnabled, " +
|
|
172
|
+
"fabricEnabled=$fabricEnabled, bridgelessEnabled=$bridgelessEnabled)"
|
|
173
|
+
} else {
|
|
174
|
+
true to ""
|
|
169
175
|
}
|
|
170
176
|
}
|
|
@@ -34,7 +34,6 @@ import com.facebook.react.views.text.ReactTypefaceUtils.parseFontStyle
|
|
|
34
34
|
import com.facebook.react.views.text.ReactTypefaceUtils.parseFontVariant
|
|
35
35
|
import com.facebook.react.views.text.ReactTypefaceUtils.parseFontWeight
|
|
36
36
|
import com.facebook.react.views.text.TextTransform.Companion.apply
|
|
37
|
-
import com.facebook.react.views.text.internal.ReactTextInlineImageShadowNode
|
|
38
37
|
import com.facebook.react.views.text.internal.span.CustomLetterSpacingSpan
|
|
39
38
|
import com.facebook.react.views.text.internal.span.CustomLineHeightSpan
|
|
40
39
|
import com.facebook.react.views.text.internal.span.CustomStyleSpan
|
|
@@ -523,6 +522,7 @@ public constructor(
|
|
|
523
522
|
while (i < length) {
|
|
524
523
|
val child: ReactShadowNode<*> = textShadowNode.getChildAt(i)
|
|
525
524
|
|
|
525
|
+
@Suppress("DEPRECATION")
|
|
526
526
|
if (child is ReactRawTextShadowNode) {
|
|
527
527
|
child.text?.let { sb.append(apply(it, textAttributes.textTransform)) }
|
|
528
528
|
} else if (child is ReactBaseTextShadowNode) {
|
|
@@ -535,7 +535,7 @@ public constructor(
|
|
|
535
535
|
inlineViews,
|
|
536
536
|
sb.length,
|
|
537
537
|
)
|
|
538
|
-
} else if (child is ReactTextInlineImageShadowNode) {
|
|
538
|
+
} else if (child is com.facebook.react.views.text.internal.ReactTextInlineImageShadowNode) {
|
|
539
539
|
// We make the image take up 1 character in the span and put a corresponding character
|
|
540
540
|
// into the text so that the image doesn't run over any following text.
|
|
541
541
|
sb.append(INLINE_VIEW_PLACEHOLDER)
|
|
@@ -9,11 +9,18 @@
|
|
|
9
9
|
|
|
10
10
|
package com.facebook.react.views.text.internal
|
|
11
11
|
|
|
12
|
+
import com.facebook.react.common.annotations.internal.LegacyArchitecture
|
|
13
|
+
import com.facebook.react.common.annotations.internal.LegacyArchitectureLogLevel
|
|
12
14
|
import com.facebook.react.uimanager.LayoutShadowNode
|
|
13
15
|
import com.facebook.react.views.text.internal.span.TextInlineImageSpan
|
|
14
16
|
import com.facebook.yoga.YogaNode
|
|
15
17
|
|
|
16
18
|
/** Base class for [YogaNode]s that represent inline images. */
|
|
19
|
+
@LegacyArchitecture(logLevel = LegacyArchitectureLogLevel.ERROR)
|
|
20
|
+
@Deprecated(
|
|
21
|
+
message = "This class is part of Legacy Architecture and will be removed in a future release",
|
|
22
|
+
level = DeprecationLevel.WARNING,
|
|
23
|
+
)
|
|
17
24
|
internal abstract class ReactTextInlineImageShadowNode : LayoutShadowNode() {
|
|
18
25
|
/**
|
|
19
26
|
* Build a [TextInlineImageSpan] from this node. This will be added to the TextView in place of
|
|
@@ -22,7 +22,7 @@ constexpr struct {
|
|
|
22
22
|
int32_t Major = 0;
|
|
23
23
|
int32_t Minor = 83;
|
|
24
24
|
int32_t Patch = 0;
|
|
25
|
-
std::string_view Prerelease = "nightly-
|
|
25
|
+
std::string_view Prerelease = "nightly-20250918-4d2e38edd";
|
|
26
26
|
} ReactNativeVersion;
|
|
27
27
|
|
|
28
28
|
} // namespace facebook::react
|
|
@@ -49,7 +49,7 @@ std::string jsonResult(RequestId id, const folly::dynamic& result) {
|
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
std::string jsonNotification(
|
|
52
|
-
std::
|
|
52
|
+
const std::string& method,
|
|
53
53
|
std::optional<folly::dynamic> params) {
|
|
54
54
|
auto dynamicNotification = folly::dynamic::object("method", method);
|
|
55
55
|
if (params) {
|
|
@@ -60,7 +60,7 @@ std::string jsonNotification(
|
|
|
60
60
|
|
|
61
61
|
std::string jsonRequest(
|
|
62
62
|
RequestId id,
|
|
63
|
-
std::
|
|
63
|
+
const std::string& method,
|
|
64
64
|
std::optional<folly::dynamic> params) {
|
|
65
65
|
auto dynamicRequest = folly::dynamic::object("id", id)("method", method);
|
|
66
66
|
if (params) {
|
|
@@ -118,7 +118,7 @@ std::string jsonResult(
|
|
|
118
118
|
* \param params Optional payload object.
|
|
119
119
|
*/
|
|
120
120
|
std::string jsonNotification(
|
|
121
|
-
std::
|
|
121
|
+
const std::string& method,
|
|
122
122
|
std::optional<folly::dynamic> params = std::nullopt);
|
|
123
123
|
|
|
124
124
|
/**
|
|
@@ -132,7 +132,7 @@ std::string jsonNotification(
|
|
|
132
132
|
*/
|
|
133
133
|
std::string jsonRequest(
|
|
134
134
|
RequestId id,
|
|
135
|
-
std::
|
|
135
|
+
const std::string& method,
|
|
136
136
|
std::optional<folly::dynamic> params = std::nullopt);
|
|
137
137
|
|
|
138
138
|
} // namespace facebook::react::jsinspector_modern::cdp
|
|
@@ -56,7 +56,7 @@ bool NetworkHandler::disable() {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
enabled_.store(false, std::memory_order_release);
|
|
59
|
-
|
|
59
|
+
responseBodyBuffer_.clear();
|
|
60
60
|
return true;
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -113,7 +113,10 @@ void NetworkHandler::onResponseReceived(
|
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
auto resourceType = cdp::network::resourceTypeFromMimeType(response.mimeType);
|
|
116
|
-
|
|
116
|
+
{
|
|
117
|
+
std::lock_guard<std::mutex> lock(resourceTypeMapMutex_);
|
|
118
|
+
resourceTypeMap_.emplace(requestId, resourceType);
|
|
119
|
+
}
|
|
117
120
|
|
|
118
121
|
auto params = cdp::network::ResponseReceivedParams{
|
|
119
122
|
.requestId = requestId,
|
|
@@ -166,23 +169,26 @@ void NetworkHandler::onLoadingFinished(
|
|
|
166
169
|
|
|
167
170
|
void NetworkHandler::onLoadingFailed(
|
|
168
171
|
const std::string& requestId,
|
|
169
|
-
bool cancelled)
|
|
172
|
+
bool cancelled) {
|
|
170
173
|
if (!isEnabledNoSync()) {
|
|
171
174
|
return;
|
|
172
175
|
}
|
|
173
176
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
177
|
+
{
|
|
178
|
+
std::lock_guard<std::mutex> lock(resourceTypeMapMutex_);
|
|
179
|
+
auto params = cdp::network::LoadingFailedParams{
|
|
180
|
+
.requestId = requestId,
|
|
181
|
+
.timestamp = getCurrentUnixTimestampSeconds(),
|
|
182
|
+
.type = resourceTypeMap_.find(requestId) != resourceTypeMap_.end()
|
|
183
|
+
? resourceTypeMap_.at(requestId)
|
|
184
|
+
: "Other",
|
|
185
|
+
.errorText = cancelled ? "net::ERR_ABORTED" : "net::ERR_FAILED",
|
|
186
|
+
.canceled = cancelled,
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
frontendChannel_(
|
|
190
|
+
cdp::jsonNotification("Network.loadingFailed", params.toDynamic()));
|
|
191
|
+
}
|
|
186
192
|
}
|
|
187
193
|
|
|
188
194
|
void NetworkHandler::storeResponseBody(
|
|
@@ -190,13 +196,13 @@ void NetworkHandler::storeResponseBody(
|
|
|
190
196
|
std::string_view body,
|
|
191
197
|
bool base64Encoded) {
|
|
192
198
|
std::lock_guard<std::mutex> lock(requestBodyMutex_);
|
|
193
|
-
|
|
199
|
+
responseBodyBuffer_.put(requestId, body, base64Encoded);
|
|
194
200
|
}
|
|
195
201
|
|
|
196
202
|
std::optional<std::tuple<std::string, bool>> NetworkHandler::getResponseBody(
|
|
197
203
|
const std::string& requestId) {
|
|
198
204
|
std::lock_guard<std::mutex> lock(requestBodyMutex_);
|
|
199
|
-
auto responseBody =
|
|
205
|
+
auto responseBody = responseBodyBuffer_.get(requestId);
|
|
200
206
|
|
|
201
207
|
if (responseBody == nullptr) {
|
|
202
208
|
return std::nullopt;
|
|
@@ -100,7 +100,7 @@ class NetworkHandler {
|
|
|
100
100
|
/**
|
|
101
101
|
* @cdp Network.loadingFailed
|
|
102
102
|
*/
|
|
103
|
-
void onLoadingFailed(const std::string& requestId, bool cancelled)
|
|
103
|
+
void onLoadingFailed(const std::string& requestId, bool cancelled);
|
|
104
104
|
|
|
105
105
|
/**
|
|
106
106
|
* Store the fetched response body for a text or image network response.
|
|
@@ -139,8 +139,9 @@ class NetworkHandler {
|
|
|
139
139
|
FrontendChannel frontendChannel_;
|
|
140
140
|
|
|
141
141
|
std::map<std::string, std::string> resourceTypeMap_{};
|
|
142
|
+
std::mutex resourceTypeMapMutex_{};
|
|
142
143
|
|
|
143
|
-
BoundedRequestBuffer
|
|
144
|
+
BoundedRequestBuffer responseBodyBuffer_{};
|
|
144
145
|
std::mutex requestBodyMutex_;
|
|
145
146
|
};
|
|
146
147
|
|
|
@@ -124,7 +124,7 @@ std::optional<std::vector<TraceEvent>> PerformanceTracer::stopTracing() {
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
void PerformanceTracer::reportMark(
|
|
127
|
-
const std::
|
|
127
|
+
const std::string& name,
|
|
128
128
|
HighResTimeStamp start,
|
|
129
129
|
folly::dynamic&& detail) {
|
|
130
130
|
if (!tracingAtomic_) {
|
|
@@ -137,7 +137,7 @@ void PerformanceTracer::reportMark(
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
enqueueEvent(PerformanceTracerEventMark{
|
|
140
|
-
.name =
|
|
140
|
+
.name = name,
|
|
141
141
|
.start = start,
|
|
142
142
|
.detail = std::move(detail),
|
|
143
143
|
.threadId = getCurrentThreadId(),
|
|
@@ -145,7 +145,7 @@ void PerformanceTracer::reportMark(
|
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
void PerformanceTracer::reportMeasure(
|
|
148
|
-
const std::
|
|
148
|
+
const std::string& name,
|
|
149
149
|
HighResTimeStamp start,
|
|
150
150
|
HighResDuration duration,
|
|
151
151
|
folly::dynamic&& detail) {
|
|
@@ -159,7 +159,7 @@ void PerformanceTracer::reportMeasure(
|
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
enqueueEvent(PerformanceTracerEventMeasure{
|
|
162
|
-
.name =
|
|
162
|
+
.name = name,
|
|
163
163
|
.start = start,
|
|
164
164
|
.duration = duration,
|
|
165
165
|
.detail = std::move(detail),
|
|
@@ -168,7 +168,7 @@ void PerformanceTracer::reportMeasure(
|
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
void PerformanceTracer::reportTimeStamp(
|
|
171
|
-
std::string name,
|
|
171
|
+
const std::string& name,
|
|
172
172
|
std::optional<ConsoleTimeStampEntry> start,
|
|
173
173
|
std::optional<ConsoleTimeStampEntry> end,
|
|
174
174
|
std::optional<std::string> trackName,
|
|
@@ -184,7 +184,7 @@ void PerformanceTracer::reportTimeStamp(
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
enqueueEvent(PerformanceTracerEventTimeStamp{
|
|
187
|
-
.name =
|
|
187
|
+
.name = name,
|
|
188
188
|
.start = std::move(start),
|
|
189
189
|
.end = std::move(end),
|
|
190
190
|
.trackName = std::move(trackName),
|
|
@@ -65,7 +65,7 @@ class PerformanceTracer {
|
|
|
65
65
|
* See https://w3c.github.io/user-timing/#mark-method.
|
|
66
66
|
*/
|
|
67
67
|
void reportMark(
|
|
68
|
-
const std::
|
|
68
|
+
const std::string& name,
|
|
69
69
|
HighResTimeStamp start,
|
|
70
70
|
folly::dynamic&& detail = nullptr);
|
|
71
71
|
|
|
@@ -76,7 +76,7 @@ class PerformanceTracer {
|
|
|
76
76
|
* See https://w3c.github.io/user-timing/#measure-method.
|
|
77
77
|
*/
|
|
78
78
|
void reportMeasure(
|
|
79
|
-
const std::
|
|
79
|
+
const std::string& name,
|
|
80
80
|
HighResTimeStamp start,
|
|
81
81
|
HighResDuration duration,
|
|
82
82
|
folly::dynamic&& detail = nullptr);
|
|
@@ -89,7 +89,7 @@ class PerformanceTracer {
|
|
|
89
89
|
https://developer.chrome.com/docs/devtools/performance/extension#inject_your_data_with_consoletimestamp
|
|
90
90
|
*/
|
|
91
91
|
void reportTimeStamp(
|
|
92
|
-
std::string name,
|
|
92
|
+
const std::string& name,
|
|
93
93
|
std::optional<ConsoleTimeStampEntry> start = std::nullopt,
|
|
94
94
|
std::optional<ConsoleTimeStampEntry> end = std::nullopt,
|
|
95
95
|
std::optional<std::string> trackName = std::nullopt,
|
|
@@ -49,8 +49,14 @@ struct RuntimeSamplingProfile {
|
|
|
49
49
|
/// id of the corresponding script in the VM.
|
|
50
50
|
uint32_t scriptId;
|
|
51
51
|
/// name of the function that represents call frame.
|
|
52
|
+
/// Storing a std::string_view should be considered safe here, beacause
|
|
53
|
+
/// the lifetime of the string contents are guaranteed as long as the raw
|
|
54
|
+
// Sampling Profiler object from Hermes is allocated.
|
|
52
55
|
std::string_view functionName;
|
|
53
56
|
/// source url of the corresponding script in the VM.
|
|
57
|
+
/// Storing a std::string_view should be considered safe here, beacause
|
|
58
|
+
/// the lifetime of the string contents are guaranteed as long as the raw
|
|
59
|
+
// Sampling Profiler object from Hermes is allocated.
|
|
54
60
|
std::optional<std::string_view> scriptURL = std::nullopt;
|
|
55
61
|
/// 0-based line number of the corresponding call frame.
|
|
56
62
|
std::optional<uint32_t> lineNumber = std::nullopt;
|
package/jest/mockComponent.js
CHANGED
|
@@ -28,7 +28,8 @@ export default function mockComponent<
|
|
|
28
28
|
instanceMethods: ?interface {},
|
|
29
29
|
isESModule: TIsESModule,
|
|
30
30
|
): TIsESModule extends true
|
|
31
|
-
?
|
|
31
|
+
? // $FlowFixMe[incompatible-use]
|
|
32
|
+
ModuleDefault<TComponentModule & typeof instanceMethods>
|
|
32
33
|
: TComponentModule & typeof instanceMethods {
|
|
33
34
|
const RealComponent: TComponentType = isESModule
|
|
34
35
|
? // $FlowFixMe[prop-missing]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native",
|
|
3
|
-
"version": "0.83.0-nightly-
|
|
3
|
+
"version": "0.83.0-nightly-20250918-4d2e38edd",
|
|
4
4
|
"description": "A framework for building native apps using React",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -159,13 +159,13 @@
|
|
|
159
159
|
},
|
|
160
160
|
"dependencies": {
|
|
161
161
|
"@jest/create-cache-key-function": "^29.7.0",
|
|
162
|
-
"@react-native/assets-registry": "0.83.0-nightly-
|
|
163
|
-
"@react-native/codegen": "0.83.0-nightly-
|
|
164
|
-
"@react-native/community-cli-plugin": "0.83.0-nightly-
|
|
165
|
-
"@react-native/gradle-plugin": "0.83.0-nightly-
|
|
166
|
-
"@react-native/js-polyfills": "0.83.0-nightly-
|
|
167
|
-
"@react-native/normalize-colors": "0.83.0-nightly-
|
|
168
|
-
"@react-native/virtualized-lists": "0.83.0-nightly-
|
|
162
|
+
"@react-native/assets-registry": "0.83.0-nightly-20250918-4d2e38edd",
|
|
163
|
+
"@react-native/codegen": "0.83.0-nightly-20250918-4d2e38edd",
|
|
164
|
+
"@react-native/community-cli-plugin": "0.83.0-nightly-20250918-4d2e38edd",
|
|
165
|
+
"@react-native/gradle-plugin": "0.83.0-nightly-20250918-4d2e38edd",
|
|
166
|
+
"@react-native/js-polyfills": "0.83.0-nightly-20250918-4d2e38edd",
|
|
167
|
+
"@react-native/normalize-colors": "0.83.0-nightly-20250918-4d2e38edd",
|
|
168
|
+
"@react-native/virtualized-lists": "0.83.0-nightly-20250918-4d2e38edd",
|
|
169
169
|
"abort-controller": "^3.0.0",
|
|
170
170
|
"anser": "^1.4.9",
|
|
171
171
|
"ansi-regex": "^5.0.0",
|
|
@@ -191,7 +191,7 @@
|
|
|
191
191
|
"semver": "^7.1.3",
|
|
192
192
|
"stacktrace-parser": "^0.1.10",
|
|
193
193
|
"whatwg-fetch": "^3.0.0",
|
|
194
|
-
"ws": "^
|
|
194
|
+
"ws": "^7.5.10",
|
|
195
195
|
"yargs": "^17.6.2"
|
|
196
196
|
},
|
|
197
197
|
"codegenConfig": {
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -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<<f8dd9c647cf100daf63bfef26d661794>>
|
|
8
8
|
*
|
|
9
9
|
* This file was translated from Flow by scripts/js-api/build-types/index.js.
|
|
10
10
|
* Original file: packages/react-native/Libraries/Components/ScrollView/ScrollViewStickyHeader.js
|
|
@@ -27,9 +27,9 @@ interface Instance extends React.ElementRef<typeof Animated.View> {
|
|
|
27
27
|
readonly setNextHeaderY: ($$PARAM_0$$: number) => void;
|
|
28
28
|
}
|
|
29
29
|
declare const ScrollViewStickyHeader: (props: Omit<ScrollViewStickyHeaderProps, keyof {
|
|
30
|
-
ref
|
|
30
|
+
ref?: React.Ref<Instance>;
|
|
31
31
|
}> & {
|
|
32
|
-
ref
|
|
32
|
+
ref?: React.Ref<Instance>;
|
|
33
33
|
}) => React.ReactNode;
|
|
34
34
|
declare const $$ScrollViewStickyHeader: typeof ScrollViewStickyHeader;
|
|
35
35
|
declare type $$ScrollViewStickyHeader = typeof $$ScrollViewStickyHeader;
|