@@ -198,76 +198,84 @@ func (b *Browser) initEvents() error {
198
198
}
199
199
200
200
func (b * Browser ) onAttachedToTarget (ev * target.EventAttachedToTarget ) {
201
+ evti := ev .TargetInfo
202
+
201
203
b .contextsMu .RLock ()
202
204
browserCtx := b .defaultContext
203
- bctx , ok := b .contexts [ev . TargetInfo .BrowserContextID ]
205
+ bctx , ok := b .contexts [evti .BrowserContextID ]
204
206
if ok {
205
207
browserCtx = bctx
206
208
}
207
- b .logger .Debugf ("Browser:onAttachedToTarget" , "sid:%v tid:%v bctxid:%v bctx nil:%t" , ev .SessionID , ev .TargetInfo .TargetID , ev .TargetInfo .BrowserContextID , bctx == nil )
208
209
b .contextsMu .RUnlock ()
209
210
211
+ b .logger .Debugf ("Browser:onAttachedToTarget" , "sid:%v tid:%v bctxid:%v bctx nil:%t" ,
212
+ ev .SessionID , evti .TargetID , evti .BrowserContextID , browserCtx == nil )
213
+
210
214
// We're not interested in the top-level browser target, other targets or DevTools targets right now.
211
- isDevTools := strings .HasPrefix (ev . TargetInfo .URL , "devtools://devtools" )
212
- if ev . TargetInfo . Type == "browser" || ev . TargetInfo .Type == "other" || isDevTools {
213
- b .logger .Debugf ("Browser:onAttachedToTarget:return" , "sid:%v tid:%v (devtools)" , ev .SessionID , ev . TargetInfo .TargetID )
215
+ isDevTools := strings .HasPrefix (evti .URL , "devtools://devtools" )
216
+ if evti . Type == "browser" || evti .Type == "other" || isDevTools {
217
+ b .logger .Debugf ("Browser:onAttachedToTarget:return" , "sid:%v tid:%v (devtools)" , ev .SessionID , evti .TargetID )
214
218
return
215
219
}
216
220
217
- switch ev . TargetInfo .Type {
221
+ switch evti .Type {
218
222
case "background_page" :
219
- p , err := NewPage (b .ctx , b .conn .getSession (ev .SessionID ), browserCtx , ev . TargetInfo .TargetID , nil , false , b .logger )
223
+ p , err := NewPage (b .ctx , b .conn .getSession (ev .SessionID ), browserCtx , evti .TargetID , nil , false , b .logger )
220
224
if err != nil {
221
225
isRunning := atomic .LoadInt64 (& b .state ) == BrowserStateOpen && b .IsConnected () //b.conn.isConnected()
222
226
if _ , ok := err .(* websocket.CloseError ); ! ok && ! isRunning {
223
227
// If we're no longer connected to browser, then ignore WebSocket errors
224
228
b .logger .Debugf ("Browser:onAttachedToTarget:background_page:return" , "sid:%v tid:%v websocket err:%v" ,
225
- ev .SessionID , ev . TargetInfo .TargetID , err )
229
+ ev .SessionID , evti .TargetID , err )
226
230
return
227
231
}
228
232
k6Throw (b .ctx , "cannot create NewPage for background_page event: %w" , err )
229
233
}
230
234
231
235
b .pagesMu .Lock ()
232
- b .logger .Debugf ("Browser:onAttachedToTarget:background_page:addTid" , "sid:%v tid:%v" , ev .SessionID , ev . TargetInfo .TargetID )
233
- b .pages [ev . TargetInfo .TargetID ] = p
236
+ b .logger .Debugf ("Browser:onAttachedToTarget:background_page:addTid" , "sid:%v tid:%v" , ev .SessionID , evti .TargetID )
237
+ b .pages [evti .TargetID ] = p
234
238
b .pagesMu .Unlock ()
235
239
236
240
b .sessionIDtoTargetIDMu .Lock ()
237
- b .logger .Debugf ("Browser:onAttachedToTarget:background_page:addSid" , "sid:%v tid:%v" , ev .SessionID , ev . TargetInfo .TargetID )
238
- b .sessionIDtoTargetID [ev .SessionID ] = ev . TargetInfo .TargetID
241
+ b .logger .Debugf ("Browser:onAttachedToTarget:background_page:addSid" , "sid:%v tid:%v" , ev .SessionID , evti .TargetID )
242
+ b .sessionIDtoTargetID [ev .SessionID ] = evti .TargetID
239
243
b .sessionIDtoTargetIDMu .Unlock ()
240
244
case "page" :
241
245
var opener * Page = nil
242
246
b .pagesMu .RLock ()
243
- if t , ok := b .pages [ev . TargetInfo .OpenerID ]; ok {
247
+ if t , ok := b .pages [evti .OpenerID ]; ok {
244
248
opener = t
245
249
}
246
- b .logger .Debugf ("Browser:onAttachedToTarget:page" , "sid:%v tid:%v opener nil:%t" , ev .SessionID , ev . TargetInfo .TargetID , opener == nil )
250
+ b .logger .Debugf ("Browser:onAttachedToTarget:page" , "sid:%v tid:%v opener nil:%t" , ev .SessionID , evti .TargetID , opener == nil )
247
251
b .pagesMu .RUnlock ()
248
- p , err := NewPage (b .ctx , b .conn .getSession (ev .SessionID ), browserCtx , ev .TargetInfo .TargetID , opener , true , b .logger )
252
+
253
+ p , err := NewPage (b .ctx , b .conn .getSession (ev .SessionID ), browserCtx , evti .TargetID , opener , true , b .logger )
249
254
if err != nil {
250
255
isRunning := atomic .LoadInt64 (& b .state ) == BrowserStateOpen && b .IsConnected () //b.conn.isConnected()
251
256
if _ , ok := err .(* websocket.CloseError ); ! ok && ! isRunning {
252
257
// If we're no longer connected to browser, then ignore WebSocket errors
253
- b .logger .Debugf ("Browser:onAttachedToTarget:page:return" , "sid:%v tid:%v websocket err:" , ev .SessionID , ev . TargetInfo .TargetID )
258
+ b .logger .Debugf ("Browser:onAttachedToTarget:page:return" , "sid:%v tid:%v websocket err:" , ev .SessionID , evti .TargetID )
254
259
return
255
260
}
256
261
k6Throw (b .ctx , "cannot create NewPage for page event: %w" , err )
257
262
}
263
+
258
264
b .pagesMu .Lock ()
259
- b .logger .Debugf ("Browser:onAttachedToTarget:page:addTarget" , "sid:%v tid:%v" , ev .SessionID , ev . TargetInfo .TargetID )
260
- b .pages [ev . TargetInfo .TargetID ] = p
265
+ b .logger .Debugf ("Browser:onAttachedToTarget:page:addTarget" , "sid:%v tid:%v" , ev .SessionID , evti .TargetID )
266
+ b .pages [evti .TargetID ] = p
261
267
b .pagesMu .Unlock ()
268
+
262
269
b .sessionIDtoTargetIDMu .Lock ()
263
- b .logger .Debugf ("Browser:onAttachedToTarget:page:sidToTid" , "sid:%v tid:%v" , ev .SessionID , ev . TargetInfo .TargetID )
264
- b .sessionIDtoTargetID [ev .SessionID ] = ev . TargetInfo .TargetID
270
+ b .logger .Debugf ("Browser:onAttachedToTarget:page:sidToTid" , "sid:%v tid:%v" , ev .SessionID , evti .TargetID )
271
+ b .sessionIDtoTargetID [ev .SessionID ] = evti .TargetID
265
272
b .sessionIDtoTargetIDMu .Unlock ()
273
+
266
274
browserCtx .emit (EventBrowserContextPage , p )
267
275
default :
268
276
b .logger .Warnf (
269
- "Browser:onAttachedToTarget" , "sid:%v tid:%v bctxid:%v bctx nil:%t, warning: unknownTargetType " ,
270
- ev .SessionID , ev . TargetInfo . TargetID , ev . TargetInfo . BrowserContextID , bctx == nil )
277
+ "Browser:onAttachedToTarget" , "sid:%v tid:%v bctxid:%v bctx nil:%t, unknown target type: %q " ,
278
+ ev .SessionID , evti . TargetID , evti . BrowserContextID , browserCtx == nil , evti . Type )
271
279
}
272
280
}
273
281
0 commit comments