diff --git a/src/browser/html/document.zig b/src/browser/html/document.zig index b7a22ba5..694e091f 100644 --- a/src/browser/html/document.zig +++ b/src/browser/html/document.zig @@ -42,8 +42,12 @@ pub const HTMLDocument = struct { // JS funcs // -------- - pub fn get_domain(self: *parser.DocumentHTML) ![]const u8 { - return try parser.documentHTMLGetDomain(self); + pub fn get_domain(self: *parser.DocumentHTML, page: *Page) ![]const u8 { + // libdom's document_html get_domain always returns null, this is + // the way MDN recommends getting the domain anyways, since document.domain + // is deprecated. + const location = try parser.documentHTMLGetLocation(Location, self) orelse return ""; + return location.get_host(page); } pub fn set_domain(_: *parser.DocumentHTML, _: []const u8) ![]const u8 { @@ -307,7 +311,7 @@ test "Browser.HTML.Document" { }, .{}); try runner.testCases(&.{ - .{ "document.domain", "" }, + .{ "document.domain", "lightpanda.io" }, .{ "document.referrer", "" }, .{ "document.title", "" }, .{ "document.body.localName", "body" }, diff --git a/src/browser/netsurf.zig b/src/browser/netsurf.zig index 3be9481a..3949ce56 100644 --- a/src/browser/netsurf.zig +++ b/src/browser/netsurf.zig @@ -2369,14 +2369,6 @@ pub inline fn documentHTMLSetBody(doc_html: *DocumentHTML, elt: ?*ElementHTML) ! try DOMErr(err); } -pub inline fn documentHTMLGetDomain(doc: *DocumentHTML) ![]const u8 { - var s: ?*String = undefined; - const err = documentHTMLVtable(doc).get_domain.?(doc, &s); - try DOMErr(err); - if (s == null) return ""; - return strToData(s.?); -} - pub inline fn documentHTMLGetReferrer(doc: *DocumentHTML) ![]const u8 { var s: ?*String = undefined; const err = documentHTMLVtable(doc).get_referrer.?(doc, &s);