Skip to content

Commit 3b27160

Browse files
authored
Put perf integration behind a feature flag (#11455)
* Enable User Timing API integration with a feature flag * Expose a way to toggle user timing flag in www * Update ReactNativeCSFeatureFlags.js * Update ReactFeatureFlags.js
1 parent 6994961 commit 3b27160

File tree

10 files changed

+501
-498
lines changed

10 files changed

+501
-498
lines changed

packages/react-cs-renderer/src/ReactNativeCSFeatureFlags.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,27 @@
77
* @flow
88
*/
99

10+
import invariant from 'fbjs/lib/invariant';
11+
1012
import typeof * as FeatureFlagsType from 'shared/ReactFeatureFlags';
1113
import typeof * as CSFeatureFlagsType from './ReactNativeCSFeatureFlags';
1214

1315
export const enableAsyncSubtreeAPI = true;
1416
export const enableAsyncSchedulingByDefaultInReactDOM = false;
1517
export const enableReactFragment = false;
1618
export const enableCreateRoot = false;
19+
export const enableUserTimingAPI = __DEV__;
1720

1821
// React Native CS uses persistent reconciler.
1922
export const enableMutatingReconciler = false;
2023
export const enableNoopReconciler = false;
2124
export const enablePersistentReconciler = true;
2225

26+
// Only used in www builds.
27+
export function addUserTimingListener() {
28+
invariant(false, 'Not implemented.');
29+
}
30+
2331
// Flow magic to verify the exports of this file match the original version.
2432
// eslint-disable-next-line no-unused-vars
2533
type Check<_X, Y: _X, X: Y=_X> = null;

packages/react-dom/src/client/ReactDOMFB.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import * as ReactInstanceMap from 'shared/ReactInstanceMap';
1313
import * as ReactFiberErrorLogger
1414
from 'react-reconciler/src/ReactFiberErrorLogger';
1515
import ReactErrorUtils from 'shared/ReactErrorUtils';
16+
import {addUserTimingListener} from 'shared/ReactFeatureFlags';
1617

1718
import ReactDOM from './ReactDOM';
1819
import * as ReactBrowserEventEmitter from '../events/ReactBrowserEventEmitter';
@@ -31,6 +32,8 @@ Object.assign(
3132
ReactInstanceMap,
3233
// Used by www msite:
3334
TapEventPlugin,
35+
// Perf experiment
36+
addUserTimingListener,
3437
},
3538
);
3639

0 commit comments

Comments
 (0)