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