@samitouri / QOS-React-2 / commits / 3d10eca241

Move scheduler priority check into ReactDOM (#20778)

* Move scheduler priority check into ReactDOM * TODO

Dan Abramov committed Feb 9, 2021 at 22:54 UTC 3d10eca241be7b51cd4d74cf69eb1f429818b71a
3 files changed +21 -9
packages/react-dom/src/events/DOMEventNames.js
+1
@@ -62,6 +62,7 @@ export type DOMEventName =
62 | 'loadeddata'
63 | 'loadedmetadata'
64 | 'lostpointercapture'
65 + | 'message'
66 | 'mousedown'
67 | 'mouseenter'
68 | 'mouseleave'
packages/react-dom/src/events/ReactDOMEventListener.js
+19
@@ -55,6 +55,7 @@ import {
55 DefaultLanePriority as DefaultLanePriority_old,
56 getCurrentUpdateLanePriority as getCurrentUpdateLanePriority_old,
57 setCurrentUpdateLanePriority as setCurrentUpdateLanePriority_old,
58 + schedulerPriorityToLanePriority as schedulerPriorityToLanePriority_old,
59 } from 'react-reconciler/src/ReactFiberLane.old';
60 import {
61 InputDiscreteLanePriority as InputDiscreteLanePriority_new,
@@ -62,7 +63,10 @@ import {
63 DefaultLanePriority as DefaultLanePriority_new,
64 getCurrentUpdateLanePriority as getCurrentUpdateLanePriority_new,
65 setCurrentUpdateLanePriority as setCurrentUpdateLanePriority_new,
66 + schedulerPriorityToLanePriority as schedulerPriorityToLanePriority_new,
67 } from 'react-reconciler/src/ReactFiberLane.new';
68 +import {getCurrentPriorityLevel as getCurrentPriorityLevel_old} from 'react-reconciler/src/SchedulerWithReactIntegration.old';
69 +import {getCurrentPriorityLevel as getCurrentPriorityLevel_new} from 'react-reconciler/src/SchedulerWithReactIntegration.new';
70
71 const InputDiscreteLanePriority = enableNewReconciler
72 ? InputDiscreteLanePriority_new
@@ -79,6 +83,12 @@ const getCurrentUpdateLanePriority = enableNewReconciler
83 const setCurrentUpdateLanePriority = enableNewReconciler
84 ? setCurrentUpdateLanePriority_new
85 : setCurrentUpdateLanePriority_old;
86 +const schedulerPriorityToLanePriority = enableNewReconciler
87 + ? schedulerPriorityToLanePriority_new
88 + : schedulerPriorityToLanePriority_old;
89 +const getCurrentPriorityLevel = enableNewReconciler
90 + ? getCurrentPriorityLevel_new
91 + : getCurrentPriorityLevel_old;
92
93 const {
94 unstable_UserBlockingPriority: UserBlockingPriority,
@@ -428,6 +438,15 @@ export function getEventPriority(domEventName: DOMEventName): * {
438 case 'mouseenter':
439 case 'mouseleave':
440 return InputContinuousLanePriority;
441 + case 'message': {
442 + // We might be in the Scheduler callback.
443 + // Eventually this mechanism will be replaced by a check
444 + // of the current priority on the native scheduler.
445 + const schedulerPriority = getCurrentPriorityLevel();
446 + // TODO: Inline schedulerPriorityToLanePriority into this file
447 + // when we delete the enableNativeEventPriorityInference flag.
448 + return schedulerPriorityToLanePriority(schedulerPriority);
449 + }
450 default:
451 return DefaultLanePriority;
452 }
packages/react-reconciler/src/ReactFiberWorkLoop.old.js
+1 -9
@@ -465,15 +465,7 @@ export function requestUpdateLane(fiber: Fiber): Lane {
465 } else {
466 if (enableNativeEventPriorityInference) {
467 const eventLanePriority = getCurrentEventPriority();
468 - if (eventLanePriority === DefaultLanePriority) {
469 - // TODO: move this case into the ReactDOM host config.
470 - const schedulerLanePriority = schedulerPriorityToLanePriority(
471 - schedulerPriority,
472 - );
473 - lane = findUpdateLane(schedulerLanePriority, currentEventWipLanes);
474 - } else {
475 - lane = findUpdateLane(eventLanePriority, currentEventWipLanes);
476 - }
468 + lane = findUpdateLane(eventLanePriority, currentEventWipLanes);
469 } else {
470 const schedulerLanePriority = schedulerPriorityToLanePriority(
471 schedulerPriority,