Limit perf entry buffer size and send back 'droppedEntriesCount' to PerformanceObserver callback

Summary:
Prevents scenarios when internal performance buffer may grow indefinitely (e.g. due to a broken logging), communicating back to `PerformanceObserver` the corresponding amount of dropped entries, `droppedEntriesCount`, [according to the standard](https://w3c.github.io/performance-timeline/#dom-performanceobservercallbackoptions-droppedentriescount).

NOTE: The backwards compatibility check is failing, which is an orthogonal issue. I am looking into it and won't land this one before it is sorted.

Changelog: [Internal]

Reviewed By: christophpurrer

Differential Revision: D42008409

fbshipit-source-id: 40d30e44d39e643bfb58a6254572823cb2b3b8df
This commit is contained in:
Ruslan Shestopalyuk
2022-12-16 11:45:06 -08:00
committed by Facebook GitHub Bot
parent 70a1e2b053
commit d09c5fd7a9
6 changed files with 62 additions and 22 deletions
@@ -31,10 +31,15 @@ export type RawPerformanceEntry = {|
interactionId?: number,
|};
export type GetPendingEntriesResult = {|
entries: $ReadOnlyArray<RawPerformanceEntry>,
droppedEntriesCount: number,
|};
export interface Spec extends TurboModule {
+startReporting: (entryType: string) => void;
+stopReporting: (entryType: string) => void;
+popPendingEntries: () => $ReadOnlyArray<RawPerformanceEntry>;
+popPendingEntries: () => GetPendingEntriesResult;
+setOnPerformanceEntryCallback: (callback?: () => void) => void;
}