@samitouri / QOS-React-2 / commits / 555eeae33d

Add disableNativeComponentFrames flag (#20364)

## Summary We're experiencing some issues internally where the component stack is getting into our way of fixing them as it causes the page to become unresponsive. This adds a flag so that we can disable this feature as a temporary workaround. More internal context: https://fburl.com/go9yoklm ## Test Plan I tried to default this flag to `__VARIANT__` but the variant tests (`yarn test-www --variant`) started to fail across the board since a lot of tests depend on the component tree, things like this: https://user-images.githubusercontent.com/458591/100771192-6a1e1c00-33fe-11eb-9ab0-8ff46ba378a2.png So, it seems to work :-) Given that it's unhandy to update the hundreds of tests that are failing I decided to hard code this to `false` like we already do for some other options.

Philipp Spiess committed Dec 2, 2020 at 16:25 UTC 555eeae33de09a5cbbb0b71aba3c57d7bfac0513
11 files changed +16 -2
packages/shared/ReactComponentStackFrame.js
+5 -2
@@ -10,7 +10,10 @@
10 import type {Source} from 'shared/ReactElementType';
11 import type {LazyComponent} from 'react/src/ReactLazy';
12
13 -import {enableComponentStackLocations} from 'shared/ReactFeatureFlags';
13 +import {
14 + enableComponentStackLocations,
15 + disableNativeComponentFrames,
16 +} from 'shared/ReactFeatureFlags';
17
18 import {
19 REACT_SUSPENSE_TYPE,
@@ -65,7 +68,7 @@ export function describeNativeComponentFrame(
68 construct: boolean,
69 ): string {
70 // If something asked for a stack inside a fake render, it should get ignored.
68 - if (!fn || reentry) {
71 + if (disableNativeComponentFrames || !fn || reentry) {
72 return '';
73 }
74
packages/shared/ReactFeatureFlags.js
+2
@@ -98,6 +98,8 @@ export const enableComponentStackLocations = true;
98
99 export const enableNewReconciler = false;
100
101 +export const disableNativeComponentFrames = false;
102 +
103 // --------------------------
104 // Future APIs to be deprecated
105 // --------------------------
packages/shared/forks/ReactFeatureFlags.native-fb.js
+1
@@ -44,6 +44,7 @@ export const warnAboutSpreadingKeyToJSX = false;
44 export const enableComponentStackLocations = false;
45 export const enableLegacyFBSupport = false;
46 export const enableFilterEmptyStringAttributesDOM = false;
47 +export const disableNativeComponentFrames = false;
48
49 export const enableNewReconciler = false;
50 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.native-oss.js
+1
@@ -43,6 +43,7 @@ export const warnAboutSpreadingKeyToJSX = false;
43 export const enableComponentStackLocations = false;
44 export const enableLegacyFBSupport = false;
45 export const enableFilterEmptyStringAttributesDOM = false;
46 +export const disableNativeComponentFrames = false;
47
48 export const enableNewReconciler = false;
49 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.test-renderer.js
+1
@@ -43,6 +43,7 @@ export const warnAboutSpreadingKeyToJSX = false;
43 export const enableComponentStackLocations = true;
44 export const enableLegacyFBSupport = false;
45 export const enableFilterEmptyStringAttributesDOM = false;
46 +export const disableNativeComponentFrames = false;
47
48 export const enableNewReconciler = false;
49 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.test-renderer.native.js
+1
@@ -43,6 +43,7 @@ export const warnAboutSpreadingKeyToJSX = false;
43 export const enableComponentStackLocations = false;
44 export const enableLegacyFBSupport = false;
45 export const enableFilterEmptyStringAttributesDOM = false;
46 +export const disableNativeComponentFrames = false;
47
48 export const enableNewReconciler = false;
49 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.test-renderer.www.js
+1
@@ -43,6 +43,7 @@ export const warnAboutSpreadingKeyToJSX = false;
43 export const enableComponentStackLocations = true;
44 export const enableLegacyFBSupport = false;
45 export const enableFilterEmptyStringAttributesDOM = false;
46 +export const disableNativeComponentFrames = false;
47
48 export const enableNewReconciler = false;
49 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.testing.js
+1
@@ -43,6 +43,7 @@ export const warnAboutSpreadingKeyToJSX = false;
43 export const enableComponentStackLocations = true;
44 export const enableLegacyFBSupport = false;
45 export const enableFilterEmptyStringAttributesDOM = false;
46 +export const disableNativeComponentFrames = false;
47
48 export const enableNewReconciler = false;
49 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.testing.www.js
+1
@@ -43,6 +43,7 @@ export const warnAboutSpreadingKeyToJSX = false;
43 export const enableComponentStackLocations = true;
44 export const enableLegacyFBSupport = !__EXPERIMENTAL__;
45 export const enableFilterEmptyStringAttributesDOM = false;
46 +export const disableNativeComponentFrames = false;
47
48 export const enableNewReconciler = false;
49 export const deferRenderPhaseUpdateToNextBatch = true;
packages/shared/forks/ReactFeatureFlags.www-dynamic.js
+1
@@ -47,6 +47,7 @@ export const replayFailedUnitOfWorkWithInvokeGuardedCallback = __DEV__;
47 // to __VARIANT__.
48 export const enableTrustedTypesIntegration = false;
49 export const disableSchedulerTimeoutBasedOnReactExpirationTime = false;
50 +export const disableNativeComponentFrames = false;
51
52 export const enableDoubleInvokingEffects = false;
53 export const enableUseRefAccessWarning = __VARIANT__;
packages/shared/forks/ReactFeatureFlags.www.js
+1
@@ -28,6 +28,7 @@ export const {
28 enableDebugTracing,
29 enableDoubleInvokingEffects,
30 enableUseRefAccessWarning,
31 + disableNativeComponentFrames,
32 } = dynamicFeatureFlags;
33
34 // On WWW, __EXPERIMENTAL__ is used for a new modern build.