Skip to content

Commit e7260f7

Browse files
committed
refactor perf; move calls to top
1 parent f547f91 commit e7260f7

File tree

3 files changed

+24
-18
lines changed

3 files changed

+24
-18
lines changed

front_end/core/host/RNPerfMetrics.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,17 @@ class RNPerfMetrics {
5353
}
5454
}
5555

56+
registerPerfMetricsGlobalPostMessageHandler(): void {
57+
if (globalThis.enableReactNativePerfMetrics !== true ||
58+
globalThis.enableReactNativePerfMetricsGlobalPostMessage !== true) {
59+
return;
60+
}
61+
62+
this.addEventListener(event => {
63+
window.postMessage({event, tag: 'react-native-chrome-devtools-perf-metrics'}, window.location.origin);
64+
});
65+
}
66+
5667
setLaunchId(launchId: string|null): void {
5768
this.#launchId = launchId;
5869
}
@@ -80,17 +91,6 @@ function getPerfTimestamp(): DOMHighResTimeStamp {
8091
return performance.timeOrigin + performance.now();
8192
}
8293

83-
export function registerPerfMetricsGlobalPostMessageHandler(): void {
84-
if (globalThis.enableReactNativePerfMetrics !== true ||
85-
globalThis.enableReactNativePerfMetricsGlobalPostMessage !== true) {
86-
return;
87-
}
88-
89-
getInstance().addEventListener(event => {
90-
window.postMessage({event, tag: 'react-native-chrome-devtools-perf-metrics'}, window.location.origin);
91-
});
92-
}
93-
9494
type CommonEventFields = Readonly<{
9595
timestamp: DOMHighResTimeStamp,
9696
launchId: string | void | null,

front_end/entrypoints/rn_fusebox/rn_fusebox.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,14 @@ import type * as Platform from '../../core/platform/platform.js';
2626
import type * as Sources from '../../panels/sources/sources.js';
2727
import * as RNExperiments from '../../core/rn_experiments/rn_experiments.js';
2828

29+
/*
30+
* To ensure accurate timing measurements,
31+
* please make sure these perf metrics lines are called ahead of everything else
32+
*/
33+
Host.rnPerfMetrics.registerPerfMetricsGlobalPostMessageHandler();
34+
Host.rnPerfMetrics.setLaunchId(Root.Runtime.Runtime.queryParam('launchId'));
35+
Host.rnPerfMetrics.entryPointLoadingStarted('rn_fusebox');
36+
2937
const UIStrings = {
3038
/**
3139
*@description Title of the 'React Native' tool in the Network Navigator View, which is part of the Sources tool
@@ -66,11 +74,6 @@ RNExperiments.RNExperimentsImpl.Instance.enableExperimentsByDefault([
6674
Root.Runtime.ExperimentName.REACT_NATIVE_SPECIFIC_UI,
6775
]);
6876

69-
Host.RNPerfMetrics.registerPerfMetricsGlobalPostMessageHandler();
70-
71-
Host.rnPerfMetrics.setLaunchId(Root.Runtime.Runtime.queryParam('launchId'));
72-
Host.rnPerfMetrics.entryPointLoadingStarted('rn_fusebox');
73-
7477
class FuseboxClientMetadataModel extends SDK.SDKModel.SDKModel<void> {
7578
constructor(target: SDK.Target.Target) {
7679
super(target);

front_end/entrypoints/rn_inspector/rn_inspector.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,11 @@ import type * as Sources from '../../panels/sources/sources.js';
2323
import * as RNExperiments from '../../core/rn_experiments/rn_experiments.js';
2424
import * as Host from '../../core/host/host.js';
2525

26-
Host.RNPerfMetrics.registerPerfMetricsGlobalPostMessageHandler();
27-
26+
/*
27+
* To ensure accurate timing measurements,
28+
* please make sure these perf metrics lines are called ahead of everything else
29+
*/
30+
Host.rnPerfMetrics.registerPerfMetricsGlobalPostMessageHandler();
2831
Host.rnPerfMetrics.setLaunchId(Root.Runtime.Runtime.queryParam('launchId'));
2932
Host.rnPerfMetrics.entryPointLoadingStarted('rn_inspector');
3033

0 commit comments

Comments
 (0)