Skip to content

Commit

Permalink
add visibility change perf metrics event
Browse files Browse the repository at this point in the history
  • Loading branch information
EdmondChuiHW committed May 29, 2024
1 parent bf5ec69 commit 18379f4
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 1 deletion.
18 changes: 17 additions & 1 deletion front_end/core/host/RNPerfMetrics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,15 @@ class RNPerfMetrics {
});
}

browserVisibilityChanged(visibilityState: BrowserVisibilityChangeEvent['params']['visibilityState']): void {
this.sendEvent({
eventName: 'Browser.VisibilityChange',
params: {
visibilityState,
}
});
}

#decorateEvent(event: ReactNativeChromeDevToolsEvent): Readonly<DecoratedReactNativeChromeDevToolsEvent> {
const commonFields: CommonEventFields = {
timestamp: getPerfTimestamp(),
Expand Down Expand Up @@ -121,7 +130,14 @@ export type DebuggerReadyEvent = Readonly<{
eventName: 'Debugger.IsReadyToPause',
}>;

export type BrowserVisibilityChangeEvent = Readonly<{
eventName: 'Browser.VisibilityChange',
params: Readonly<{
visibilityState: 'hidden' | 'visible',
}>,
}>;

export type ReactNativeChromeDevToolsEvent =
EntrypointLoadingStartedEvent|EntrypointLoadingFinishedEvent|DebuggerReadyEvent;
EntrypointLoadingStartedEvent|EntrypointLoadingFinishedEvent|DebuggerReadyEvent|BrowserVisibilityChangeEvent;

export type DecoratedReactNativeChromeDevToolsEvent = CommonEventFields&ReactNativeChromeDevToolsEvent;
4 changes: 4 additions & 0 deletions front_end/entrypoints/rn_fusebox/rn_fusebox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,10 @@ RNExperiments.RNExperimentsImpl.Instance.enableExperimentsByDefault([
Root.Runtime.ExperimentName.REACT_NATIVE_SPECIFIC_UI,
]);

document.addEventListener('visibilitychange', () => {
Host.rnPerfMetrics.browserVisibilityChanged(document.visibilityState);
});

class FuseboxClientMetadataModel extends SDK.SDKModel.SDKModel<void> {
constructor(target: SDK.Target.Target) {
super(target);
Expand Down

0 comments on commit 18379f4

Please sign in to comment.