From 3c29e7dbd494d5f0ebe94265481d551ab3a4e321 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Wed, 18 Mar 2026 07:43:54 +0800 Subject: [PATCH] Expand rel's that trigger a link's onload Was only "stylesheet", not also includes "preload" and "modulepreload" --- src/browser/tests/element/html/link.html | 21 +++++++++++++++++++++ src/browser/webapi/element/html/Link.zig | 18 +++++++++++++----- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/browser/tests/element/html/link.html b/src/browser/tests/element/html/link.html index 4d967e37..40d45c2f 100644 --- a/src/browser/tests/element/html/link.html +++ b/src/browser/tests/element/html/link.html @@ -84,3 +84,24 @@ testing.eventually(() => testing.expectEqual(true, result)); } + + diff --git a/src/browser/webapi/element/html/Link.zig b/src/browser/webapi/element/html/Link.zig index fe56bd89..ed3839f2 100644 --- a/src/browser/webapi/element/html/Link.zig +++ b/src/browser/webapi/element/html/Link.zig @@ -93,13 +93,21 @@ pub fn linkAddedCallback(self: *Link, page: *Page) !void { } const element = self.asElement(); - // Exit if rel not set. + const rel = element.getAttributeSafe(comptime .wrap("rel")) orelse return; - // Exit if rel is not stylesheet. - if (!std.mem.eql(u8, rel, "stylesheet")) return; - // Exit if href not set. + const loadable_rels = std.StaticStringMap(void).initComptime(.{ + .{ "stylesheet", {} }, + .{ "preload", {} }, + .{ "modulepreload", {} }, + }); + if (loadable_rels.has(rel) == false) { + return; + } + const href = element.getAttributeSafe(comptime .wrap("href")) orelse return; - if (href.len == 0) return; + if (href.len == 0) { + return; + } try page._to_load.append(page.arena, self._proto); }