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