@@ -100,7 +100,11 @@ fn createTarget(cmd: anytype) !void {
100100 // forTab: ?bool = null,
101101 })) orelse return error .InvalidParams ;
102102
103- const bc = cmd .browser_context orelse return error .BrowserContextNotLoaded ;
103+ const bc = cmd .browser_context orelse cmd .createBrowserContext () catch | err | switch (err ) {
104+ error .AlreadyExists = > unreachable ,
105+ else = > return err ,
106+ };
107+
104108 if (bc .target_id != null ) {
105109 return error .TargetAlreadyLoaded ;
106110 }
@@ -459,18 +463,19 @@ test "cdp.target: disposeBrowserContext" {
459463}
460464
461465test "cdp.target: createTarget" {
462- var ctx = testing .context ();
463- defer ctx .deinit ();
464-
465466 {
466- try testing .expectError (error .BrowserContextNotLoaded , ctx .processMessage (.{
467- .id = 10 ,
468- .method = "Target.createTarget" ,
469- .params = struct {}{},
470- }));
471- try ctx .expectSentError (-31998 , "BrowserContextNotLoaded" , .{ .id = 10 });
467+ var ctx = testing .context ();
468+ defer ctx .deinit ();
469+ try ctx .processMessage (.{ .id = 10 , .method = "Target.createTarget" , .params = .{ .url = "about/blank" } });
470+
471+ // should create a browser context
472+ const bc = ctx .cdp ().browser_context .? ;
473+ try ctx .expectSentEvent ("Target.targetCreated" , .{ .targetInfo = .{ .url = "about:blank" , .title = "about:blank" , .attached = false , .type = "page" , .canAccessOpener = false , .browserContextId = bc .id , .targetId = bc .target_id .? } }, .{});
474+ try ctx .expectSentEvent ("Target.attachedToTarget" , .{ .sessionId = bc .session_id .? , .targetInfo = .{ .url = "chrome://newtab/" , .title = "about:blank" , .attached = true , .type = "page" , .canAccessOpener = false , .browserContextId = bc .id , .targetId = bc .target_id .? } }, .{});
472475 }
473476
477+ var ctx = testing .context ();
478+ defer ctx .deinit ();
474479 const bc = try ctx .loadBrowserContext (.{ .id = "BID-9" });
475480 {
476481 try testing .expectError (error .UnknownBrowserContextId , ctx .processMessage (.{ .id = 10 , .method = "Target.createTarget" , .params = .{ .browserContextId = "BID-8" } }));
0 commit comments