@samitouri / QOS-React / commits / bcc0aa4633

Revert "Revert "Remove onScroll bubbling flag (#19535)" (#19655)" (#19761)

This reverts commit 64ddef44c69a18038b1683e04c4558a72af1b91a.

Dan Abramov committed Sep 3, 2020 at 17:06 UTC bcc0aa4633760352c6c56f559d1e2d374d302f5a
12 files changed +14 -45
packages/react-dom/src/__tests__/ReactDOMEventListener-test.js
+6 -17
@@ -743,23 +743,12 @@ describe('ReactDOMEventListener', () => {
743 bubbles: false,
744 }),
745 );
746 - if (gate(flags => flags.disableOnScrollBubbling)) {
747 - expect(log).toEqual([
748 - ['capture', 'grand'],
749 - ['capture', 'parent'],
750 - ['capture', 'child'],
751 - ['bubble', 'child'],
752 - ]);
753 - } else {
754 - expect(log).toEqual([
755 - ['capture', 'grand'],
756 - ['capture', 'parent'],
757 - ['capture', 'child'],
758 - ['bubble', 'child'],
759 - ['bubble', 'parent'],
760 - ['bubble', 'grand'],
761 - ]);
762 - }
746 + expect(log).toEqual([
747 + ['capture', 'grand'],
748 + ['capture', 'parent'],
749 + ['capture', 'child'],
750 + ['bubble', 'child'],
751 + ]);
752 } finally {
753 document.body.removeChild(container);
754 }
packages/react-dom/src/__tests__/ReactDOMEventPropagation-test.js
-6
@@ -1225,12 +1225,6 @@ describe('ReactDOMEventListener', () => {
1225 });
1226
1227 describe('non-bubbling events that do not bubble in React', () => {
1228 - // This test will fail outside of the no-bubbling flag
1229 - // because its bubbling emulation is currently broken.
1230 - // In particular, if the target itself doesn't have
1231 - // a handler, it will not emulate bubbling correctly.
1232 - // Instead of fixing this, we'll just turn this flag on.
1233 - // @gate disableOnScrollBubbling
1228 it('onScroll', () => {
1229 testNonBubblingEvent({
1230 type: 'div',
packages/react-dom/src/events/plugins/SimpleEventPlugin.js
+8 -13
@@ -47,10 +47,7 @@ import {IS_EVENT_HANDLE_NON_MANAGED_NODE} from '../EventSystemFlags';
47 import getEventCharCode from '../getEventCharCode';
48 import {IS_CAPTURE_PHASE} from '../EventSystemFlags';
49
50 -import {
51 - enableCreateEventHandleAPI,
52 - disableOnScrollBubbling,
53 -} from 'shared/ReactFeatureFlags';
50 +import {enableCreateEventHandleAPI} from 'shared/ReactFeatureFlags';
51
52 function extractEvents(
53 dispatchQueue: DispatchQueue,
@@ -185,15 +182,13 @@ function extractEvents(
182 // In the past, React has always bubbled them, but this can be surprising.
183 // We're going to try aligning closer to the browser behavior by not bubbling
184 // them in React either. We'll start by not bubbling onScroll, and then expand.
188 - let accumulateTargetOnly = false;
189 - if (disableOnScrollBubbling) {
190 - accumulateTargetOnly =
191 - !inCapturePhase &&
192 - // TODO: ideally, we'd eventually add all events from
193 - // nonDelegatedEvents list in DOMPluginEventSystem.
194 - // Then we can remove this special list.
195 - domEventName === 'scroll';
196 - }
185 + const accumulateTargetOnly =
186 + !inCapturePhase &&
187 + // TODO: ideally, we'd eventually add all events from
188 + // nonDelegatedEvents list in DOMPluginEventSystem.
189 + // Then we can remove this special list.
190 + // This is a breaking change that can wait until React 18.
191 + domEventName === 'scroll';
192
193 accumulateSinglePhaseListeners(
194 targetInst,
packages/shared/ReactFeatureFlags.js
-1
@@ -135,6 +135,5 @@ export const enableDiscreteEventFlushingChange = false;
135
136 // https://github.com/facebook/react/pull/19654
137 export const enablePassiveEventIntervention = true;
138 -export const disableOnScrollBubbling = true;
138
139 export const enableEagerRootListeners = true;
packages/shared/forks/ReactFeatureFlags.native-fb.js
-1
@@ -44,7 +44,6 @@ export const enableComponentStackLocations = false;
44 export const enableLegacyFBSupport = false;
45 export const enableFilterEmptyStringAttributesDOM = false;
46 export const skipUnmountedBoundaries = false;
47 -export const disableOnScrollBubbling = true;
47
48 export const enableNewReconciler = false;
49 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.native-oss.js
-1
@@ -43,7 +43,6 @@ export const enableComponentStackLocations = false;
43 export const enableLegacyFBSupport = false;
44 export const enableFilterEmptyStringAttributesDOM = false;
45 export const skipUnmountedBoundaries = false;
46 -export const disableOnScrollBubbling = true;
46
47 export const enableNewReconciler = false;
48 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.test-renderer.js
-1
@@ -43,7 +43,6 @@ export const enableComponentStackLocations = true;
43 export const enableLegacyFBSupport = false;
44 export const enableFilterEmptyStringAttributesDOM = false;
45 export const skipUnmountedBoundaries = false;
46 -export const disableOnScrollBubbling = true;
46
47 export const enableNewReconciler = false;
48 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
-1
@@ -43,7 +43,6 @@ export const enableComponentStackLocations = true;
43 export const enableLegacyFBSupport = false;
44 export const enableFilterEmptyStringAttributesDOM = false;
45 export const skipUnmountedBoundaries = false;
46 -export const disableOnScrollBubbling = true;
46
47 export const enableNewReconciler = false;
48 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.testing.js
-1
@@ -43,7 +43,6 @@ export const enableComponentStackLocations = true;
43 export const enableLegacyFBSupport = false;
44 export const enableFilterEmptyStringAttributesDOM = false;
45 export const skipUnmountedBoundaries = false;
46 -export const disableOnScrollBubbling = true;
46
47 export const enableNewReconciler = false;
48 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.testing.www.js
-1
@@ -43,7 +43,6 @@ export const enableComponentStackLocations = true;
43 export const enableLegacyFBSupport = !__EXPERIMENTAL__;
44 export const enableFilterEmptyStringAttributesDOM = false;
45 export const skipUnmountedBoundaries = __EXPERIMENTAL__;
46 -export const disableOnScrollBubbling = true;
46
47 export const enableNewReconciler = false;
48 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.www-dynamic.js
-1
@@ -20,7 +20,6 @@ export const enableLegacyFBSupport = __VARIANT__;
20 export const decoupleUpdatePriorityFromScheduler = __VARIANT__;
21 export const skipUnmountedBoundaries = __VARIANT__;
22 export const enablePassiveEventIntervention = __VARIANT__;
23 -export const disableOnScrollBubbling = __VARIANT__;
23 export const enableEagerRootListeners = !__VARIANT__;
24
25 // Enable this flag to help with concurrent mode debugging.
packages/shared/forks/ReactFeatureFlags.www.js
-1
@@ -28,7 +28,6 @@ export const {
28 enableDebugTracing,
29 skipUnmountedBoundaries,
30 enablePassiveEventIntervention,
31 - disableOnScrollBubbling,
31 enableEagerRootListeners,
32 } = dynamicFeatureFlags;
33