File tree Expand file tree Collapse file tree 3 files changed +22
-9
lines changed
browser-utils/src/metrics Expand file tree Collapse file tree 3 files changed +22
-9
lines changed Original file line number Diff line number Diff line change @@ -237,13 +237,9 @@ export function listenForWebVitalReportEvents(
237
237
}
238
238
} ) ;
239
239
240
- const activeSpan = getActiveSpan ( ) ;
241
- if ( activeSpan ) {
242
- const rootSpan = getRootSpan ( activeSpan ) ;
243
- const spanJSON = spanToJSON ( rootSpan ) ;
244
- if ( spanJSON . op === 'pageload' ) {
245
- pageloadSpanId = rootSpan . spanContext ( ) . spanId ;
246
- }
247
- }
240
+ const unsubscribeAfterStartPageLoadSpan = client . on ( 'afterStartPageLoadSpan' , span => {
241
+ pageloadSpanId = span . spanContext ( ) . spanId ;
242
+ unsubscribeAfterStartPageLoadSpan ?.( ) ;
243
+ } ) ;
248
244
} , 0 ) ;
249
245
}
Original file line number Diff line number Diff line change @@ -644,7 +644,13 @@ export function startBrowserTracingPageLoadSpan(
644
644
client . emit ( 'startPageLoadSpan' , spanOptions , traceOptions ) ;
645
645
getCurrentScope ( ) . setTransactionName ( spanOptions . name ) ;
646
646
647
- return getActiveIdleSpan ( client ) ;
647
+ const pageloadSpan = getActiveIdleSpan ( client ) ;
648
+
649
+ if ( pageloadSpan ) {
650
+ client . emit ( 'afterStartPageLoadSpan' , pageloadSpan ) ;
651
+ }
652
+
653
+ return pageloadSpan ;
648
654
}
649
655
650
656
/**
Original file line number Diff line number Diff line change @@ -603,6 +603,12 @@ export abstract class Client<O extends ClientOptions = ClientOptions> {
603
603
) => void ,
604
604
) : ( ) => void ;
605
605
606
+ /**
607
+ * A hook for the browser tracing integrations to trigger after the pageload span was started.
608
+ * @returns {() => void } A function that, when executed, removes the registered callback.
609
+ */
610
+ public on ( hook : 'afterStartPageLoadSpan' , callback : ( span : Span ) => void ) : ( ) => void ;
611
+
606
612
/**
607
613
* A hook for triggering right before a navigation span is started.
608
614
* @returns {() => void } A function that, when executed, removes the registered callback.
@@ -791,6 +797,11 @@ export abstract class Client<O extends ClientOptions = ClientOptions> {
791
797
traceOptions ?: { sentryTrace ?: string | undefined ; baggage ?: string | undefined } ,
792
798
) : void ;
793
799
800
+ /**
801
+ * Emit a hook event for browser tracing integrations to trigger aafter the pageload span was started.
802
+ */
803
+ public emit ( hook : 'afterStartPageLoadSpan' , span : Span ) : void ;
804
+
794
805
/**
795
806
* Emit a hook event for triggering right before a navigation span is started.
796
807
*/
You can’t perform that action at this time.
0 commit comments