diff --git a/src/cdp/cdp.zig b/src/cdp/cdp.zig index 466ff765..e931253a 100644 --- a/src/cdp/cdp.zig +++ b/src/cdp/cdp.zig @@ -28,7 +28,6 @@ const log = std.log.scoped(.cdp); pub const URL_BASE = "chrome://newtab/"; pub const LOADER_ID = "LOADERID24DD2FD56CF1EF33C965C79C"; -pub const FRAME_ID = "FRAMEIDD8AED408A0467AC93100BCDBE"; pub const TimestampEvent = struct { timestamp: f64, @@ -282,7 +281,6 @@ pub fn BrowserContext(comptime CDP_T: type) type { // State url: []const u8, - frame_id: []const u8, loader_id: []const u8, security_origin: []const u8, page_life_cycle_events: bool, @@ -301,7 +299,6 @@ pub fn BrowserContext(comptime CDP_T: type) type { .target_id = null, .session_id = null, .url = URL_BASE, - .frame_id = FRAME_ID, .security_origin = URL_BASE, .secure_context_type = "Secure", // TODO = enum .loader_id = LOADER_ID, diff --git a/src/cdp/page.zig b/src/cdp/page.zig index 1ba6ed92..7b22fb97 100644 --- a/src/cdp/page.zig +++ b/src/cdp/page.zig @@ -57,12 +57,13 @@ const Frame = struct { fn getFrameTree(cmd: anytype) !void { const bc = cmd.browser_context orelse return error.BrowserContextNotLoaded; + const target_id = bc.target_id orelse return error.TargetNotLoaded; return cmd.sendResult(.{ .frameTree = .{ .frame = Frame{ .url = bc.url, - .id = bc.frame_id, + .id = target_id, .loaderId = bc.loader_id, .securityOrigin = bc.security_origin, .secureContextType = bc.secure_context_type, @@ -132,7 +133,7 @@ fn navigate(cmd: anytype) !void { const bc = cmd.browser_context orelse return error.BrowserContextNotLoaded; // didn't create? - _ = bc.target_id orelse return error.TargetIdNotLoaded; + const target_id = bc.target_id orelse return error.TargetIdNotLoaded; // didn't attach? const session_id = bc.session_id orelse return error.SessionIdNotLoaded; @@ -163,7 +164,7 @@ fn navigate(cmd: anytype) !void { }; var life_event = LifecycleEvent{ - .frameId = bc.frame_id, + .frameId = target_id, .loaderId = bc.loader_id, .name = "init", .timestamp = 343721.796037, @@ -172,7 +173,7 @@ fn navigate(cmd: anytype) !void { // frameStartedLoading event // TODO: event partially hard coded try cmd.sendEvent("Page.frameStartedLoading", .{ - .frameId = bc.frame_id, + .frameId = target_id, }, .{ .session_id = session_id }); if (bc.page_life_cycle_events) { @@ -181,7 +182,7 @@ fn navigate(cmd: anytype) !void { // output try cmd.sendResult(.{ - .frameId = bc.frame_id, + .frameId = target_id, .loaderId = bc.loader_id, }, .{}); @@ -195,7 +196,7 @@ fn navigate(cmd: anytype) !void { cmd.arena, // NOTE: we assume this is the default web page "{{\"isDefault\":true,\"type\":\"default\",\"frameId\":\"{s}\"}}", - .{bc.frame_id}, + .{target_id}, ); var page = bc.session.currentPage().?; @@ -217,7 +218,7 @@ fn navigate(cmd: anytype) !void { try cmd.sendEvent("Page.frameNavigated", .{ .type = "Navigation", .frame = Frame{ - .id = bc.frame_id, + .id = target_id, .url = bc.url, .securityOrigin = bc.security_origin, .secureContextType = bc.secure_context_type, @@ -259,7 +260,7 @@ fn navigate(cmd: anytype) !void { // frameStoppedLoading return cmd.sendEvent("Page.frameStoppedLoading", .{ - .frameId = bc.frame_id, + .frameId = target_id, }, .{ .session_id = session_id }); } diff --git a/src/cdp/runtime.zig b/src/cdp/runtime.zig index 5a6e2948..3150e441 100644 --- a/src/cdp/runtime.zig +++ b/src/cdp/runtime.zig @@ -70,7 +70,7 @@ pub const ExecutionContextCreated = struct { pub const AuxData = struct { isDefault: bool = true, type: []const u8 = "default", - frameId: []const u8 = cdp.FRAME_ID, + frameId: []const u8, }; }; diff --git a/src/cdp/target.zig b/src/cdp/target.zig index 324da5c1..d9de95a4 100644 --- a/src/cdp/target.zig +++ b/src/cdp/target.zig @@ -231,7 +231,7 @@ fn getTargetInfo(cmd: anytype) !void { } return cmd.sendResult(.{ - .targetInfo = .{ + .targetInfo = TargetInfo{ .targetId = target_id, .type = "page", .title = "", @@ -243,7 +243,8 @@ fn getTargetInfo(cmd: anytype) !void { } return cmd.sendResult(.{ - .targetInfo = .{ + .targetInfo = TargetInfo{ + .targetId = "TID-STARTUP-B", .type = "browser", .title = "", .url = "", @@ -342,9 +343,9 @@ fn setAutoAttach(cmd: anytype) !void { try cmd.sendEvent("Target.attachedToTarget", AttachToTarget{ .sessionId = "STARTUP", .targetInfo = TargetInfo{ - .type = "browser", - .targetId = "TID-STARTUP", - .title = "about:blank", + .type = "page", + .targetId = "TID-STARTUP-P", + .title = "New Private Tab", .url = "chrome://newtab/", .browserContextId = "BID-STARTUP", }, @@ -382,7 +383,7 @@ const TargetInfo = struct { attached: bool = true, type: []const u8 = "page", canAccessOpener: bool = false, - browserContextId: []const u8, + browserContextId: ?[]const u8 = null, }; const testing = @import("testing.zig");