diff --git a/packages/react-native/Libraries/Core/setUpPerformance.js b/packages/react-native/Libraries/Core/setUpPerformance.js index a33afb30cae..acd41a7398c 100644 --- a/packages/react-native/Libraries/Core/setUpPerformance.js +++ b/packages/react-native/Libraries/Core/setUpPerformance.js @@ -8,8 +8,8 @@ * @format */ -import NativePerformance from '../../src/private/webapis/performance/NativePerformance'; import Performance from '../../src/private/webapis/performance/Performance'; +import NativePerformance from '../../src/private/webapis/performance/specs/NativePerformance'; // In case if the native implementation of the Performance API is available, use it, // otherwise fall back to the legacy/default one, which only defines 'Performance.now()' diff --git a/packages/react-native/scripts/featureflags/generateJavaScriptModules.js b/packages/react-native/scripts/featureflags/generateJavaScriptModules.js index 4fc7d30e155..f0052954782 100644 --- a/packages/react-native/scripts/featureflags/generateJavaScriptModules.js +++ b/packages/react-native/scripts/featureflags/generateJavaScriptModules.js @@ -25,7 +25,7 @@ export default function generateCommonCxxModules( return { [path.join(jsPath, 'ReactNativeFeatureFlags.js')]: ReactNativeFeatureFlagsJS(featureFlagDefinitions), - [path.join(jsPath, 'NativeReactNativeFeatureFlags.js')]: + [path.join(jsPath, 'specs', 'NativeReactNativeFeatureFlags.js')]: NativeReactNativeFeatureFlagsJS(featureFlagDefinitions), [path.join(commonNativeModuleCxxPath, 'NativeReactNativeFeatureFlags.h')]: NativeReactNativeFeatureFlagsH(featureFlagDefinitions), diff --git a/packages/react-native/scripts/featureflags/templates/js/NativeReactNativeFeatureFlags.js-template.js b/packages/react-native/scripts/featureflags/templates/js/NativeReactNativeFeatureFlags.js-template.js index 9c9e557879d..0d6a1ca6451 100644 --- a/packages/react-native/scripts/featureflags/templates/js/NativeReactNativeFeatureFlags.js-template.js +++ b/packages/react-native/scripts/featureflags/templates/js/NativeReactNativeFeatureFlags.js-template.js @@ -26,9 +26,9 @@ export default function (definitions: FeatureFlagDefinitions): string { ${DO_NOT_MODIFY_COMMENT} -import type {TurboModule} from '../../../Libraries/TurboModule/RCTExport'; +import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport'; -import * as TurboModuleRegistry from '../../../Libraries/TurboModule/TurboModuleRegistry'; +import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry'; export interface Spec extends TurboModule { ${Object.entries(definitions.common) diff --git a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlagsBase.js b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlagsBase.js index d7398c5358c..61d8266b955 100644 --- a/packages/react-native/src/private/featureflags/ReactNativeFeatureFlagsBase.js +++ b/packages/react-native/src/private/featureflags/ReactNativeFeatureFlagsBase.js @@ -13,7 +13,7 @@ import type { ReactNativeFeatureFlagsJsOnlyOverrides, } from './ReactNativeFeatureFlags'; -import NativeReactNativeFeatureFlags from './NativeReactNativeFeatureFlags'; +import NativeReactNativeFeatureFlags from './specs/NativeReactNativeFeatureFlags'; const accessedFeatureFlags: Set = new Set(); let overrides: ?ReactNativeFeatureFlagsJsOnlyOverrides; diff --git a/packages/react-native/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js b/packages/react-native/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js index 0b3ea72ec38..0d69a1afc3a 100644 --- a/packages/react-native/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js +++ b/packages/react-native/src/private/featureflags/__tests__/ReactNativeFeatureFlags-test.js @@ -27,7 +27,7 @@ describe('ReactNativeFeatureFlags', () => { }); it('should provide default values for common flags and log an error if the method in the native module is NOT available', () => { - jest.doMock('../NativeReactNativeFeatureFlags', () => ({ + jest.doMock('../specs/NativeReactNativeFeatureFlags', () => ({ __esModule: true, default: {}, })); @@ -44,7 +44,7 @@ describe('ReactNativeFeatureFlags', () => { it('should access and cache common flags from the native module if it is available', () => { const commonTestFlagFn = jest.fn(() => true); - jest.doMock('../NativeReactNativeFeatureFlags', () => ({ + jest.doMock('../specs/NativeReactNativeFeatureFlags', () => ({ __esModule: true, default: { commonTestFlag: commonTestFlagFn, diff --git a/packages/react-native/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js b/packages/react-native/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js new file mode 100644 index 00000000000..156b73aad3d --- /dev/null +++ b/packages/react-native/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js @@ -0,0 +1,45 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @generated SignedSource<> + * @flow strict-local + */ + +/** + * IMPORTANT: Do NOT modify this file directly. + * + * To change the definition of the flags, edit + * packages/react-native/scripts/featureflags/ReactNativeFeatureFlags.config.js. + * + * To regenerate this code, run the following script from the repo root: + * yarn featureflags-update + */ + +import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport'; + +import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry'; + +export interface Spec extends TurboModule { + +commonTestFlag?: () => boolean; + +batchRenderingUpdatesInEventLoop?: () => boolean; + +enableBackgroundExecutor?: () => boolean; + +enableCustomDrawOrderFabric?: () => boolean; + +enableFixForClippedSubviewsCrash?: () => boolean; + +enableMicrotasks?: () => boolean; + +enableMountHooksAndroid?: () => boolean; + +enableSpannableBuildingUnification?: () => boolean; + +inspectorEnableCxxInspectorPackagerConnection?: () => boolean; + +inspectorEnableHermesCDPAgent?: () => boolean; + +inspectorEnableModernCDPRegistry?: () => boolean; + +skipMountHookNotifications?: () => boolean; + +useModernRuntimeScheduler?: () => boolean; +} + +const NativeReactNativeFeatureFlags: ?Spec = TurboModuleRegistry.get( + 'NativeReactNativeFeatureFlagsCxx', +); + +export default NativeReactNativeFeatureFlags; diff --git a/packages/react-native/src/private/webapis/performance/EventCounts.js b/packages/react-native/src/private/webapis/performance/EventCounts.js index 27ece857093..682ef555707 100644 --- a/packages/react-native/src/private/webapis/performance/EventCounts.js +++ b/packages/react-native/src/private/webapis/performance/EventCounts.js @@ -8,8 +8,8 @@ * @format */ -import NativePerformanceObserver from './NativePerformanceObserver'; import {warnNoNativePerformanceObserver} from './PerformanceObserver'; +import NativePerformanceObserver from './specs/NativePerformanceObserver'; type EventCountsForEachCallbackType = | (() => void) diff --git a/packages/react-native/src/private/webapis/performance/Performance.js b/packages/react-native/src/private/webapis/performance/Performance.js index 92befaae912..e17230cc893 100644 --- a/packages/react-native/src/private/webapis/performance/Performance.js +++ b/packages/react-native/src/private/webapis/performance/Performance.js @@ -16,8 +16,6 @@ import type {PerformanceEntryList} from './PerformanceObserver'; import warnOnce from '../../../../Libraries/Utilities/warnOnce'; import EventCounts from './EventCounts'; import MemoryInfo from './MemoryInfo'; -import NativePerformance from './NativePerformance'; -import NativePerformanceObserver from './NativePerformanceObserver'; import {ALWAYS_LOGGED_ENTRY_TYPES, PerformanceEntry} from './PerformanceEntry'; import {warnNoNativePerformanceObserver} from './PerformanceObserver'; import { @@ -26,6 +24,8 @@ import { } from './RawPerformanceEntry'; import {RawPerformanceEntryTypeValues} from './RawPerformanceEntry'; import ReactNativeStartupTiming from './ReactNativeStartupTiming'; +import NativePerformance from './specs/NativePerformance'; +import NativePerformanceObserver from './specs/NativePerformanceObserver'; type DetailType = mixed; diff --git a/packages/react-native/src/private/webapis/performance/PerformanceObserver.js b/packages/react-native/src/private/webapis/performance/PerformanceObserver.js index c8caee14662..4a37d3e4f15 100644 --- a/packages/react-native/src/private/webapis/performance/PerformanceObserver.js +++ b/packages/react-native/src/private/webapis/performance/PerformanceObserver.js @@ -11,7 +11,6 @@ import type {HighResTimeStamp, PerformanceEntryType} from './PerformanceEntry'; import warnOnce from '../../../../Libraries/Utilities/warnOnce'; -import NativePerformanceObserver from './NativePerformanceObserver'; import {PerformanceEntry} from './PerformanceEntry'; import PerformanceEventTiming from './PerformanceEventTiming'; import { @@ -19,6 +18,7 @@ import { rawToPerformanceEntry, rawToPerformanceEntryType, } from './RawPerformanceEntry'; +import NativePerformanceObserver from './specs/NativePerformanceObserver'; export type PerformanceEntryList = $ReadOnlyArray; diff --git a/packages/react-native/src/private/webapis/performance/RawPerformanceEntry.js b/packages/react-native/src/private/webapis/performance/RawPerformanceEntry.js index 767a8bdd617..e1ef5a5c2b8 100644 --- a/packages/react-native/src/private/webapis/performance/RawPerformanceEntry.js +++ b/packages/react-native/src/private/webapis/performance/RawPerformanceEntry.js @@ -8,11 +8,11 @@ * @flow strict */ +import type {PerformanceEntryType} from './PerformanceEntry'; import type { RawPerformanceEntry, RawPerformanceEntryType, -} from './NativePerformanceObserver'; -import type {PerformanceEntryType} from './PerformanceEntry'; +} from './specs/NativePerformanceObserver'; import {PerformanceEntry} from './PerformanceEntry'; import PerformanceEventTiming from './PerformanceEventTiming'; diff --git a/packages/react-native/src/private/webapis/performance/__tests__/EventCounts-test.js b/packages/react-native/src/private/webapis/performance/__tests__/EventCounts-test.js index 7be1b9c1fd8..953349f9fe7 100644 --- a/packages/react-native/src/private/webapis/performance/__tests__/EventCounts-test.js +++ b/packages/react-native/src/private/webapis/performance/__tests__/EventCounts-test.js @@ -12,12 +12,12 @@ import {RawPerformanceEntryTypeValues} from '../RawPerformanceEntry'; // NOTE: Jest mocks of transitive dependencies don't appear to work with // ES6 module imports, therefore forced to use commonjs style imports here. -const NativePerformanceObserver = require('../NativePerformanceObserver'); const Performance = require('../Performance').default; +const NativePerformanceObserver = require('../specs/NativePerformanceObserver'); jest.mock( - '../NativePerformanceObserver', - () => require('../__mocks__/NativePerformanceObserver').default, + '../specs/NativePerformanceObserver', + () => require('../specs/__mocks__/NativePerformanceObserver').default, ); describe('EventCounts', () => { diff --git a/packages/react-native/src/private/webapis/performance/__tests__/Performance-test.js b/packages/react-native/src/private/webapis/performance/__tests__/Performance-test.js index a5e85831ae3..bb637df30d9 100644 --- a/packages/react-native/src/private/webapis/performance/__tests__/Performance-test.js +++ b/packages/react-native/src/private/webapis/performance/__tests__/Performance-test.js @@ -11,13 +11,13 @@ const Performance = require('../Performance').default; jest.mock( - '../NativePerformance', - () => require('../__mocks__/NativePerformance').default, + '../specs/NativePerformance', + () => require('../specs/__mocks__/NativePerformance').default, ); jest.mock( - '../NativePerformanceObserver', - () => require('../__mocks__/NativePerformanceObserver').default, + '../specs/NativePerformanceObserver', + () => require('../specs/__mocks__/NativePerformanceObserver').default, ); describe('Performance', () => { diff --git a/packages/react-native/src/private/webapis/performance/__tests__/PerformanceObserver-test.js b/packages/react-native/src/private/webapis/performance/__tests__/PerformanceObserver-test.js index a6e6a37be9f..cf46dcbfd0e 100644 --- a/packages/react-native/src/private/webapis/performance/__tests__/PerformanceObserver-test.js +++ b/packages/react-native/src/private/webapis/performance/__tests__/PerformanceObserver-test.js @@ -12,12 +12,12 @@ import {RawPerformanceEntryTypeValues} from '../RawPerformanceEntry'; // NOTE: Jest mocks of transitive dependencies don't appear to work with // ES6 module imports, therefore forced to use commonjs style imports here. -const NativePerformanceObserver = require('../NativePerformanceObserver'); const PerformanceObserver = require('../PerformanceObserver').default; +const NativePerformanceObserver = require('../specs/NativePerformanceObserver'); jest.mock( - '../NativePerformanceObserver', - () => require('../__mocks__/NativePerformanceObserver').default, + '../specs/NativePerformanceObserver', + () => require('../specs/__mocks__/NativePerformanceObserver').default, ); describe('PerformanceObserver', () => { diff --git a/packages/react-native/src/private/webapis/performance/BoundedConsumableBuffer.h b/packages/react-native/src/private/webapis/performance/specs/BoundedConsumableBuffer.h similarity index 100% rename from packages/react-native/src/private/webapis/performance/BoundedConsumableBuffer.h rename to packages/react-native/src/private/webapis/performance/specs/BoundedConsumableBuffer.h diff --git a/packages/react-native/src/private/webapis/performance/NativePerformance.cpp b/packages/react-native/src/private/webapis/performance/specs/NativePerformance.cpp similarity index 100% rename from packages/react-native/src/private/webapis/performance/NativePerformance.cpp rename to packages/react-native/src/private/webapis/performance/specs/NativePerformance.cpp diff --git a/packages/react-native/src/private/webapis/performance/NativePerformance.h b/packages/react-native/src/private/webapis/performance/specs/NativePerformance.h similarity index 100% rename from packages/react-native/src/private/webapis/performance/NativePerformance.h rename to packages/react-native/src/private/webapis/performance/specs/NativePerformance.h diff --git a/packages/react-native/src/private/webapis/performance/NativePerformance.js b/packages/react-native/src/private/webapis/performance/specs/NativePerformance.js similarity index 81% rename from packages/react-native/src/private/webapis/performance/NativePerformance.js rename to packages/react-native/src/private/webapis/performance/specs/NativePerformance.js index ac8d410af92..beebbcc6558 100644 --- a/packages/react-native/src/private/webapis/performance/NativePerformance.js +++ b/packages/react-native/src/private/webapis/performance/specs/NativePerformance.js @@ -8,9 +8,9 @@ * @format */ -import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport'; +import type {TurboModule} from '../../../../../Libraries/TurboModule/RCTExport'; -import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry'; +import * as TurboModuleRegistry from '../../../../../Libraries/TurboModule/TurboModuleRegistry'; export type NativeMemoryInfo = {[key: string]: ?number}; diff --git a/packages/react-native/src/private/webapis/performance/NativePerformanceObserver.cpp b/packages/react-native/src/private/webapis/performance/specs/NativePerformanceObserver.cpp similarity index 100% rename from packages/react-native/src/private/webapis/performance/NativePerformanceObserver.cpp rename to packages/react-native/src/private/webapis/performance/specs/NativePerformanceObserver.cpp diff --git a/packages/react-native/src/private/webapis/performance/NativePerformanceObserver.h b/packages/react-native/src/private/webapis/performance/specs/NativePerformanceObserver.h similarity index 100% rename from packages/react-native/src/private/webapis/performance/NativePerformanceObserver.h rename to packages/react-native/src/private/webapis/performance/specs/NativePerformanceObserver.h diff --git a/packages/react-native/src/private/webapis/performance/NativePerformanceObserver.js b/packages/react-native/src/private/webapis/performance/specs/NativePerformanceObserver.js similarity index 90% rename from packages/react-native/src/private/webapis/performance/NativePerformanceObserver.js rename to packages/react-native/src/private/webapis/performance/specs/NativePerformanceObserver.js index 3881872fcca..af2e2c3a68c 100644 --- a/packages/react-native/src/private/webapis/performance/NativePerformanceObserver.js +++ b/packages/react-native/src/private/webapis/performance/specs/NativePerformanceObserver.js @@ -8,9 +8,9 @@ * @format */ -import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport'; +import type {TurboModule} from '../../../../../Libraries/TurboModule/RCTExport'; -import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry'; +import * as TurboModuleRegistry from '../../../../../Libraries/TurboModule/TurboModuleRegistry'; export type RawPerformanceEntryType = number; diff --git a/packages/react-native/src/private/webapis/performance/PerformanceEntryReporter.cpp b/packages/react-native/src/private/webapis/performance/specs/PerformanceEntryReporter.cpp similarity index 100% rename from packages/react-native/src/private/webapis/performance/PerformanceEntryReporter.cpp rename to packages/react-native/src/private/webapis/performance/specs/PerformanceEntryReporter.cpp diff --git a/packages/react-native/src/private/webapis/performance/PerformanceEntryReporter.h b/packages/react-native/src/private/webapis/performance/specs/PerformanceEntryReporter.h similarity index 100% rename from packages/react-native/src/private/webapis/performance/PerformanceEntryReporter.h rename to packages/react-native/src/private/webapis/performance/specs/PerformanceEntryReporter.h diff --git a/packages/react-native/src/private/webapis/performance/__mocks__/NativePerformance.js b/packages/react-native/src/private/webapis/performance/specs/__mocks__/NativePerformance.js similarity index 95% rename from packages/react-native/src/private/webapis/performance/__mocks__/NativePerformance.js rename to packages/react-native/src/private/webapis/performance/specs/__mocks__/NativePerformance.js index ee5eed6e6b0..b1e7072584f 100644 --- a/packages/react-native/src/private/webapis/performance/__mocks__/NativePerformance.js +++ b/packages/react-native/src/private/webapis/performance/specs/__mocks__/NativePerformance.js @@ -14,8 +14,8 @@ import type { Spec as NativePerformance, } from '../NativePerformance'; +import {RawPerformanceEntryTypeValues} from '../../RawPerformanceEntry'; import NativePerformanceObserver from '../NativePerformanceObserver'; -import {RawPerformanceEntryTypeValues} from '../RawPerformanceEntry'; const marks: Map = new Map(); diff --git a/packages/react-native/src/private/webapis/performance/__mocks__/NativePerformanceObserver.js b/packages/react-native/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js similarity index 97% rename from packages/react-native/src/private/webapis/performance/__mocks__/NativePerformanceObserver.js rename to packages/react-native/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js index dd0fd1acb7f..9e71ab98692 100644 --- a/packages/react-native/src/private/webapis/performance/__mocks__/NativePerformanceObserver.js +++ b/packages/react-native/src/private/webapis/performance/specs/__mocks__/NativePerformanceObserver.js @@ -15,7 +15,7 @@ import type { Spec as NativePerformanceObserver, } from '../NativePerformanceObserver'; -import {RawPerformanceEntryTypeValues} from '../RawPerformanceEntry'; +import {RawPerformanceEntryTypeValues} from '../../RawPerformanceEntry'; const reportingType: Set = new Set(); const isAlwaysLogged: Set = new Set(); diff --git a/packages/react-native/src/private/webapis/performance/__tests__/BoundedConsumableBufferTest.cpp b/packages/react-native/src/private/webapis/performance/specs/__tests__/BoundedConsumableBufferTest.cpp similarity index 100% rename from packages/react-native/src/private/webapis/performance/__tests__/BoundedConsumableBufferTest.cpp rename to packages/react-native/src/private/webapis/performance/specs/__tests__/BoundedConsumableBufferTest.cpp diff --git a/packages/react-native/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js b/packages/react-native/src/private/webapis/performance/specs/__tests__/NativePerformanceMock-test.js similarity index 96% rename from packages/react-native/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js rename to packages/react-native/src/private/webapis/performance/specs/__tests__/NativePerformanceMock-test.js index 679dad39dfc..1d700ce9e5f 100644 --- a/packages/react-native/src/private/webapis/performance/__tests__/NativePerformanceMock-test.js +++ b/packages/react-native/src/private/webapis/performance/specs/__tests__/NativePerformanceMock-test.js @@ -9,7 +9,7 @@ */ const NativePerformanceMock = require('../__mocks__/NativePerformance').default; -const PerformanceObserver = require('../PerformanceObserver').default; +const PerformanceObserver = require('../../PerformanceObserver').default; describe('NativePerformanceMock', () => { jest.mock( diff --git a/packages/react-native/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js b/packages/react-native/src/private/webapis/performance/specs/__tests__/NativePerformanceObserverMock-test.js similarity index 97% rename from packages/react-native/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js rename to packages/react-native/src/private/webapis/performance/specs/__tests__/NativePerformanceObserverMock-test.js index a4d8a575d74..7b5c62a362a 100644 --- a/packages/react-native/src/private/webapis/performance/__tests__/NativePerformanceObserverMock-test.js +++ b/packages/react-native/src/private/webapis/performance/specs/__tests__/NativePerformanceObserverMock-test.js @@ -9,7 +9,7 @@ */ import NativePerformanceObserverMock from '../__mocks__/NativePerformanceObserver'; -import {RawPerformanceEntryTypeValues} from '../RawPerformanceEntry'; +import {RawPerformanceEntryTypeValues} from '../../RawPerformanceEntry'; describe('NativePerformanceObserver', () => { it('correctly starts and stops listening to entries in a nominal scenario', async () => { diff --git a/packages/react-native/src/private/webapis/performance/__tests__/PerformanceEntryReporterTest.cpp b/packages/react-native/src/private/webapis/performance/specs/__tests__/PerformanceEntryReporterTest.cpp similarity index 100% rename from packages/react-native/src/private/webapis/performance/__tests__/PerformanceEntryReporterTest.cpp rename to packages/react-native/src/private/webapis/performance/specs/__tests__/PerformanceEntryReporterTest.cpp