diff --git a/src/browser/html/elements.zig b/src/browser/html/elements.zig index 8d3f2bc6..47cf0306 100644 --- a/src/browser/html/elements.zig +++ b/src/browser/html/elements.zig @@ -757,13 +757,21 @@ pub const HTMLLinkElement = struct { pub const prototype = *HTMLElement; pub const subtype = .node; + pub fn get_rel(self: *parser.Link) ![]const u8 { + return parser.linkGetRel(self); + } + + pub fn set_rel(self: *parser.Link, rel: []const u8) !void { + return parser.linkSetRel(self, rel); + } + pub fn get_href(self: *parser.Link) ![]const u8 { - return try parser.linkGetHref(self); + return parser.linkGetHref(self); } pub fn set_href(self: *parser.Link, href: []const u8, page: *const Page) !void { const full = try urlStitch(page.call_arena, href, page.url.raw, .{}); - return try parser.linkSetHref(self, full); + return parser.linkSetHref(self, full); } }; diff --git a/src/browser/netsurf.zig b/src/browser/netsurf.zig index b87c6ff8..a391950b 100644 --- a/src/browser/netsurf.zig +++ b/src/browser/netsurf.zig @@ -1934,6 +1934,19 @@ pub fn anchorSetRel(a: *Anchor, rel: []const u8) !void { // HTMLLinkElement +pub fn linkGetRel(link: *Link) ![]const u8 { + var res: ?*String = null; + const err = c.dom_html_link_element_get_rel(link, &res); + try DOMErr(err); + if (res == null) return ""; + return strToData(res.?); +} + +pub fn linkSetRel(link: *Link, rel: []const u8) !void { + const err = c.dom_html_link_element_set_rel(link, try strFromData(rel)); + return DOMErr(err); +} + pub fn linkGetHref(link: *Link) ![]const u8 { var res: ?*String = null; const err = c.dom_html_link_element_get_href(link, &res); diff --git a/src/tests/dom/element.html b/src/tests/dom/element.html index 8c4060f9..f656d5ca 100644 --- a/src/tests/dom/element.html +++ b/src/tests/dom/element.html @@ -280,3 +280,12 @@ divElement.dir = "auto"; testing.expectEqual("auto", divElement.dir); + +