Skip to content

Commit db166b4

Browse files
authored
Merge pull request #1081 from lightpanda-io/nikneym/link-rel
Add `rel` property to `HTMLLinkElement`
2 parents 559783e + 71bc624 commit db166b4

File tree

3 files changed

+32
-2
lines changed

3 files changed

+32
-2
lines changed

src/browser/html/elements.zig

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -757,13 +757,21 @@ pub const HTMLLinkElement = struct {
757757
pub const prototype = *HTMLElement;
758758
pub const subtype = .node;
759759

760+
pub fn get_rel(self: *parser.Link) ![]const u8 {
761+
return parser.linkGetRel(self);
762+
}
763+
764+
pub fn set_rel(self: *parser.Link, rel: []const u8) !void {
765+
return parser.linkSetRel(self, rel);
766+
}
767+
760768
pub fn get_href(self: *parser.Link) ![]const u8 {
761-
return try parser.linkGetHref(self);
769+
return parser.linkGetHref(self);
762770
}
763771

764772
pub fn set_href(self: *parser.Link, href: []const u8, page: *const Page) !void {
765773
const full = try urlStitch(page.call_arena, href, page.url.raw, .{});
766-
return try parser.linkSetHref(self, full);
774+
return parser.linkSetHref(self, full);
767775
}
768776
};
769777

src/browser/netsurf.zig

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,6 +1934,19 @@ pub fn anchorSetRel(a: *Anchor, rel: []const u8) !void {
19341934

19351935
// HTMLLinkElement
19361936

1937+
pub fn linkGetRel(link: *Link) ![]const u8 {
1938+
var res: ?*String = null;
1939+
const err = c.dom_html_link_element_get_rel(link, &res);
1940+
try DOMErr(err);
1941+
if (res == null) return "";
1942+
return strToData(res.?);
1943+
}
1944+
1945+
pub fn linkSetRel(link: *Link, rel: []const u8) !void {
1946+
const err = c.dom_html_link_element_set_rel(link, try strFromData(rel));
1947+
return DOMErr(err);
1948+
}
1949+
19371950
pub fn linkGetHref(link: *Link) ![]const u8 {
19381951
var res: ?*String = null;
19391952
const err = c.dom_html_link_element_get_href(link, &res);

src/tests/dom/element.html

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -280,3 +280,12 @@
280280
divElement.dir = "auto";
281281
testing.expectEqual("auto", divElement.dir);
282282
</script>
283+
284+
<script id=linkRel>
285+
const linkElement = document.createElement("link");
286+
// A newly created link element must have it's rel set to empty string.
287+
testing.expectEqual("", linkElement.rel);
288+
289+
linkElement.rel = "stylesheet";
290+
testing.expectEqual("stylesheet", linkElement.rel);
291+
</script>

0 commit comments

Comments
 (0)