diff --git a/src/browser/page.zig b/src/browser/page.zig index 8022fb2c1..d91057d91 100644 --- a/src/browser/page.zig +++ b/src/browser/page.zig @@ -1222,6 +1222,10 @@ pub const Page = struct { const current_origin = try self.origin(self.call_arena); return std.mem.startsWith(u8, url, current_origin); } + + pub fn getTitle(self: *const Page) ![]const u8 { + return try parser.documentHTMLGetTitle(self.window.document); + } }; pub const NavigateReason = enum { diff --git a/src/cdp/cdp.zig b/src/cdp/cdp.zig index e5881807e..da1447547 100644 --- a/src/cdp/cdp.zig +++ b/src/cdp/cdp.zig @@ -468,6 +468,14 @@ pub fn BrowserContext(comptime CDP_T: type) type { return if (raw_url.len == 0) null else raw_url; } + pub fn getTitle(self: *const Self) ?[]const u8 { + const page = self.session.currentPage() orelse return null; + return page.getTitle() catch |err| { + log.err(.cdp, "page title", .{ .err = err }); + return null; + }; + } + pub fn networkEnable(self: *Self) !void { try self.cdp.browser.notification.register(.http_request_fail, self, onHttpRequestFail); try self.cdp.browser.notification.register(.http_request_start, self, onHttpRequestStart); diff --git a/src/cdp/domains/target.zig b/src/cdp/domains/target.zig index 049c3b505..fcee29d35 100644 --- a/src/cdp/domains/target.zig +++ b/src/cdp/domains/target.zig @@ -167,7 +167,7 @@ fn createTarget(cmd: anytype) !void { .targetInfo = TargetInfo{ .attached = false, .targetId = target_id, - .title = params.url, + .title = "about:blank", .browserContextId = bc.id, .url = "about:blank", }, @@ -271,8 +271,8 @@ fn getTargetInfo(cmd: anytype) !void { .targetInfo = TargetInfo{ .targetId = target_id, .type = "page", - .title = "", - .url = "", + .title = bc.getTitle() orelse "about:blank", + .url = bc.getURL() orelse "about:blank", .attached = true, .canAccessOpener = false, }, @@ -283,8 +283,8 @@ fn getTargetInfo(cmd: anytype) !void { .targetInfo = TargetInfo{ .targetId = "TID-STARTUP-B", .type = "browser", - .title = "", - .url = "", + .title = "about:blank", + .url = "about:blank", .attached = true, .canAccessOpener = false, }, @@ -630,8 +630,8 @@ test "cdp.target: getTargetInfo" { try ctx.expectSentResult(.{ .targetInfo = .{ .type = "browser", - .title = "", - .url = "", + .title = "about:blank", + .url = "about:blank", .attached = true, .canAccessOpener = false, }, @@ -664,7 +664,7 @@ test "cdp.target: getTargetInfo" { .targetId = "TID-A", .type = "page", .title = "", - .url = "", + .url = "about:blank", .attached = true, .canAccessOpener = false, },