From e5f80982599f8c2b9436d99a74f5c2c12783f183 Mon Sep 17 00:00:00 2001 From: ankur22 Date: Fri, 24 May 2024 10:41:31 +0100 Subject: [PATCH] Add initialFrame parameter to handleFrameTree The only reason we have initialFrame flag is to use in logging, so it's not an important thing to factor in for the runtime, but it may help in debugging issues. Rather than remove it, I've changed it so any mainframe is regarded as the initialFrame. --- common/frame_session.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/common/frame_session.go b/common/frame_session.go index 48feb1e6f..b847fd502 100644 --- a/common/frame_session.go +++ b/common/frame_session.go @@ -406,7 +406,8 @@ func (fs *FrameSession) initFrameTree() error { return fmt.Errorf("got a nil page frame tree") } - fs.handleFrameTree(frameTree) + // Any new frame may have a child frame, not just mainframes. + fs.handleFrameTree(frameTree, fs.isMainFrame()) if fs.isMainFrame() { fs.initRendererEvents() @@ -578,19 +579,19 @@ func (fs *FrameSession) isMainFrame() bool { return fs.targetID == fs.page.targetID } -func (fs *FrameSession) handleFrameTree(frameTree *cdppage.FrameTree) { +func (fs *FrameSession) handleFrameTree(frameTree *cdppage.FrameTree, initialFrame bool) { fs.logger.Debugf("FrameSession:handleFrameTree", - "sid:%v tid:%v", fs.session.ID(), fs.targetID) + "fid:%v sid:%v tid:%v", frameTree.Frame.ID, fs.session.ID(), fs.targetID) if frameTree.Frame.ParentID != "" { fs.onFrameAttached(frameTree.Frame.ID, frameTree.Frame.ParentID) } - fs.onFrameNavigated(frameTree.Frame, true) + fs.onFrameNavigated(frameTree.Frame, initialFrame) if frameTree.ChildFrames == nil { return } for _, child := range frameTree.ChildFrames { - fs.handleFrameTree(child) + fs.handleFrameTree(child, initialFrame) } }