Skip to content

Commit 4bec977

Browse files
committed
report when all initial resources are loaded
1 parent 1e19c44 commit 4bec977

2 files changed

Lines changed: 30 additions & 4 deletions

File tree

front_end/core/host/RNPerfMetrics.ts

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,15 @@ class RNPerfMetrics {
186186
});
187187
}
188188

189+
allInitialDeveloperResourcesLoadingFinished(count: number): void {
190+
this.sendEvent({
191+
eventName: 'DeveloperResource.AllInitialLoadingFinished',
192+
params: {
193+
count,
194+
},
195+
});
196+
}
197+
189198
fuseboxSetClientMetadataStarted(): void {
190199
this.sendEvent({eventName: 'FuseboxSetClientMetadataStarted'});
191200
}
@@ -417,6 +426,13 @@ export type DeveloperResourceLoadingFinishedEvent = Readonly<{
417426
}>,
418427
}>;
419428

429+
export type AllInitialDeveloperResourcesLoadingFinished = Readonly<{
430+
eventName: 'DeveloperResource.AllInitialLoadingFinished',
431+
params: Readonly<{
432+
count: number,
433+
}>,
434+
}>;
435+
420436
export type FuseboxSetClientMetadataStartedEvent = Readonly<{
421437
eventName: 'FuseboxSetClientMetadataStarted',
422438
}>;
@@ -492,9 +508,9 @@ export type StackTraceFrameUrlResolutionFailed = Readonly<{
492508
export type ReactNativeChromeDevToolsEvent =
493509
EntrypointLoadingStartedEvent|EntrypointLoadingFinishedEvent|DebuggerReadyEvent|BrowserVisibilityChangeEvent|
494510
BrowserErrorEvent|RemoteDebuggingTerminatedEvent|DeveloperResourceLoadingStartedEvent|
495-
DeveloperResourceLoadingFinishedEvent|FuseboxSetClientMetadataStartedEvent|FuseboxSetClientMetadataFinishedEvent|
496-
MemoryPanelActionStartedEvent|MemoryPanelActionFinishedEvent|PanelShownEvent|PanelClosedEvent|
497-
StackTraceSymbolicationSucceeded|StackTraceSymbolicationFailed|StackTraceFrameUrlResolutionSucceeded|
498-
StackTraceFrameUrlResolutionFailed;
511+
DeveloperResourceLoadingFinishedEvent|AllInitialDeveloperResourcesLoadingFinished|FuseboxSetClientMetadataStartedEvent|
512+
FuseboxSetClientMetadataFinishedEvent|MemoryPanelActionStartedEvent|MemoryPanelActionFinishedEvent|
513+
PanelShownEvent|PanelClosedEvent|StackTraceSymbolicationSucceeded|StackTraceSymbolicationFailed|
514+
StackTraceFrameUrlResolutionSucceeded|StackTraceFrameUrlResolutionFailed;
499515

500516
export type DecoratedReactNativeChromeDevToolsEvent = CommonEventFields&ReactNativeChromeDevToolsEvent;

front_end/core/sdk/PageResourceLoader.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ interface LoadQueueEntry {
8282
*/
8383
export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
8484
#currentlyLoading = 0;
85+
#reportedAllInitialResourcesLoaded = false;
8586
#currentlyLoadingPerTarget = new Map<Protocol.Target.TargetID|'main', number>();
8687
readonly #maxConcurrentLoads: number;
8788
#pageResources = new Map<string, PageResource>();
@@ -354,6 +355,15 @@ export class PageResourceLoader extends Common.ObjectWrapper.ObjectWrapper<Event
354355
}
355356
Host.rnPerfMetrics.developerResourceLoadingFinished(
356357
parsedURL, Host.UserMetrics.DeveloperResourceLoaded.FALLBACK_AFTER_FAILURE, result);
358+
359+
// Will be decreased to 0 right after this function in "releaseLoadSlot".
360+
// Tracking it here so it is next to the rest of "rnPerfMetrics" in this file.
361+
const allResourcesLoaded = this.#currentlyLoading === 1;
362+
if (allResourcesLoaded && !this.#reportedAllInitialResourcesLoaded) {
363+
Host.rnPerfMetrics.allInitialDeveloperResourcesLoadingFinished(this.getNumberOfResources().resources);
364+
this.#reportedAllInitialResourcesLoaded = true;
365+
}
366+
357367
return result;
358368
}
359369

0 commit comments

Comments
 (0)