diff --git a/packages/react-dom/src/__tests__/ReactDOMEventListener-test.js b/packages/react-dom/src/__tests__/ReactDOMEventListener-test.js index 044c381e9f..b8329a5653 100644 --- a/packages/react-dom/src/__tests__/ReactDOMEventListener-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMEventListener-test.js @@ -278,10 +278,10 @@ describe('ReactDOMEventListener', () => { document.body.removeChild(container); }); - // This is a special case for submit and reset events as they are listened on - // at the element level and not the document. - // @see https://github.com/facebook/react/pull/13462 - it('should (or not) receive submit events if native, interim DOM handler prevents it', () => { + // This tests an implementation detail that submit/reset events are listened to + // at the document level, which is necessary for event replaying to work. + // They bubble in all modern browsers. + it('should not receive submit events if native, interim DOM handler prevents it', () => { const container = document.createElement('div'); document.body.appendChild(container); @@ -316,13 +316,8 @@ describe('ReactDOMEventListener', () => { }), ); - if (gate(flags => flags.enableFormEventDelegation)) { - expect(handleSubmit).not.toHaveBeenCalled(); - expect(handleReset).not.toHaveBeenCalled(); - } else { - expect(handleSubmit).toHaveBeenCalled(); - expect(handleReset).toHaveBeenCalled(); - } + expect(handleSubmit).not.toHaveBeenCalled(); + expect(handleReset).not.toHaveBeenCalled(); } finally { document.body.removeChild(container); } diff --git a/packages/react-dom/src/events/DOMModernPluginEventSystem.js b/packages/react-dom/src/events/DOMModernPluginEventSystem.js index 1d0cb8b4d2..81ff02d5d3 100644 --- a/packages/react-dom/src/events/DOMModernPluginEventSystem.js +++ b/packages/react-dom/src/events/DOMModernPluginEventSystem.js @@ -43,8 +43,6 @@ import { TOP_INVALID, TOP_SCROLL, TOP_CLOSE, - TOP_RESET, - TOP_SUBMIT, TOP_CAN_PLAY, TOP_CAN_PLAY_THROUGH, TOP_DURATION_CHANGE, @@ -83,7 +81,6 @@ import getListener from './getListener'; import {passiveBrowserEventsSupported} from './checkPassiveEvents'; import { - enableFormEventDelegation, enableLegacyFBSupport, enableCreateEventHandleAPI, enableScopeAPI, @@ -244,11 +241,6 @@ export const capturePhaseEvents: Set = new Set([ TOP_WAITING, ]); -if (!enableFormEventDelegation) { - capturePhaseEvents.add(TOP_SUBMIT); - capturePhaseEvents.add(TOP_RESET); -} - if (enableCreateEventHandleAPI) { capturePhaseEvents.add(TOP_AFTER_BLUR); } diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index 4c76b7f09d..0837686bf1 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -127,6 +127,3 @@ export const deferRenderPhaseUpdateToNextBatch = true; // Replacement for runWithPriority in React internals. export const decoupleUpdatePriorityFromScheduler = false; - -// Enables delegation for submit and reset events. -export const enableFormEventDelegation = false; diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index b607bc5e9b..1ac12703a2 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -44,7 +44,6 @@ export const warnAboutSpreadingKeyToJSX = false; export const enableComponentStackLocations = false; export const enableLegacyFBSupport = false; export const enableFilterEmptyStringAttributesDOM = false; -export const enableFormEventDelegation = false; export const enableNewReconciler = false; export const deferRenderPhaseUpdateToNextBatch = true; diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js index 77a1010082..1e41269fc8 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-oss.js +++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js @@ -43,7 +43,6 @@ export const warnAboutSpreadingKeyToJSX = false; export const enableComponentStackLocations = false; export const enableLegacyFBSupport = false; export const enableFilterEmptyStringAttributesDOM = false; -export const enableFormEventDelegation = false; export const enableNewReconciler = false; export const deferRenderPhaseUpdateToNextBatch = true; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js index cfc511a0c2..0425f62fc0 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js @@ -43,7 +43,6 @@ export const warnAboutSpreadingKeyToJSX = false; export const enableComponentStackLocations = true; export const enableLegacyFBSupport = false; export const enableFilterEmptyStringAttributesDOM = false; -export const enableFormEventDelegation = false; export const enableNewReconciler = false; export const deferRenderPhaseUpdateToNextBatch = true; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js index 4402ee3221..2e2f0aab0d 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js @@ -43,7 +43,6 @@ export const warnAboutSpreadingKeyToJSX = false; export const enableComponentStackLocations = true; export const enableLegacyFBSupport = false; export const enableFilterEmptyStringAttributesDOM = false; -export const enableFormEventDelegation = false; export const enableNewReconciler = false; export const deferRenderPhaseUpdateToNextBatch = true; diff --git a/packages/shared/forks/ReactFeatureFlags.testing.js b/packages/shared/forks/ReactFeatureFlags.testing.js index 33d56da4d6..b60f732c38 100644 --- a/packages/shared/forks/ReactFeatureFlags.testing.js +++ b/packages/shared/forks/ReactFeatureFlags.testing.js @@ -43,7 +43,6 @@ export const warnAboutSpreadingKeyToJSX = false; export const enableComponentStackLocations = true; export const enableLegacyFBSupport = false; export const enableFilterEmptyStringAttributesDOM = false; -export const enableFormEventDelegation = false; export const enableNewReconciler = false; export const deferRenderPhaseUpdateToNextBatch = true; diff --git a/packages/shared/forks/ReactFeatureFlags.testing.www.js b/packages/shared/forks/ReactFeatureFlags.testing.www.js index 1abc93999f..72cb1a10e1 100644 --- a/packages/shared/forks/ReactFeatureFlags.testing.www.js +++ b/packages/shared/forks/ReactFeatureFlags.testing.www.js @@ -43,7 +43,6 @@ export const warnAboutSpreadingKeyToJSX = false; export const enableComponentStackLocations = true; export const enableLegacyFBSupport = !__EXPERIMENTAL__; export const enableFilterEmptyStringAttributesDOM = false; -export const enableFormEventDelegation = false; export const enableNewReconciler = false; export const deferRenderPhaseUpdateToNextBatch = true; diff --git a/packages/shared/forks/ReactFeatureFlags.www-dynamic.js b/packages/shared/forks/ReactFeatureFlags.www-dynamic.js index d244b0fda6..84fafd6e14 100644 --- a/packages/shared/forks/ReactFeatureFlags.www-dynamic.js +++ b/packages/shared/forks/ReactFeatureFlags.www-dynamic.js @@ -43,5 +43,3 @@ export const replayFailedUnitOfWorkWithInvokeGuardedCallback = __DEV__; // to __VARIANT__. export const enableTrustedTypesIntegration = false; export const disableSchedulerTimeoutBasedOnReactExpirationTime = false; - -export const enableFormEventDelegation = __VARIANT__; diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js index 4b6e29fb21..f8d399b9cf 100644 --- a/packages/shared/forks/ReactFeatureFlags.www.js +++ b/packages/shared/forks/ReactFeatureFlags.www.js @@ -27,7 +27,6 @@ export const { decoupleUpdatePriorityFromScheduler, enableDebugTracing, enableSchedulingProfiler, - enableFormEventDelegation, } = dynamicFeatureFlags; // On WWW, __EXPERIMENTAL__ is used for a new modern build.