Skip to content

Commit 1122f7a

Browse files
committed
[Fiber] Schedule client renders using non-hydration lane (#31776)
Related to #31752. When hydrating, we have two different ways of handling a Suspense boundary that the server has already given up on and decided to client render. If we have already hydrated the parent and then later this happens, then we'll use the retry lane like any ping. If we discover that it was already in client-render mode when we discover the Suspense boundary for the first time, then schedule a default lane to let us first finish the current render and then upgrade the priority to sync to try to client render this boundary as soon as possible since we're holding back content. We used to use the `DefaultHydrationLane` for this but this is not really a Hydration. It's actually a client render. If we get any other updates flowing in from above at the same time we might as well do them in the same pass instead of two passes. So this should be considered more like any update. This also means that visually the client render pass now gets painted as a render instead of a hydration. This show the flow of a shell being hydrated at the default priority, then a Suspense boundary being discovered and hydrated at Idle and then an inner boundary being discovered as client rendered which gets upgraded to default. <img width="1363" alt="Screenshot 2024-12-14 at 12 13 57 AM" src="https://github.com/user-attachments/assets/a141133e-4856-4f38-a11f-f26bd00b6245" /> DiffTrain build for [d1dd7fe](d1dd7fe)
1 parent eccdc2d commit 1122f7a

23 files changed

+92
-92
lines changed

compiled-rn/VERSION_NATIVE_FB

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
19.1.0-native-fb-2e25ee37-20241214
1+
19.1.0-native-fb-d1dd7fea-20241214

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-dev.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<b207ed493a75b8f08e0170a0d710a29a>>
10+
* @generated SignedSource<<194e6ed4d109fe9b3fec68862d1c08b4>>
1111
*/
1212

1313
"use strict";
@@ -420,5 +420,5 @@ __DEV__ &&
420420
exports.useFormStatus = function () {
421421
return resolveDispatcher().useHostTransitionStatus();
422422
};
423-
exports.version = "19.1.0-native-fb-2e25ee37-20241214";
423+
exports.version = "19.1.0-native-fb-d1dd7fea-20241214";
424424
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-prod.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<6a9775b471e26a56127dfbf51de7d359>>
10+
* @generated SignedSource<<577f410cc31506496feeec38028e6d72>>
1111
*/
1212

1313
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
203203
exports.useFormStatus = function () {
204204
return ReactSharedInternals.H.useHostTransitionStatus();
205205
};
206-
exports.version = "19.1.0-native-fb-2e25ee37-20241214";
206+
exports.version = "19.1.0-native-fb-d1dd7fea-20241214";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOM-profiling.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<6a9775b471e26a56127dfbf51de7d359>>
10+
* @generated SignedSource<<577f410cc31506496feeec38028e6d72>>
1111
*/
1212

1313
"use strict";
@@ -203,4 +203,4 @@ exports.useFormState = function (action, initialState, permalink) {
203203
exports.useFormStatus = function () {
204204
return ReactSharedInternals.H.useHostTransitionStatus();
205205
};
206-
exports.version = "19.1.0-native-fb-2e25ee37-20241214";
206+
exports.version = "19.1.0-native-fb-d1dd7fea-20241214";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-dev.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<540ca95f3e4f00baced33ea137ff3e38>>
10+
* @generated SignedSource<<02ce25e11ab3883f6b046d9da002336b>>
1111
*/
1212

1313
/*
@@ -9373,7 +9373,7 @@ __DEV__ &&
93739373
)
93749374
return (
93759375
isSuspenseInstanceFallback(JSCompiler_object_inline_message_2359)
9376-
? (workInProgress.lanes = 16)
9376+
? (workInProgress.lanes = 32)
93779377
: (workInProgress.lanes = 536870912),
93789378
null
93799379
);
@@ -25892,11 +25892,11 @@ __DEV__ &&
2589225892
};
2589325893
(function () {
2589425894
var isomorphicReactPackageVersion = React.version;
25895-
if ("19.1.0-native-fb-2e25ee37-20241214" !== isomorphicReactPackageVersion)
25895+
if ("19.1.0-native-fb-d1dd7fea-20241214" !== isomorphicReactPackageVersion)
2589625896
throw Error(
2589725897
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
2589825898
(isomorphicReactPackageVersion +
25899-
"\n - react-dom: 19.1.0-native-fb-2e25ee37-20241214\nLearn more: https://react.dev/warnings/version-mismatch")
25899+
"\n - react-dom: 19.1.0-native-fb-d1dd7fea-20241214\nLearn more: https://react.dev/warnings/version-mismatch")
2590025900
);
2590125901
})();
2590225902
("function" === typeof Map &&
@@ -25933,10 +25933,10 @@ __DEV__ &&
2593325933
!(function () {
2593425934
var internals = {
2593525935
bundleType: 1,
25936-
version: "19.1.0-native-fb-2e25ee37-20241214",
25936+
version: "19.1.0-native-fb-d1dd7fea-20241214",
2593725937
rendererPackageName: "react-dom",
2593825938
currentDispatcherRef: ReactSharedInternals,
25939-
reconcilerVersion: "19.1.0-native-fb-2e25ee37-20241214"
25939+
reconcilerVersion: "19.1.0-native-fb-d1dd7fea-20241214"
2594025940
};
2594125941
internals.overrideHookState = overrideHookState;
2594225942
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -26082,5 +26082,5 @@ __DEV__ &&
2608226082
listenToAllSupportedEvents(container);
2608326083
return new ReactDOMHydrationRoot(initialChildren);
2608426084
};
26085-
exports.version = "19.1.0-native-fb-2e25ee37-20241214";
26085+
exports.version = "19.1.0-native-fb-d1dd7fea-20241214";
2608626086
})();

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-prod.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<2e0fefb103c6cb42fd560231707143b5>>
10+
* @generated SignedSource<<a040cd910a06d913ead55515fa3f5786>>
1111
*/
1212

1313
/*
@@ -6502,7 +6502,7 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) {
65026502
)
65036503
return (
65046504
isSuspenseInstanceFallback(nextInstance)
6505-
? (workInProgress.lanes = 16)
6505+
? (workInProgress.lanes = 32)
65066506
: (workInProgress.lanes = 536870912),
65076507
null
65086508
);
@@ -15868,14 +15868,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1586815868
};
1586915869
var isomorphicReactPackageVersion$jscomp$inline_1722 = React.version;
1587015870
if (
15871-
"19.1.0-native-fb-2e25ee37-20241214" !==
15871+
"19.1.0-native-fb-d1dd7fea-20241214" !==
1587215872
isomorphicReactPackageVersion$jscomp$inline_1722
1587315873
)
1587415874
throw Error(
1587515875
formatProdErrorMessage(
1587615876
527,
1587715877
isomorphicReactPackageVersion$jscomp$inline_1722,
15878-
"19.1.0-native-fb-2e25ee37-20241214"
15878+
"19.1.0-native-fb-d1dd7fea-20241214"
1587915879
)
1588015880
);
1588115881
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -15897,10 +15897,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1589715897
};
1589815898
var internals$jscomp$inline_2177 = {
1589915899
bundleType: 0,
15900-
version: "19.1.0-native-fb-2e25ee37-20241214",
15900+
version: "19.1.0-native-fb-d1dd7fea-20241214",
1590115901
rendererPackageName: "react-dom",
1590215902
currentDispatcherRef: ReactSharedInternals,
15903-
reconcilerVersion: "19.1.0-native-fb-2e25ee37-20241214"
15903+
reconcilerVersion: "19.1.0-native-fb-d1dd7fea-20241214"
1590415904
};
1590515905
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1590615906
var hook$jscomp$inline_2178 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -16006,4 +16006,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1600616006
listenToAllSupportedEvents(container);
1600716007
return new ReactDOMHydrationRoot(initialChildren);
1600816008
};
16009-
exports.version = "19.1.0-native-fb-2e25ee37-20241214";
16009+
exports.version = "19.1.0-native-fb-d1dd7fea-20241214";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMClient-profiling.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<abe79f9d3e332bd1b04548e9488f44df>>
10+
* @generated SignedSource<<8ea56ac344a45b3b8445f71e0a05e03d>>
1111
*/
1212

1313
/*
@@ -6673,7 +6673,7 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) {
66736673
)
66746674
return (
66756675
isSuspenseInstanceFallback(nextInstance)
6676-
? (workInProgress.lanes = 16)
6676+
? (workInProgress.lanes = 32)
66776677
: (workInProgress.lanes = 536870912),
66786678
null
66796679
);
@@ -16521,14 +16521,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1652116521
};
1652216522
var isomorphicReactPackageVersion$jscomp$inline_1812 = React.version;
1652316523
if (
16524-
"19.1.0-native-fb-2e25ee37-20241214" !==
16524+
"19.1.0-native-fb-d1dd7fea-20241214" !==
1652516525
isomorphicReactPackageVersion$jscomp$inline_1812
1652616526
)
1652716527
throw Error(
1652816528
formatProdErrorMessage(
1652916529
527,
1653016530
isomorphicReactPackageVersion$jscomp$inline_1812,
16531-
"19.1.0-native-fb-2e25ee37-20241214"
16531+
"19.1.0-native-fb-d1dd7fea-20241214"
1653216532
)
1653316533
);
1653416534
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16550,10 +16550,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1655016550
};
1655116551
var internals$jscomp$inline_1819 = {
1655216552
bundleType: 0,
16553-
version: "19.1.0-native-fb-2e25ee37-20241214",
16553+
version: "19.1.0-native-fb-d1dd7fea-20241214",
1655416554
rendererPackageName: "react-dom",
1655516555
currentDispatcherRef: ReactSharedInternals,
16556-
reconcilerVersion: "19.1.0-native-fb-2e25ee37-20241214",
16556+
reconcilerVersion: "19.1.0-native-fb-d1dd7fea-20241214",
1655716557
getLaneLabelMap: function () {
1655816558
for (
1655916559
var map = new Map(), lane = 1, index$292 = 0;
@@ -16674,4 +16674,4 @@ exports.hydrateRoot = function (container, initialChildren, options) {
1667416674
listenToAllSupportedEvents(container);
1667516675
return new ReactDOMHydrationRoot(initialChildren);
1667616676
};
16677-
exports.version = "19.1.0-native-fb-2e25ee37-20241214";
16677+
exports.version = "19.1.0-native-fb-d1dd7fea-20241214";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-dev.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<f1d5137866444edf21870d75f8403c28>>
10+
* @generated SignedSource<<b72c5642d2d7dba9434c360b1b1795cc>>
1111
*/
1212

1313
/*
@@ -9381,7 +9381,7 @@ __DEV__ &&
93819381
)
93829382
return (
93839383
isSuspenseInstanceFallback(JSCompiler_object_inline_message_2364)
9384-
? (workInProgress.lanes = 16)
9384+
? (workInProgress.lanes = 32)
93859385
: (workInProgress.lanes = 536870912),
93869386
null
93879387
);
@@ -25953,11 +25953,11 @@ __DEV__ &&
2595325953
};
2595425954
(function () {
2595525955
var isomorphicReactPackageVersion = React.version;
25956-
if ("19.1.0-native-fb-2e25ee37-20241214" !== isomorphicReactPackageVersion)
25956+
if ("19.1.0-native-fb-d1dd7fea-20241214" !== isomorphicReactPackageVersion)
2595725957
throw Error(
2595825958
'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' +
2595925959
(isomorphicReactPackageVersion +
25960-
"\n - react-dom: 19.1.0-native-fb-2e25ee37-20241214\nLearn more: https://react.dev/warnings/version-mismatch")
25960+
"\n - react-dom: 19.1.0-native-fb-d1dd7fea-20241214\nLearn more: https://react.dev/warnings/version-mismatch")
2596125961
);
2596225962
})();
2596325963
("function" === typeof Map &&
@@ -25994,10 +25994,10 @@ __DEV__ &&
2599425994
!(function () {
2599525995
var internals = {
2599625996
bundleType: 1,
25997-
version: "19.1.0-native-fb-2e25ee37-20241214",
25997+
version: "19.1.0-native-fb-d1dd7fea-20241214",
2599825998
rendererPackageName: "react-dom",
2599925999
currentDispatcherRef: ReactSharedInternals,
26000-
reconcilerVersion: "19.1.0-native-fb-2e25ee37-20241214"
26000+
reconcilerVersion: "19.1.0-native-fb-d1dd7fea-20241214"
2600126001
};
2600226002
internals.overrideHookState = overrideHookState;
2600326003
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -26459,7 +26459,7 @@ __DEV__ &&
2645926459
exports.useFormStatus = function () {
2646026460
return resolveDispatcher().useHostTransitionStatus();
2646126461
};
26462-
exports.version = "19.1.0-native-fb-2e25ee37-20241214";
26462+
exports.version = "19.1.0-native-fb-d1dd7fea-20241214";
2646326463
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
2646426464
"function" ===
2646526465
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-prod.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<5a969ad2f9aa25908f31b58546fc4395>>
10+
* @generated SignedSource<<2403fb154423c8342af4e380646385fb>>
1111
*/
1212

1313
/*
@@ -6502,7 +6502,7 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) {
65026502
)
65036503
return (
65046504
isSuspenseInstanceFallback(nextInstance)
6505-
? (workInProgress.lanes = 16)
6505+
? (workInProgress.lanes = 32)
65066506
: (workInProgress.lanes = 536870912),
65076507
null
65086508
);
@@ -15879,14 +15879,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1587915879
};
1588015880
var isomorphicReactPackageVersion$jscomp$inline_1723 = React.version;
1588115881
if (
15882-
"19.1.0-native-fb-2e25ee37-20241214" !==
15882+
"19.1.0-native-fb-d1dd7fea-20241214" !==
1588315883
isomorphicReactPackageVersion$jscomp$inline_1723
1588415884
)
1588515885
throw Error(
1588615886
formatProdErrorMessage(
1588715887
527,
1588815888
isomorphicReactPackageVersion$jscomp$inline_1723,
15889-
"19.1.0-native-fb-2e25ee37-20241214"
15889+
"19.1.0-native-fb-d1dd7fea-20241214"
1589015890
)
1589115891
);
1589215892
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -15908,10 +15908,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1590815908
};
1590915909
var internals$jscomp$inline_2180 = {
1591015910
bundleType: 0,
15911-
version: "19.1.0-native-fb-2e25ee37-20241214",
15911+
version: "19.1.0-native-fb-d1dd7fea-20241214",
1591215912
rendererPackageName: "react-dom",
1591315913
currentDispatcherRef: ReactSharedInternals,
15914-
reconcilerVersion: "19.1.0-native-fb-2e25ee37-20241214"
15914+
reconcilerVersion: "19.1.0-native-fb-d1dd7fea-20241214"
1591515915
};
1591615916
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
1591715917
var hook$jscomp$inline_2181 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
@@ -16171,4 +16171,4 @@ exports.useFormState = function (action, initialState, permalink) {
1617116171
exports.useFormStatus = function () {
1617216172
return ReactSharedInternals.H.useHostTransitionStatus();
1617316173
};
16174-
exports.version = "19.1.0-native-fb-2e25ee37-20241214";
16174+
exports.version = "19.1.0-native-fb-d1dd7fea-20241214";

compiled-rn/facebook-fbsource/xplat/js/RKJSModules/vendor/react/react-dom/cjs/ReactDOMProfiling-profiling.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* @noflow
88
* @nolint
99
* @preventMunge
10-
* @generated SignedSource<<7767b30b387d1cb1b4803868111cc705>>
10+
* @generated SignedSource<<1b2d4c10edf69152a907ed320ba717b0>>
1111
*/
1212

1313
/*
@@ -6677,7 +6677,7 @@ function updateSuspenseComponent(current, workInProgress, renderLanes) {
66776677
)
66786678
return (
66796679
isSuspenseInstanceFallback(nextInstance)
6680-
? (workInProgress.lanes = 16)
6680+
? (workInProgress.lanes = 32)
66816681
: (workInProgress.lanes = 536870912),
66826682
null
66836683
);
@@ -16536,14 +16536,14 @@ ReactDOMHydrationRoot.prototype.unstable_scheduleHydration = function (target) {
1653616536
};
1653716537
var isomorphicReactPackageVersion$jscomp$inline_1813 = React.version;
1653816538
if (
16539-
"19.1.0-native-fb-2e25ee37-20241214" !==
16539+
"19.1.0-native-fb-d1dd7fea-20241214" !==
1654016540
isomorphicReactPackageVersion$jscomp$inline_1813
1654116541
)
1654216542
throw Error(
1654316543
formatProdErrorMessage(
1654416544
527,
1654516545
isomorphicReactPackageVersion$jscomp$inline_1813,
16546-
"19.1.0-native-fb-2e25ee37-20241214"
16546+
"19.1.0-native-fb-d1dd7fea-20241214"
1654716547
)
1654816548
);
1654916549
ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
@@ -16565,10 +16565,10 @@ ReactDOMSharedInternals.findDOMNode = function (componentOrElement) {
1656516565
};
1656616566
var internals$jscomp$inline_1820 = {
1656716567
bundleType: 0,
16568-
version: "19.1.0-native-fb-2e25ee37-20241214",
16568+
version: "19.1.0-native-fb-d1dd7fea-20241214",
1656916569
rendererPackageName: "react-dom",
1657016570
currentDispatcherRef: ReactSharedInternals,
16571-
reconcilerVersion: "19.1.0-native-fb-2e25ee37-20241214",
16571+
reconcilerVersion: "19.1.0-native-fb-d1dd7fea-20241214",
1657216572
getLaneLabelMap: function () {
1657316573
for (
1657416574
var map = new Map(), lane = 1, index$292 = 0;
@@ -16843,7 +16843,7 @@ exports.useFormState = function (action, initialState, permalink) {
1684316843
exports.useFormStatus = function () {
1684416844
return ReactSharedInternals.H.useHostTransitionStatus();
1684516845
};
16846-
exports.version = "19.1.0-native-fb-2e25ee37-20241214";
16846+
exports.version = "19.1.0-native-fb-d1dd7fea-20241214";
1684716847
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
1684816848
"function" ===
1684916849
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)