diff --git a/src/cdp/page.zig b/src/cdp/page.zig index df490d1a..9a47561e 100644 --- a/src/cdp/page.zig +++ b/src/cdp/page.zig @@ -41,14 +41,37 @@ fn enable( return result(alloc, id, null, null, sessionID); } +const FrameTreeID = "90D14BBD8AED408A0467AC93100BCDBE"; +const LoaderID = "CFC8BED824DD2FD56CF1EF33C965C79C"; +const URLBase = "chrome://newtab/"; + fn getFrameTree( alloc: std.mem.Allocator, id: u64, - _: *std.json.Scanner, + scanner: *std.json.Scanner, _: *Ctx, ) ![]const u8 { - // TODO: dummy - return result(alloc, id, null, null, null); + const sessionID = try cdp.getSessionID(scanner); + const FrameTree = struct { + frameTree: struct { + frame: struct { + id: []const u8 = FrameTreeID, + loaderId: []const u8 = LoaderID, + url: []const u8 = URLBase, + domainAndRegistry: []const u8 = "", + securityOrigin: []const u8 = URLBase, + mimeType: []const u8 = "mimeType", + adFrameStatus: struct { + adFrameType: []const u8 = "none", + } = .{}, + secureContextType: []const u8 = "Secure", + crossOriginIsolatedContextType: []const u8 = "NotIsolated", + gatedAPIFeatures: [][]const u8 = &[0][]const u8{}, + } = .{}, + } = .{}, + childFrames: ?[]@This() = null, + }; + return result(alloc, id, FrameTree, FrameTree{}, sessionID); } fn setLifecycleEventsEnabled(