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

Commit

Permalink
Update frame session to use k6Throw
Browse files Browse the repository at this point in the history
  • Loading branch information
inancgumus committed Nov 12, 2021
1 parent dc8efcf commit ef87493
Showing 1 changed file with 7 additions and 14 deletions.
21 changes: 7 additions & 14 deletions common/frame_session.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ import (
"github.com/chromedp/cdproto/security"
"github.com/chromedp/cdproto/target"
"github.com/grafana/xk6-browser/api"
k6common "go.k6.io/k6/js/common"
k6lib "go.k6.io/k6/lib"
k6stats "go.k6.io/k6/stats"
)
Expand Down Expand Up @@ -402,8 +401,7 @@ func (fs *FrameSession) navigateFrame(frame *Frame, url, referrer string) (strin
}

func (fs *FrameSession) onConsoleAPICalled(event *runtime.EventConsoleAPICalled) {
// TODO: switch to using browser logger instead of directly outputting to k6 logging system
rt := k6common.GetRuntime(fs.ctx)
// TODO: switch to using browser logger instead of directly outputting to k6 logging system rt := k6common.GetRuntime(fs.ctx)
state := k6lib.GetState(fs.ctx)
l := state.Logger.
WithTime(event.Timestamp.Time()).
Expand All @@ -416,7 +414,7 @@ func (fs *FrameSession) onConsoleAPICalled(event *runtime.EventConsoleAPICalled)
i, err := interfaceFromRemoteObject(arg)
if err != nil {
// TODO(fix): this should not throw!
k6common.Throw(rt, fmt.Errorf("unable to parse remote object value: %w", err))
k6Throw(fs.ctx, "unable to parse remote object value: %w", err)
}
convertedArgs = append(convertedArgs, i)
}
Expand All @@ -439,15 +437,14 @@ func (fs *FrameSession) onExceptionThrown(event *runtime.EventExceptionThrown) {
}

func (fs *FrameSession) onExecutionContextCreated(event *runtime.EventExecutionContextCreated) {
rt := k6common.GetRuntime(fs.ctx)
auxData := event.Context.AuxData
var i struct {
FrameID cdp.FrameID `json:"frameId"`
IsDefault bool `json:"isDefault"`
Type string `json:"type"`
}
if err := json.Unmarshal(auxData, &i); err != nil {
k6common.Throw(rt, fmt.Errorf("unable to unmarshal JSON: %w", err))
k6Throw(fs.ctx, "unable to unmarshal JSON: %w", err)
}
var world string = ""
frame := fs.manager.getFrameByID(i.FrameID)
Expand Down Expand Up @@ -509,19 +506,17 @@ func (fs *FrameSession) onFrameDetached(frameID cdp.FrameID) {
}

func (fs *FrameSession) onFrameNavigated(frame *cdp.Frame, initial bool) {
rt := k6common.GetRuntime(fs.ctx)
err := fs.manager.frameNavigated(frame.ID, frame.ParentID, frame.LoaderID.String(), frame.Name, frame.URL+frame.URLFragment, initial)
if err != nil {
k6common.Throw(rt, err)
k6Throw(fs.ctx, "cannot handle frame navigation: %w", err)
}
}

func (fs *FrameSession) onFrameRequestedNavigation(event *cdppage.EventFrameRequestedNavigation) {
rt := k6common.GetRuntime(fs.ctx)
if event.Disposition == "currentTab" {
err := fs.manager.frameRequestedNavigation(event.FrameID, event.URL, "")
if err != nil {
k6common.Throw(rt, err)
k6Throw(fs.ctx, "cannot handle frame requested navigation: %w", err)
}
}
}
Expand Down Expand Up @@ -655,8 +650,7 @@ func (fs *FrameSession) onAttachedToTarget(event *target.EventAttachedToTarget)
// If we're no longer connected to browser, then ignore WebSocket errors
return
}
rt := k6common.GetRuntime(fs.ctx)
k6common.Throw(rt, err)
k6Throw(fs.ctx, "cannot create frame session: %w", err)
}
fs.page.frameSessions[cdp.FrameID(targetID)] = frameSession
return
Expand All @@ -676,8 +670,7 @@ func (fs *FrameSession) onAttachedToTarget(event *target.EventAttachedToTarget)
// If we're no longer connected to browser, then ignore WebSocket errors
return
}
rt := k6common.GetRuntime(fs.ctx)
k6common.Throw(rt, err)
k6Throw(fs.ctx, "cannot create new worker: %w", err)
}
fs.page.workers[session.id] = w
}
Expand Down

0 comments on commit ef87493

Please sign in to comment.