Skip to content
This repository was archived by the owner on Jan 30, 2025. It is now read-only.

Commit bce2f54

Browse files
committed
Improve frame session logs
1 parent 8c7fc3b commit bce2f54

File tree

1 file changed

+41
-33
lines changed

1 file changed

+41
-33
lines changed

common/frame_session.go

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -243,11 +243,11 @@ func (fs *FrameSession) initEvents() {
243243
for {
244244
select {
245245
case <-fs.session.done:
246-
fs.logger.Debugf("NewFrameSession:initEvents:go:session.done",
246+
fs.logger.Debugf("FrameSession:initEvents:go:session.done",
247247
"sid:%v tid:%v", fs.session.id, fs.targetID)
248248
return
249249
case <-fs.ctx.Done():
250-
fs.logger.Debugf("NewFrameSession:initEvents:go:ctx.Done",
250+
fs.logger.Debugf("FrameSession:initEvents:go:ctx.Done",
251251
"sid:%v tid:%v", fs.session.id, fs.targetID)
252252

253253
return
@@ -285,12 +285,8 @@ func (fs *FrameSession) initEvents() {
285285
case *runtime.EventExecutionContextsCleared:
286286
fs.onExecutionContextsCleared()
287287
case *target.EventAttachedToTarget:
288-
// handle target attachment in a new goroutine
289-
// so that other frame events won't go stale.
290288
fs.onAttachedToTarget(ev)
291289
case *target.EventDetachedFromTarget:
292-
// handle target detachment in a new goroutine
293-
// so that other frame events won't go stale.
294290
fs.onDetachedFromTarget(ev)
295291
}
296292
}
@@ -476,7 +472,7 @@ func (fs *FrameSession) isMainFrame() bool {
476472
}
477473

478474
func (fs *FrameSession) handleFrameTree(frameTree *cdppage.FrameTree) {
479-
fs.logger.Debugf("NewFrameSession:handleFrameTree",
475+
fs.logger.Debugf("FrameSession:handleFrameTree",
480476
"sid:%v tid:%v", fs.session.id, fs.targetID)
481477

482478
if frameTree.Frame.ParentID != "" {
@@ -492,7 +488,7 @@ func (fs *FrameSession) handleFrameTree(frameTree *cdppage.FrameTree) {
492488
}
493489

494490
func (fs *FrameSession) navigateFrame(frame *Frame, url, referrer string) (string, error) {
495-
fs.logger.Debugf("NewFrameSession:navigateFrame",
491+
fs.logger.Debugf("FrameSession:navigateFrame",
496492
"sid:%v tid:%v url:%q referrer:%q",
497493
fs.session.id, fs.targetID, url, referrer)
498494

@@ -541,7 +537,7 @@ func (fs *FrameSession) onExceptionThrown(event *runtime.EventExceptionThrown) {
541537
}
542538

543539
func (fs *FrameSession) onExecutionContextCreated(event *runtime.EventExecutionContextCreated) {
544-
fs.logger.Debugf("NewFrameSession:onExecutionContextCreated",
540+
fs.logger.Debugf("FrameSession:onExecutionContextCreated",
545541
"sid:%v tid:%v ectxid:%d",
546542
fs.session.id, fs.targetID, event.Context.ID)
547543

@@ -579,7 +575,7 @@ func (fs *FrameSession) onExecutionContextCreated(event *runtime.EventExecutionC
579575
}
580576

581577
func (fs *FrameSession) onExecutionContextDestroyed(execCtxID runtime.ExecutionContextID) {
582-
fs.logger.Debugf("NewFrameSession:onExecutionContextDestroyed",
578+
fs.logger.Debugf("FrameSession:onExecutionContextDestroyed",
583579
"sid:%v tid:%v ectxid:%d",
584580
fs.session.id, fs.targetID, execCtxID)
585581

@@ -596,7 +592,7 @@ func (fs *FrameSession) onExecutionContextDestroyed(execCtxID runtime.ExecutionC
596592
}
597593

598594
func (fs *FrameSession) onExecutionContextsCleared() {
599-
fs.logger.Debugf("NewFrameSession:onExecutionContextsCleared",
595+
fs.logger.Debugf("FrameSession:onExecutionContextsCleared",
600596
"sid:%v tid:%v", fs.session.id, fs.targetID)
601597

602598
fs.contextIDToContextMu.Lock()
@@ -613,7 +609,7 @@ func (fs *FrameSession) onExecutionContextsCleared() {
613609
}
614610

615611
func (fs *FrameSession) onFrameAttached(frameID cdp.FrameID, parentFrameID cdp.FrameID) {
616-
fs.logger.Debugf("NewFrameSession:onFrameAttached",
612+
fs.logger.Debugf("FrameSession:onFrameAttached",
617613
"sid:%v tid:%v fid:%v pfid:%v",
618614
fs.session.id, fs.targetID, frameID, parentFrameID)
619615

@@ -622,15 +618,15 @@ func (fs *FrameSession) onFrameAttached(frameID cdp.FrameID, parentFrameID cdp.F
622618
}
623619

624620
func (fs *FrameSession) onFrameDetached(frameID cdp.FrameID, reason cdppage.FrameDetachedReason) {
625-
fs.logger.Debugf("NewFrameSession:onFrameDetached",
621+
fs.logger.Debugf("FrameSession:onFrameDetached",
626622
"sid:%v tid:%v fid:%v reason:%s",
627623
fs.session.id, fs.targetID, frameID, reason)
628624

629625
fs.manager.frameDetached(frameID)
630626
}
631627

632628
func (fs *FrameSession) onFrameNavigated(frame *cdp.Frame, initial bool) {
633-
fs.logger.Debugf("NewFrameSession:onFrameNavigated",
629+
fs.logger.Debugf("FrameSession:onFrameNavigated",
634630
"sid:%v tid:%v fid:%v",
635631
fs.session.id, fs.targetID, frame.ID)
636632

@@ -641,7 +637,7 @@ func (fs *FrameSession) onFrameNavigated(frame *cdp.Frame, initial bool) {
641637
}
642638

643639
func (fs *FrameSession) onFrameRequestedNavigation(event *cdppage.EventFrameRequestedNavigation) {
644-
fs.logger.Debugf("NewFrameSession:onFrameRequestedNavigation",
640+
fs.logger.Debugf("FrameSession:onFrameRequestedNavigation",
645641
"sid:%v tid:%v fid:%v url:%q",
646642
fs.session.id, fs.targetID, event.FrameID, event.URL)
647643

@@ -654,15 +650,15 @@ func (fs *FrameSession) onFrameRequestedNavigation(event *cdppage.EventFrameRequ
654650
}
655651

656652
func (fs *FrameSession) onFrameStartedLoading(frameID cdp.FrameID) {
657-
fs.logger.Debugf("NewFrameSession:onFrameStartedLoading",
653+
fs.logger.Debugf("FrameSession:onFrameStartedLoading",
658654
"sid:%v tid:%v fid:%v",
659655
fs.session.id, fs.targetID, frameID)
660656

661657
fs.manager.frameLoadingStarted(frameID)
662658
}
663659

664660
func (fs *FrameSession) onFrameStoppedLoading(frameID cdp.FrameID) {
665-
fs.logger.Debugf("NewFrameSession:onFrameStoppedLoading",
661+
fs.logger.Debugf("FrameSession:onFrameStoppedLoading",
666662
"sid:%v tid:%v fid:%v",
667663
fs.session.id, fs.targetID, frameID)
668664

@@ -692,7 +688,7 @@ func (fs *FrameSession) onLogEntryAdded(event *log.EventEntryAdded) {
692688
}
693689

694690
func (fs *FrameSession) onPageLifecycle(event *cdppage.EventLifecycleEvent) {
695-
fs.logger.Debugf("NewFrameSession:onPageLifecycle",
691+
fs.logger.Debugf("FrameSession:onPageLifecycle",
696692
"sid:%v tid:%v fid:%v event:%q",
697693
fs.session.id, fs.targetID, event.FrameID, event.Name)
698694

@@ -773,7 +769,7 @@ func (fs *FrameSession) onPageLifecycle(event *cdppage.EventLifecycleEvent) {
773769
}
774770

775771
func (fs *FrameSession) onPageNavigatedWithinDocument(event *cdppage.EventNavigatedWithinDocument) {
776-
fs.logger.Debugf("NewFrameSession:onPageNavigatedWithinDocument",
772+
fs.logger.Debugf("FrameSession:onPageNavigatedWithinDocument",
777773
"sid:%v tid:%v fid:%v",
778774
fs.session.id, fs.targetID, event.FrameID)
779775

@@ -787,7 +783,7 @@ func (fs *FrameSession) onAttachedToTarget(event *target.EventAttachedToTarget)
787783
err error
788784
)
789785

790-
fs.logger.Debugf("NewFrameSession:onAttachedToTarget",
786+
fs.logger.Debugf("FrameSession:onAttachedToTarget",
791787
"sid:%v tid:%v esid:%v etid:%v ebctxid:%v type:%q",
792788
fs.session.id, fs.targetID, event.SessionID,
793789
event.TargetInfo.TargetID, event.TargetInfo.BrowserContextID,
@@ -819,32 +815,40 @@ func (fs *FrameSession) onAttachedToTarget(event *target.EventAttachedToTarget)
819815
return
820816
}
821817
// Handle or ignore errors.
822-
defer fs.logger.Debugf("FrameSession:onAttachedToTarget:return",
823-
"sid:%v tid:%v esid:%v etid:%v ebctxid:%v type:%q err:%v",
824-
fs.session.id, fs.targetID, sid,
825-
ti.TargetID, ti.BrowserContextID,
826-
ti.Type, err)
818+
var reason string
819+
defer func() {
820+
fs.logger.Debugf("FrameSession:onAttachedToTarget:return",
821+
"sid:%v tid:%v esid:%v etid:%v ebctxid:%v type:%q reason:%s",
822+
fs.session.id, fs.targetID, sid,
823+
ti.TargetID, ti.BrowserContextID,
824+
ti.Type, reason)
825+
}()
827826
// Ignore errors if we're no longer connected to browser.
828827
// This happens when there is no browser but we still want to
829828
// attach a frame/worker to it.
830829
if !fs.page.browserCtx.browser.IsConnected() {
831-
return // ignore
832-
}
833-
// Ignore context canceled error to gracefuly handle shutting down
834-
// of the extension. This may happen because of generated events
835-
// while a frame session is being created.
836-
if errors.Is(err, context.Canceled) {
830+
reason = "browser disconnected"
837831
return // ignore
838832
}
839833
// Final chance:
840834
// Ignore the error if the context was canceled, otherwise,
841835
// throw a k6 error.
842836
select {
843837
case <-fs.ctx.Done():
838+
reason = "frame session context canceled"
844839
return
845840
case <-session.done:
841+
reason = "session closed"
846842
return
847843
default:
844+
// Ignore context canceled error to gracefuly handle shutting down
845+
// of the extension. This may happen because of generated events
846+
// while a frame session is being created.
847+
if errors.Is(err, context.Canceled) {
848+
reason = "context canceled"
849+
return // ignore
850+
}
851+
reason = "fatal"
848852
k6Throw(fs.ctx, "cannot attach %v: %w", ti.Type, err)
849853
}
850854
}
@@ -855,6 +859,10 @@ func (fs *FrameSession) attachIFrameToTarget(ti *target.Info, sid target.Session
855859
if fr == nil {
856860
// IFrame should be attached to fs.page with EventFrameAttached
857861
// event before.
862+
fs.logger.Debugf("FrameSession:attachIFrameToTarget:return",
863+
"sid:%v tid:%v esid:%v etid:%v ebctxid:%v type:%q, nil frame",
864+
fs.session.id, fs.targetID,
865+
sid, ti.TargetID, ti.BrowserContextID, ti.Type)
858866
return nil
859867
}
860868
// Remove all children of the previously attached frame.
@@ -887,15 +895,15 @@ func (fs *FrameSession) attachWorkerToTarget(ti *target.Info, sid target.Session
887895
}
888896

889897
func (fs *FrameSession) onDetachedFromTarget(event *target.EventDetachedFromTarget) {
890-
fs.logger.Debugf("NewFrameSession:onDetachedFromTarget",
898+
fs.logger.Debugf("FrameSession:onDetachedFromTarget",
891899
"sid:%v tid:%v esid:%v",
892900
fs.session.id, fs.targetID, event.SessionID)
893901

894902
fs.page.closeWorker(event.SessionID)
895903
}
896904

897905
func (fs *FrameSession) onTargetCrashed(event *inspector.EventTargetCrashed) {
898-
fs.logger.Debugf("NewFrameSession:onTargetCrashed", "sid:%v tid:%v", fs.session.id, fs.targetID)
906+
fs.logger.Debugf("FrameSession:onTargetCrashed", "sid:%v tid:%v", fs.session.id, fs.targetID)
899907

900908
fs.session.markAsCrashed()
901909
fs.page.didCrash()

0 commit comments

Comments
 (0)