From 7b465daa50ea20235c2a3a3d8d09d9b3a365309a Mon Sep 17 00:00:00 2001 From: Vitali Zaidman Date: Thu, 28 Aug 2025 10:59:37 +0100 Subject: [PATCH] track clicks on script links --- front_end/core/host/RNPerfMetrics.ts | 20 +++++++++++++++++-- .../ui/legacy/components/utils/Linkifier.ts | 1 + 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/front_end/core/host/RNPerfMetrics.ts b/front_end/core/host/RNPerfMetrics.ts index b8b6b8affa1..0e0bc44cd73 100644 --- a/front_end/core/host/RNPerfMetrics.ts +++ b/front_end/core/host/RNPerfMetrics.ts @@ -302,7 +302,16 @@ class RNPerfMetrics { this.sendEvent({ eventName: 'ManualBreakpointSetSucceeded', params: { - bpSettingDuration + bpSettingDuration, + } + }); + } + + stackTraceFrameClicked(isLinkified: boolean): void { + this.sendEvent({ + eventName: 'StackTraceFrameClicked', + params: { + isLinkified, } }); } @@ -498,6 +507,13 @@ export type StackTraceFrameUrlResolutionFailed = Readonly<{ }>, }>; +export type StackTraceFrameClicked = Readonly<{ + eventName: 'StackTraceFrameClicked', + params: Readonly<{ + isLinkified: boolean, + }>, +}>; + export type ManualBreakpointSetSucceeded = Readonly<{ eventName: 'ManualBreakpointSetSucceeded', params: Readonly<{ @@ -511,6 +527,6 @@ export type ReactNativeChromeDevToolsEvent = DeveloperResourceLoadingFinishedEvent|FuseboxSetClientMetadataStartedEvent|FuseboxSetClientMetadataFinishedEvent| MemoryPanelActionStartedEvent|MemoryPanelActionFinishedEvent|PanelShownEvent|PanelClosedEvent| StackTraceSymbolicationSucceeded|StackTraceSymbolicationFailed|StackTraceFrameUrlResolutionSucceeded| - StackTraceFrameUrlResolutionFailed|ManualBreakpointSetSucceeded; + StackTraceFrameUrlResolutionFailed|ManualBreakpointSetSucceeded|StackTraceFrameClicked; export type DecoratedReactNativeChromeDevToolsEvent = CommonEventFields&ReactNativeChromeDevToolsEvent; diff --git a/front_end/ui/legacy/components/utils/Linkifier.ts b/front_end/ui/legacy/components/utils/Linkifier.ts index 53a2567e480..660aa2f4650 100644 --- a/front_end/ui/legacy/components/utils/Linkifier.ts +++ b/front_end/ui/legacy/components/utils/Linkifier.ts @@ -665,6 +665,7 @@ export class Linkifier extends Common.ObjectWrapper.ObjectWrapper im infoByAnchor.set(link, linkInfo); if (!preventClick) { link.addEventListener('click', event => { + Host.rnPerfMetrics.stackTraceFrameClicked(linkInfo.liveLocation !== null); if (Linkifier.handleClick(event)) { event.consume(true); }