mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
cf194aebfe
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/36152 [Changelog][Internal] By [the W3C standard](https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver/observe), `PerformanceObserver.observer` can optionally take a `durationThreshold` option, so that only entries with duration larger than the threshold are reported. This diff adds support for this on the RN side, as well as unit tests for this feature on the JS side. NOTE: The standard suggests that default value for this is 104s. I left it at 0 for now, as for the RN use cases t may be to too high (needs discussion). Reviewed By: rubennorte Differential Revision: D43154319 fbshipit-source-id: 0f9d435506f48d8e8521e408211347e8391d22fc
49 lines
1.4 KiB
JavaScript
49 lines
1.4 KiB
JavaScript
/**
|
|
* 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.
|
|
*
|
|
* @flow strict
|
|
* @format
|
|
*/
|
|
|
|
import type {TurboModule} from '../TurboModule/RCTExport';
|
|
|
|
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
|
|
|
|
export type RawPerformanceEntryType = number;
|
|
|
|
export type RawPerformanceEntry = {|
|
|
name: string,
|
|
entryType: RawPerformanceEntryType,
|
|
startTime: number,
|
|
duration: number,
|
|
// For "event" entries only:
|
|
processingStart?: number,
|
|
processingEnd?: number,
|
|
interactionId?: number,
|
|
|};
|
|
|
|
export type GetPendingEntriesResult = {|
|
|
entries: $ReadOnlyArray<RawPerformanceEntry>,
|
|
droppedEntriesCount: number,
|
|
|};
|
|
|
|
export interface Spec extends TurboModule {
|
|
+startReporting: (entryType: RawPerformanceEntryType) => void;
|
|
+stopReporting: (entryType: RawPerformanceEntryType) => void;
|
|
+popPendingEntries: () => GetPendingEntriesResult;
|
|
+setOnPerformanceEntryCallback: (callback?: () => void) => void;
|
|
+logRawEntry: (entry: RawPerformanceEntry) => void;
|
|
+getEventCounts: () => $ReadOnlyArray<[string, number]>;
|
|
+setDurationThreshold: (
|
|
entryType: RawPerformanceEntryType,
|
|
durationThreshold: number,
|
|
) => void;
|
|
}
|
|
|
|
export default (TurboModuleRegistry.get<Spec>(
|
|
'NativePerformanceObserverCxx',
|
|
): ?Spec);
|