Commit 768f965
authored
Suspensily committing a prerendered tree (#26434)
Prerendering a tree (i.e. with Offscreen) should not suspend the commit
phase, because the content is not yet visible. However, when revealing a
prerendered tree, we should suspend the commit phase if resources in the
prerendered tree haven't finished loading yet.
To do this properly, we need to visit all the visible nodes in the tree
that might possibly suspend. This includes nodes in the current tree,
because even though they were already "mounted", the resources might not
have loaded yet, because we didn't suspend when it was prerendered.
We will need to add this capability to the Offscreen component's
"manual" mode, too. Something like a `ready()` method that returns a
promise that resolves when the tree has fully loaded.
Also includes some fixes to #26450. See PR for details.1 parent d12bdcd commit 768f965
File tree
9 files changed
+336
-85
lines changed- packages
- react-dom-bindings/src/client
- react-dom/src/__tests__
- react-reconciler/src
- __tests__
- forks
9 files changed
+336
-85
lines changedLines changed: 31 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1788 | 1788 | | |
1789 | 1789 | | |
1790 | 1790 | | |
1791 | | - | |
| 1791 | + | |
1792 | 1792 | | |
1793 | 1793 | | |
1794 | 1794 | | |
| |||
2170 | 2170 | | |
2171 | 2171 | | |
2172 | 2172 | | |
| 2173 | + | |
2173 | 2174 | | |
2174 | 2175 | | |
2175 | 2176 | | |
| |||
2518 | 2519 | | |
2519 | 2520 | | |
2520 | 2521 | | |
| 2522 | + | |
| 2523 | + | |
| 2524 | + | |
| 2525 | + | |
| 2526 | + | |
2521 | 2527 | | |
2522 | 2528 | | |
2523 | 2529 | | |
| |||
2556 | 2562 | | |
2557 | 2563 | | |
2558 | 2564 | | |
| 2565 | + | |
2559 | 2566 | | |
2560 | 2567 | | |
2561 | 2568 | | |
| |||
2604 | 2611 | | |
2605 | 2612 | | |
2606 | 2613 | | |
| 2614 | + | |
| 2615 | + | |
| 2616 | + | |
| 2617 | + | |
| 2618 | + | |
| 2619 | + | |
| 2620 | + | |
| 2621 | + | |
| 2622 | + | |
| 2623 | + | |
| 2624 | + | |
| 2625 | + | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
| 2629 | + | |
| 2630 | + | |
| 2631 | + | |
| 2632 | + | |
| 2633 | + | |
| 2634 | + | |
| 2635 | + | |
2607 | 2636 | | |
2608 | 2637 | | |
2609 | 2638 | | |
| |||
2613 | 2642 | | |
2614 | 2643 | | |
2615 | 2644 | | |
2616 | | - | |
| 2645 | + | |
2617 | 2646 | | |
2618 | 2647 | | |
2619 | 2648 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2939 | 2939 | | |
2940 | 2940 | | |
2941 | 2941 | | |
2942 | | - | |
2943 | 2942 | | |
2944 | 2943 | | |
2945 | 2944 | | |
| |||
2949 | 2948 | | |
2950 | 2949 | | |
2951 | 2950 | | |
| 2951 | + | |
| 2952 | + | |
| 2953 | + | |
2952 | 2954 | | |
2953 | 2955 | | |
2954 | 2956 | | |
| 2957 | + | |
2955 | 2958 | | |
2956 | 2959 | | |
2957 | 2960 | | |
| |||
2961 | 2964 | | |
2962 | 2965 | | |
2963 | 2966 | | |
| 2967 | + | |
2964 | 2968 | | |
2965 | 2969 | | |
2966 | 2970 | | |
| |||
2970 | 2974 | | |
2971 | 2975 | | |
2972 | 2976 | | |
| 2977 | + | |
| 2978 | + | |
| 2979 | + | |
2973 | 2980 | | |
2974 | 2981 | | |
2975 | 2982 | | |
| |||
2978 | 2985 | | |
2979 | 2986 | | |
2980 | 2987 | | |
| 2988 | + | |
| 2989 | + | |
| 2990 | + | |
2981 | 2991 | | |
2982 | 2992 | | |
2983 | 2993 | | |
| |||
2989 | 2999 | | |
2990 | 3000 | | |
2991 | 3001 | | |
2992 | | - | |
2993 | | - | |
2994 | | - | |
| 3002 | + | |
| 3003 | + | |
| 3004 | + | |
| 3005 | + | |
2995 | 3006 | | |
2996 | 3007 | | |
2997 | 3008 | | |
| |||
3005 | 3016 | | |
3006 | 3017 | | |
3007 | 3018 | | |
| 3019 | + | |
3008 | 3020 | | |
3009 | 3021 | | |
3010 | 3022 | | |
| |||
3015 | 3027 | | |
3016 | 3028 | | |
3017 | 3029 | | |
| 3030 | + | |
3018 | 3031 | | |
3019 | 3032 | | |
3020 | 3033 | | |
| |||
3023 | 3036 | | |
3024 | 3037 | | |
3025 | 3038 | | |
3026 | | - | |
| 3039 | + | |
3027 | 3040 | | |
3028 | 3041 | | |
3029 | 3042 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
| 97 | + | |
| 98 | + | |
98 | 99 | | |
99 | 100 | | |
100 | 101 | | |
| |||
4065 | 4066 | | |
4066 | 4067 | | |
4067 | 4068 | | |
| 4069 | + | |
| 4070 | + | |
| 4071 | + | |
| 4072 | + | |
| 4073 | + | |
| 4074 | + | |
| 4075 | + | |
| 4076 | + | |
| 4077 | + | |
| 4078 | + | |
| 4079 | + | |
4068 | 4080 | | |
4069 | 4081 | | |
4070 | 4082 | | |
4071 | 4083 | | |
4072 | 4084 | | |
4073 | | - | |
| 4085 | + | |
4074 | 4086 | | |
4075 | 4087 | | |
4076 | 4088 | | |
| |||
4083 | 4095 | | |
4084 | 4096 | | |
4085 | 4097 | | |
4086 | | - | |
| 4098 | + | |
4087 | 4099 | | |
4088 | 4100 | | |
4089 | 4101 | | |
| |||
4101 | 4113 | | |
4102 | 4114 | | |
4103 | 4115 | | |
4104 | | - | |
| 4116 | + | |
4105 | 4117 | | |
4106 | 4118 | | |
4107 | 4119 | | |
| |||
4117 | 4129 | | |
4118 | 4130 | | |
4119 | 4131 | | |
4120 | | - | |
| 4132 | + | |
| 4133 | + | |
4121 | 4134 | | |
| 4135 | + | |
| 4136 | + | |
| 4137 | + | |
| 4138 | + | |
| 4139 | + | |
| 4140 | + | |
| 4141 | + | |
| 4142 | + | |
| 4143 | + | |
| 4144 | + | |
| 4145 | + | |
| 4146 | + | |
| 4147 | + | |
| 4148 | + | |
| 4149 | + | |
| 4150 | + | |
| 4151 | + | |
| 4152 | + | |
| 4153 | + | |
| 4154 | + | |
| 4155 | + | |
| 4156 | + | |
| 4157 | + | |
4122 | 4158 | | |
4123 | | - | |
4124 | 4159 | | |
4125 | 4160 | | |
4126 | 4161 | | |
| |||
0 commit comments