Merge pull request #1218 from lightpanda-io/cdp-targetinfo-title
Some checks failed
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled

cdp: return document's title on targetinfo
This commit is contained in:
Pierre Tachoire
2025-11-19 09:50:44 +01:00
committed by GitHub
3 changed files with 20 additions and 8 deletions

View File

@@ -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 {

View File

@@ -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);

View File

@@ -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,
},