From eb510a33048fabd95d272b1c0b65f941e2909240 Mon Sep 17 00:00:00 2001 From: Andrey Lunyov Date: Fri, 29 Mar 2024 13:06:07 -0400 Subject: [PATCH] Land enableCustomElementPropertySupport for React 19 (#27450) We've rolled out this flag internally on WWW. This PR removed flag `enableCustomElementPropertySupport` Test plan: -- `yarn test` Co-authored-by: Ricky Hanlon --- .../src/client/DOMPropertyOperations.js | 22 ++---- .../src/client/ReactDOMComponent.js | 75 ++++++++----------- .../src/events/plugins/ChangeEventPlugin.js | 6 +- .../src/server/ReactFizzConfigDOM.js | 23 +++--- .../src/shared/ReactDOMUnknownPropertyHook.js | 9 +-- .../__tests__/DOMPropertyOperations-test.js | 31 +------- .../src/__tests__/ReactDOMComponent-test.js | 8 +- .../src/__tests__/ReactDOMFizzServer-test.js | 2 +- ...eactDOMServerIntegrationAttributes-test.js | 21 +----- .../__tests__/ReactServerRendering-test.js | 2 - .../ReactServerRenderingHydration-test.js | 15 +--- packages/shared/ReactFeatureFlags.js | 6 -- .../forks/ReactFeatureFlags.native-fb.js | 1 - .../forks/ReactFeatureFlags.native-oss.js | 1 - .../forks/ReactFeatureFlags.test-renderer.js | 1 - .../ReactFeatureFlags.test-renderer.native.js | 1 - .../ReactFeatureFlags.test-renderer.www.js | 1 - .../shared/forks/ReactFeatureFlags.www.js | 1 - 18 files changed, 63 insertions(+), 163 deletions(-) diff --git a/packages/react-dom-bindings/src/client/DOMPropertyOperations.js b/packages/react-dom-bindings/src/client/DOMPropertyOperations.js index ad14b6498c835..867eeba4a0869 100644 --- a/packages/react-dom-bindings/src/client/DOMPropertyOperations.js +++ b/packages/react-dom-bindings/src/client/DOMPropertyOperations.js @@ -8,10 +8,7 @@ */ import isAttributeNameSafe from '../shared/isAttributeNameSafe'; -import { - enableTrustedTypesIntegration, - enableCustomElementPropertySupport, -} from 'shared/ReactFeatureFlags'; +import {enableTrustedTypesIntegration} from 'shared/ReactFeatureFlags'; import {checkAttributeStringCoercion} from 'shared/CheckStringCoercion'; import {getFiberCurrentPropsFromNode} from './ReactDOMComponentTree'; @@ -73,25 +70,18 @@ export function getValueForAttributeOnCustomComponent( // it would be expected that they end up not having an attribute. return expected; case 'function': - if (enableCustomElementPropertySupport) { - return expected; - } - break; + return expected; case 'boolean': - if (enableCustomElementPropertySupport) { - if (expected === false) { - return expected; - } + if (expected === false) { + return expected; } } return expected === undefined ? undefined : null; } const value = node.getAttribute(name); - if (enableCustomElementPropertySupport) { - if (value === '' && expected === true) { - return true; - } + if (value === '' && expected === true) { + return true; } if (__DEV__) { diff --git a/packages/react-dom-bindings/src/client/ReactDOMComponent.js b/packages/react-dom-bindings/src/client/ReactDOMComponent.js index 80ce758959927..523babf87eed2 100644 --- a/packages/react-dom-bindings/src/client/ReactDOMComponent.js +++ b/packages/react-dom-bindings/src/client/ReactDOMComponent.js @@ -67,7 +67,6 @@ import sanitizeURL from '../shared/sanitizeURL'; import { enableBigIntSupport, - enableCustomElementPropertySupport, disableIEWorkarounds, enableTrustedTypesIntegration, enableFilterEmptyStringAttributesDOM, @@ -870,9 +869,7 @@ function setProp( } case 'innerText': case 'textContent': - if (enableCustomElementPropertySupport) { - break; - } + break; // Fall through default: { if ( @@ -983,9 +980,7 @@ function setPropOnCustomElement( } case 'innerText': // Properties case 'textContent': - if (enableCustomElementPropertySupport) { - break; - } + break; // Fall through default: { if (registrationNameDependencies.hasOwnProperty(key)) { @@ -993,15 +988,7 @@ function setPropOnCustomElement( warnForInvalidEventListener(key, value); } } else { - if (enableCustomElementPropertySupport) { - setValueForPropertyOnCustomComponent(domElement, key, value); - } else { - if (typeof value === 'boolean') { - // Special case before the new flag is on - value = '' + (value: any); - } - setValueForAttribute(domElement, key, value); - } + setValueForPropertyOnCustomComponent(domElement, key, value); } } } @@ -2293,35 +2280,30 @@ function diffHydratedCustomComponent( case 'isContentEditable': case 'outerText': case 'outerHTML': - if (enableCustomElementPropertySupport) { - extraAttributes.delete(propKey.toLowerCase()); - if (__DEV__) { - console.error( - 'Assignment to read-only property will result in a no-op: `%s`', - propKey, - ); - } - continue; - } - // Fall through - case 'className': - if (enableCustomElementPropertySupport) { - // className is a special cased property on the server to render as an attribute. - extraAttributes.delete('class'); - const serverValue = getValueForAttributeOnCustomComponent( - domElement, - 'class', - value, - ); - warnForPropDifference( - 'className', - serverValue, - value, - serverDifferences, + extraAttributes.delete(propKey.toLowerCase()); + if (__DEV__) { + console.error( + 'Assignment to read-only property will result in a no-op: `%s`', + propKey, ); - continue; } + continue; // Fall through + case 'className': + // className is a special cased property on the server to render as an attribute. + extraAttributes.delete('class'); + const serverValue = getValueForAttributeOnCustomComponent( + domElement, + 'class', + value, + ); + warnForPropDifference( + 'className', + serverValue, + value, + serverDifferences, + ); + continue; default: { // This is a DEV-only path const hostContextDev: HostContextDev = (hostContext: any); @@ -2335,12 +2317,17 @@ function diffHydratedCustomComponent( } else { extraAttributes.delete(propKey); } - const serverValue = getValueForAttributeOnCustomComponent( + const valueOnCustomComponent = getValueForAttributeOnCustomComponent( domElement, propKey, value, ); - warnForPropDifference(propKey, serverValue, value, serverDifferences); + warnForPropDifference( + propKey, + valueOnCustomComponent, + value, + serverDifferences, + ); } } } diff --git a/packages/react-dom-bindings/src/events/plugins/ChangeEventPlugin.js b/packages/react-dom-bindings/src/events/plugins/ChangeEventPlugin.js index ff478e4a6b5d5..fff7d0a1bb8c5 100644 --- a/packages/react-dom-bindings/src/events/plugins/ChangeEventPlugin.js +++ b/packages/react-dom-bindings/src/events/plugins/ChangeEventPlugin.js @@ -26,10 +26,7 @@ import {updateValueIfChanged} from '../../client/inputValueTracking'; import {setDefaultValue} from '../../client/ReactDOMInput'; import {enqueueStateRestore} from '../ReactDOMControlledComponent'; -import { - disableInputAttributeSyncing, - enableCustomElementPropertySupport, -} from 'shared/ReactFeatureFlags'; +import {disableInputAttributeSyncing} from 'shared/ReactFeatureFlags'; import {batchedUpdates} from '../ReactDOMUpdateBatching'; import { processDispatchQueue, @@ -311,7 +308,6 @@ function extractEvents( } else if (shouldUseClickEvent(targetNode)) { getTargetInstFunc = getTargetInstForClickEvent; } else if ( - enableCustomElementPropertySupport && targetInst && isCustomElement(targetInst.elementType, targetInst.memoizedProps) ) { diff --git a/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js b/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js index 11a707348782b..6716811bf486a 100644 --- a/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js +++ b/packages/react-dom-bindings/src/server/ReactFizzConfigDOM.js @@ -30,7 +30,6 @@ import {Children} from 'react'; import { enableBigIntSupport, enableFilterEmptyStringAttributesDOM, - enableCustomElementPropertySupport, enableFizzExternalRuntime, enableNewBooleanProps, } from 'shared/ReactFeatureFlags'; @@ -3342,11 +3341,9 @@ function pushStartCustomElement( // Ignored. These are built-in to React on the client. break; case 'className': - if (enableCustomElementPropertySupport) { - // className gets rendered as class on the client, so it should be - // rendered as class on the server. - attributeName = 'class'; - } + // className gets rendered as class on the client, so it should be + // rendered as class on the server. + attributeName = 'class'; // intentional fallthrough default: if ( @@ -3354,14 +3351,12 @@ function pushStartCustomElement( typeof propValue !== 'function' && typeof propValue !== 'symbol' ) { - if (enableCustomElementPropertySupport) { - if (propValue === false) { - continue; - } else if (propValue === true) { - propValue = ''; - } else if (typeof propValue === 'object') { - continue; - } + if (propValue === false) { + continue; + } else if (propValue === true) { + propValue = ''; + } else if (typeof propValue === 'object') { + continue; } target.push( attributeSeparator, diff --git a/packages/react-dom-bindings/src/shared/ReactDOMUnknownPropertyHook.js b/packages/react-dom-bindings/src/shared/ReactDOMUnknownPropertyHook.js index 95551c616d07d..b80d23cbd0b84 100644 --- a/packages/react-dom-bindings/src/shared/ReactDOMUnknownPropertyHook.js +++ b/packages/react-dom-bindings/src/shared/ReactDOMUnknownPropertyHook.js @@ -9,10 +9,7 @@ import {ATTRIBUTE_NAME_CHAR} from './isAttributeNameSafe'; import isCustomElement from './isCustomElement'; import possibleStandardNames from './possibleStandardNames'; import hasOwnProperty from 'shared/hasOwnProperty'; -import { - enableCustomElementPropertySupport, - enableNewBooleanProps, -} from 'shared/ReactFeatureFlags'; +import {enableNewBooleanProps} from 'shared/ReactFeatureFlags'; const warnedProperties = {}; const EVENT_NAME_REGEX = /^on./; @@ -189,9 +186,7 @@ function validateProperty(tagName, name, value, eventRegistry) { } case 'innerText': // Properties case 'textContent': - if (enableCustomElementPropertySupport) { - return true; - } + return true; } switch (typeof value) { diff --git a/packages/react-dom/src/__tests__/DOMPropertyOperations-test.js b/packages/react-dom/src/__tests__/DOMPropertyOperations-test.js index 87885ca07b4a5..1ca571df71cc8 100644 --- a/packages/react-dom/src/__tests__/DOMPropertyOperations-test.js +++ b/packages/react-dom/src/__tests__/DOMPropertyOperations-test.js @@ -10,10 +10,7 @@ 'use strict'; // Set by `yarn test-fire`. -const { - enableCustomElementPropertySupport, - disableInputAttributeSyncing, -} = require('shared/ReactFeatureFlags'); +const {disableInputAttributeSyncing} = require('shared/ReactFeatureFlags'); describe('DOMPropertyOperations', () => { let React; @@ -234,7 +231,6 @@ describe('DOMPropertyOperations', () => { expect(container.firstChild.hasAttribute('value')).toBe(false); }); - // @gate enableCustomElementPropertySupport it('custom element custom events lowercase', async () => { const oncustomevent = jest.fn(); function Test() { @@ -251,7 +247,6 @@ describe('DOMPropertyOperations', () => { expect(oncustomevent).toHaveBeenCalledTimes(1); }); - // @gate enableCustomElementPropertySupport it('custom element custom events uppercase', async () => { const oncustomevent = jest.fn(); function Test() { @@ -268,7 +263,6 @@ describe('DOMPropertyOperations', () => { expect(oncustomevent).toHaveBeenCalledTimes(1); }); - // @gate enableCustomElementPropertySupport it('custom element custom event with dash in name', async () => { const oncustomevent = jest.fn(); function Test() { @@ -285,7 +279,6 @@ describe('DOMPropertyOperations', () => { expect(oncustomevent).toHaveBeenCalledTimes(1); }); - // @gate enableCustomElementPropertySupport it('custom element remove event handler', async () => { const oncustomevent = jest.fn(); function Test(props) { @@ -343,12 +336,8 @@ describe('DOMPropertyOperations', () => { expect(customElement.getAttribute('onstring')).toBe('hello'); expect(customElement.getAttribute('onobj')).toBe('[object Object]'); expect(customElement.getAttribute('onarray')).toBe('one,two'); - expect(customElement.getAttribute('ontrue')).toBe( - enableCustomElementPropertySupport ? '' : 'true', - ); - expect(customElement.getAttribute('onfalse')).toBe( - enableCustomElementPropertySupport ? null : 'false', - ); + expect(customElement.getAttribute('ontrue')).toBe(''); + expect(customElement.getAttribute('onfalse')).toBe(null); // Dispatch the corresponding event names to make sure that nothing crashes. customElement.dispatchEvent(new Event('string')); @@ -385,7 +374,6 @@ describe('DOMPropertyOperations', () => { expect(syntheticClickEvent.nativeEvent).toBe(nativeClickEvent); }); - // @gate enableCustomElementPropertySupport it('custom elements should have working onChange event listeners', async () => { let reactChangeEvent = null; const eventHandler = jest.fn(event => (reactChangeEvent = event)); @@ -450,7 +438,6 @@ describe('DOMPropertyOperations', () => { expect(eventHandler).toHaveBeenCalledTimes(expectedHandlerCallCount); }); - // @gate enableCustomElementPropertySupport it('custom elements should have separate onInput and onChange handling', async () => { const container = document.createElement('div'); document.body.appendChild(container); @@ -476,7 +463,6 @@ describe('DOMPropertyOperations', () => { expect(changeEventHandler).toHaveBeenCalledTimes(1); }); - // @gate enableCustomElementPropertySupport it('custom elements should be able to remove and re-add custom event listeners', async () => { const container = document.createElement('div'); document.body.appendChild(container); @@ -758,7 +744,6 @@ describe('DOMPropertyOperations', () => { expect(customOnClickHandler).toHaveBeenCalledTimes(0); }); - // @gate enableCustomElementPropertySupport it('onChange/onInput/onClick on div with various types of children', async () => { const container = document.createElement('div'); document.body.appendChild(container); @@ -951,7 +936,6 @@ describe('DOMPropertyOperations', () => { expect(onClickHandler).toBeCalledTimes(1); }); - // @gate enableCustomElementPropertySupport it('custom element onChange/onInput/onClick with event target custom element child', async () => { const container = document.createElement('div'); document.body.appendChild(container); @@ -987,7 +971,6 @@ describe('DOMPropertyOperations', () => { expect(onClickHandler).toBeCalledTimes(1); }); - // @gate enableCustomElementPropertySupport it('custom elements should allow custom events with capture event listeners', async () => { const oncustomeventCapture = jest.fn(); const oncustomevent = jest.fn(); @@ -1031,7 +1014,6 @@ describe('DOMPropertyOperations', () => { expect(customElement.hasChildNodes()).toBe(false); }); - // @gate enableCustomElementPropertySupport it('innerText should not work on custom elements', async () => { const container = document.createElement('div'); const root = ReactDOMClient.createRoot(container); @@ -1051,7 +1033,6 @@ describe('DOMPropertyOperations', () => { expect(customElement.hasChildNodes()).toBe(false); }); - // @gate enableCustomElementPropertySupport it('textContent should not work on custom elements', async () => { const container = document.createElement('div'); const root = ReactDOMClient.createRoot(container); @@ -1071,7 +1052,6 @@ describe('DOMPropertyOperations', () => { expect(customElement.hasChildNodes()).toBe(false); }); - // @gate enableCustomElementPropertySupport it('values should not be converted to booleans when assigning into custom elements', async () => { const container = document.createElement('div'); document.body.appendChild(container); @@ -1123,7 +1103,6 @@ describe('DOMPropertyOperations', () => { expect(customElement.foo).toBe(null); }); - // @gate enableCustomElementPropertySupport it('boolean props should not be stringified in attributes', async () => { const container = document.createElement('div'); document.body.appendChild(container); @@ -1143,7 +1122,6 @@ describe('DOMPropertyOperations', () => { expect(customElement.getAttribute('foo')).toBe(null); }); - // @gate enableCustomElementPropertySupport it('custom element custom event handlers assign multiple types', async () => { const container = document.createElement('div'); document.body.appendChild(container); @@ -1197,7 +1175,6 @@ describe('DOMPropertyOperations', () => { expect(customelement.getAttribute('oncustomevent')).toBe(null); }); - // @gate enableCustomElementPropertySupport it('custom element custom event handlers assign multiple types with setter', async () => { const container = document.createElement('div'); document.body.appendChild(container); @@ -1257,7 +1234,6 @@ describe('DOMPropertyOperations', () => { expect(customelement.getAttribute('oncustomevent')).toBe(null); }); - // @gate enableCustomElementPropertySupport it('assigning to a custom element property should not remove attributes', async () => { const container = document.createElement('div'); document.body.appendChild(container); @@ -1284,7 +1260,6 @@ describe('DOMPropertyOperations', () => { expect(customElement.getAttribute('foo')).toBe('one'); }); - // @gate enableCustomElementPropertySupport it('custom element properties should accept functions', async () => { const container = document.createElement('div'); document.body.appendChild(container); diff --git a/packages/react-dom/src/__tests__/ReactDOMComponent-test.js b/packages/react-dom/src/__tests__/ReactDOMComponent-test.js index 6ce4ca814f661..5f2c3d14c80e0 100644 --- a/packages/react-dom/src/__tests__/ReactDOMComponent-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMComponent-test.js @@ -3549,15 +3549,11 @@ describe('ReactDOMComponent', () => { root.render(); }); const node = container.firstChild; - expect(node.getAttribute('foo')).toBe( - ReactFeatureFlags.enableCustomElementPropertySupport ? '' : 'true', - ); + expect(node.getAttribute('foo')).toBe(''); await act(() => { root.render(); }); - expect(node.getAttribute('foo')).toBe( - ReactFeatureFlags.enableCustomElementPropertySupport ? null : 'false', - ); + expect(node.getAttribute('foo')).toBe(null); await act(() => { root.render(); }); diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js index 0d901ecc780a0..a603ea5e731fb 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFizzServer-test.js @@ -3603,7 +3603,7 @@ describe('ReactDOMFizzServer', () => { ); }); - // bugfix: https://github.com/facebook/react/issues/27286 affecting enableCustomElementPropertySupport flag + // bugfix: https://github.com/facebook/react/issues/27286 it('can render custom elements with children on ther server', async () => { await act(() => { renderToPipeableStream( diff --git a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationAttributes-test.js b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationAttributes-test.js index 1613ef66994ef..80467e5efc5b1 100644 --- a/packages/react-dom/src/__tests__/ReactDOMServerIntegrationAttributes-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMServerIntegrationAttributes-test.js @@ -699,13 +699,8 @@ describe('ReactDOMServerIntegration', () => { itRenders('className for custom elements', async render => { const e = await render(, 0); - if (ReactFeatureFlags.enableCustomElementPropertySupport) { - expect(e.getAttribute('className')).toBe(null); - expect(e.getAttribute('class')).toBe('test'); - } else { - expect(e.getAttribute('className')).toBe('test'); - expect(e.getAttribute('class')).toBe(null); - } + expect(e.getAttribute('className')).toBe(null); + expect(e.getAttribute('class')).toBe('test'); }); itRenders('htmlFor property on is elements', async render => { @@ -738,20 +733,12 @@ describe('ReactDOMServerIntegration', () => { itRenders('unknown boolean `true` attributes as strings', async render => { const e = await render(); - if (ReactFeatureFlags.enableCustomElementPropertySupport) { - expect(e.getAttribute('foo')).toBe(''); - } else { - expect(e.getAttribute('foo')).toBe('true'); - } + expect(e.getAttribute('foo')).toBe(''); }); itRenders('unknown boolean `false` attributes as strings', async render => { const e = await render(); - if (ReactFeatureFlags.enableCustomElementPropertySupport) { - expect(e.getAttribute('foo')).toBe(null); - } else { - expect(e.getAttribute('foo')).toBe('false'); - } + expect(e.getAttribute('foo')).toBe(null); }); itRenders('new boolean `true` attributes', async render => { diff --git a/packages/react-dom/src/__tests__/ReactServerRendering-test.js b/packages/react-dom/src/__tests__/ReactServerRendering-test.js index bd70b81d2a9e5..efacdb8be9a4e 100644 --- a/packages/react-dom/src/__tests__/ReactServerRendering-test.js +++ b/packages/react-dom/src/__tests__/ReactServerRendering-test.js @@ -1085,7 +1085,6 @@ describe('ReactDOMServer', () => { expect(output).toBe(``); }); - // @gate enableCustomElementPropertySupport it('Object properties should not be server rendered for custom elements', () => { const output = ReactDOMServer.renderToString( , @@ -1093,7 +1092,6 @@ describe('ReactDOMServer', () => { expect(output).toBe(``); }); - // @gate enableCustomElementPropertySupport it('Array properties should not be server rendered for custom elements', () => { const output = ReactDOMServer.renderToString( , diff --git a/packages/react-dom/src/__tests__/ReactServerRenderingHydration-test.js b/packages/react-dom/src/__tests__/ReactServerRenderingHydration-test.js index 3e878305048e5..dcba42d0afbcc 100644 --- a/packages/react-dom/src/__tests__/ReactServerRenderingHydration-test.js +++ b/packages/react-dom/src/__tests__/ReactServerRenderingHydration-test.js @@ -593,23 +593,16 @@ describe('ReactDOMServerHydration', () => { const jsx = React.createElement('my-custom-element', props); const element = document.createElement('div'); element.innerHTML = ReactDOMServer.renderToString(jsx); - if (gate(flags => flags.enableCustomElementPropertySupport)) { - await expect(async () => { - await act(() => { - ReactDOMClient.hydrateRoot(element, jsx); - }); - }).toErrorDev( - `Warning: Assignment to read-only property will result in a no-op: \`${readOnlyProperty}\``, - ); - } else { + await expect(async () => { await act(() => { ReactDOMClient.hydrateRoot(element, jsx); }); - } + }).toErrorDev( + `Warning: Assignment to read-only property will result in a no-op: \`${readOnlyProperty}\``, + ); } }); - // @gate enableCustomElementPropertySupport it('should not re-assign properties on hydration', async () => { const container = document.createElement('div'); document.body.appendChild(container); diff --git a/packages/shared/ReactFeatureFlags.js b/packages/shared/ReactFeatureFlags.js index 3861ea5b6329c..d2fad7905613d 100644 --- a/packages/shared/ReactFeatureFlags.js +++ b/packages/shared/ReactFeatureFlags.js @@ -146,12 +146,6 @@ export const useModernStrictMode = __NEXT_MAJOR__; // Remove IE and MsApp specific workarounds for innerHTML export const disableIEWorkarounds = __NEXT_MAJOR__; -// Changes the behavior for rendering custom elements in both server rendering -// and client rendering, mostly to allow JSX attributes to apply to the custom -// element's object properties instead of only HTML attributes. -// https://github.com/facebook/react/issues/11347 -export const enableCustomElementPropertySupport = __NEXT_MAJOR__; - // Filter certain DOM attributes (e.g. src, href) if their values are empty // strings. This prevents e.g. from making an unnecessary HTTP // request for certain browsers. diff --git a/packages/shared/forks/ReactFeatureFlags.native-fb.js b/packages/shared/forks/ReactFeatureFlags.native-fb.js index 1c6180ae903ae..cf821b1554f8e 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-fb.js +++ b/packages/shared/forks/ReactFeatureFlags.native-fb.js @@ -78,7 +78,6 @@ export const enableLazyContextPropagation = false; export const enableLegacyHidden = false; export const forceConcurrentByDefaultForTesting = false; export const allowConcurrentByDefault = false; -export const enableCustomElementPropertySupport = true; export const enableNewBooleanProps = true; export const enableTransitionTracing = false; diff --git a/packages/shared/forks/ReactFeatureFlags.native-oss.js b/packages/shared/forks/ReactFeatureFlags.native-oss.js index 1c3a95b52c40b..5b821ae3550a3 100644 --- a/packages/shared/forks/ReactFeatureFlags.native-oss.js +++ b/packages/shared/forks/ReactFeatureFlags.native-oss.js @@ -53,7 +53,6 @@ export const enableTaint = __NEXT_RN_MAJOR__; export const enableUnifiedSyncLane = __NEXT_RN_MAJOR__; export const enableFizzExternalRuntime = __NEXT_RN_MAJOR__; // DOM-only export const enableBinaryFlight = __NEXT_RN_MAJOR__; // DOM-only -export const enableCustomElementPropertySupport = __NEXT_RN_MAJOR__; // DOM-only export const enableServerComponentKeys = __NEXT_RN_MAJOR__; export const enableServerComponentLogs = __NEXT_RN_MAJOR__; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.js index d5b60e8203396..6d6ab23ae11b3 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.js @@ -57,7 +57,6 @@ export const enableLegacyHidden = false; export const forceConcurrentByDefaultForTesting = false; export const enableUnifiedSyncLane = __EXPERIMENTAL__; export const allowConcurrentByDefault = false; -export const enableCustomElementPropertySupport = false; export const consoleManagedByDevToolsDuringStrictMode = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js index 710eeb607ebfb..c854951e5c5c4 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.native.js @@ -59,7 +59,6 @@ export const enableLegacyHidden = false; export const forceConcurrentByDefaultForTesting = false; export const enableUnifiedSyncLane = true; export const allowConcurrentByDefault = true; -export const enableCustomElementPropertySupport = true; export const enableNewBooleanProps = true; export const consoleManagedByDevToolsDuringStrictMode = false; diff --git a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js index a4a3c138a218d..671d55aa82fa9 100644 --- a/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js +++ b/packages/shared/forks/ReactFeatureFlags.test-renderer.www.js @@ -59,7 +59,6 @@ export const enableLegacyHidden = false; export const forceConcurrentByDefaultForTesting = false; export const enableUnifiedSyncLane = true; export const allowConcurrentByDefault = true; -export const enableCustomElementPropertySupport = false; export const enableNewBooleanProps = false; export const consoleManagedByDevToolsDuringStrictMode = false; diff --git a/packages/shared/forks/ReactFeatureFlags.www.js b/packages/shared/forks/ReactFeatureFlags.www.js index c309500c3f00b..fccd09645ed3e 100644 --- a/packages/shared/forks/ReactFeatureFlags.www.js +++ b/packages/shared/forks/ReactFeatureFlags.www.js @@ -54,7 +54,6 @@ export const enableUpdaterTracking = __PROFILE__; export const enableSuspenseAvoidThisFallback = true; export const enableSuspenseAvoidThisFallbackFizz = false; -export const enableCustomElementPropertySupport = true; export const enableCPUSuspense = true; export const enableUseMemoCacheHook = true; export const enableUseEffectEventHook = true;