@@ -26,6 +26,8 @@ const getMsg = cdp.getMsg;
2626const stringify = cdp .stringify ;
2727const sendEvent = cdp .sendEvent ;
2828
29+ const log = std .log .scoped (.cdp );
30+
2931const Runtime = @import ("runtime.zig" );
3032
3133const Methods = enum {
@@ -62,7 +64,11 @@ fn enable(
6264 scanner : * std.json.Scanner ,
6365 _ : * Ctx ,
6466) ! []const u8 {
67+
68+ // input
6569 const msg = try getMsg (alloc , _id , void , scanner );
70+ log .debug ("Req > id {d}, method {s}" , .{ msg .id , "page.enable" });
71+
6672 return result (alloc , msg .id , null , null , msg .sessionID );
6773}
6874
@@ -87,13 +93,36 @@ fn getFrameTree(
8793 scanner : * std.json.Scanner ,
8894 ctx : * Ctx ,
8995) ! []const u8 {
96+
97+ // input
9098 const msg = try cdp .getMsg (alloc , _id , void , scanner );
99+ log .debug ("Req > id {d}, method {s}" , .{ msg .id , "page.getFrameTree" });
91100
101+ // output
92102 const FrameTree = struct {
93103 frameTree : struct {
94104 frame : Frame ,
95105 },
96106 childFrames : ? []@This () = null ,
107+
108+ pub fn format (
109+ self : @This (),
110+ comptime _ : []const u8 ,
111+ options : std.fmt.FormatOptions ,
112+ writer : anytype ,
113+ ) ! void {
114+ try writer .writeAll ("cdp.page.getFrameTree { " );
115+ try writer .writeAll (".frameTree = { " );
116+ try writer .writeAll (".frame = { " );
117+ const frame = self .frameTree .frame ;
118+ try writer .writeAll (".id = " );
119+ try std .fmt .formatText (frame .id , "s" , options , writer );
120+ try writer .writeAll (", .loaderId = " );
121+ try std .fmt .formatText (frame .loaderId , "s" , options , writer );
122+ try writer .writeAll (", .url = " );
123+ try std .fmt .formatText (frame .url , "s" , options , writer );
124+ try writer .writeAll (" } } }" );
125+ }
97126 };
98127 const frameTree = FrameTree {
99128 .frameTree = .{
@@ -121,6 +150,7 @@ fn setLifecycleEventsEnabled(
121150 enabled : bool ,
122151 };
123152 const msg = try getMsg (alloc , _id , Params , scanner );
153+ log .debug ("Req > id {d}, method {s}" , .{ msg .id , "page.setLifecycleEventsEnabled" });
124154
125155 ctx .state .page_life_cycle_events = true ;
126156
@@ -151,10 +181,23 @@ fn addScriptToEvaluateOnNewDocument(
151181 runImmediately : bool = false ,
152182 };
153183 const msg = try getMsg (alloc , _id , Params , scanner );
184+ log .debug ("Req > id {d}, method {s}" , .{ msg .id , "page.addScriptToEvaluateOnNewDocument" });
154185
155186 // output
156187 const Res = struct {
157188 identifier : []const u8 = "1" ,
189+
190+ pub fn format (
191+ self : @This (),
192+ comptime _ : []const u8 ,
193+ options : std.fmt.FormatOptions ,
194+ writer : anytype ,
195+ ) ! void {
196+ try writer .writeAll ("cdp.page.addScriptToEvaluateOnNewDocument { " );
197+ try writer .writeAll (".identifier = " );
198+ try std .fmt .formatText (self .identifier , "s" , options , writer );
199+ try writer .writeAll (" }" );
200+ }
158201 };
159202 return result (alloc , msg .id , Res , Res {}, msg .sessionID );
160203}
@@ -175,6 +218,7 @@ fn createIsolatedWorld(
175218 };
176219 const msg = try getMsg (alloc , _id , Params , scanner );
177220 std .debug .assert (msg .sessionID != null );
221+ log .debug ("Req > id {d}, method {s}" , .{ msg .id , "page.createIsolatedWorld" });
178222 const params = msg .params .? ;
179223
180224 // noop executionContextCreated event
@@ -219,6 +263,7 @@ fn navigate(
219263 };
220264 const msg = try getMsg (alloc , _id , Params , scanner );
221265 std .debug .assert (msg .sessionID != null );
266+ log .debug ("Req > id {d}, method {s}" , .{ msg .id , "page.navigate" });
222267 const params = msg .params .? ;
223268
224269 // change state
@@ -264,14 +309,29 @@ fn navigate(
264309 frameId : []const u8 ,
265310 loaderId : ? []const u8 ,
266311 errorText : ? []const u8 = null ,
312+
313+ pub fn format (
314+ self : @This (),
315+ comptime _ : []const u8 ,
316+ options : std.fmt.FormatOptions ,
317+ writer : anytype ,
318+ ) ! void {
319+ try writer .writeAll ("cdp.page.navigate.Resp { " );
320+ try writer .writeAll (".frameId = " );
321+ try std .fmt .formatText (self .frameId , "s" , options , writer );
322+ if (self .loaderId ) | loaderId | {
323+ try writer .writeAll (", .loaderId = '" );
324+ try std .fmt .formatText (loaderId , "s" , options , writer );
325+ }
326+ try writer .writeAll (" }" );
327+ }
267328 };
268329 const resp = Resp {
269330 .frameId = ctx .state .frameID ,
270331 .loaderId = ctx .state .loaderID ,
271332 };
272333 const res = try result (alloc , msg .id , Resp , resp , msg .sessionID );
273334 defer alloc .free (res );
274- std .log .debug ("res {s}" , .{res });
275335 try server .sendSync (ctx , res );
276336
277337 // TODO: at this point do we need async the following actions to be async?
0 commit comments