From f3ce5dcfbde495f78964db0e6f11bf134c2c95df Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Fri, 12 Sep 2025 18:42:34 +0800 Subject: [PATCH] Add Script get/set nonce --- src/browser/html/elements.zig | 15 +++++++++++++++ src/tests/html/script/script.html | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/src/browser/html/elements.zig b/src/browser/html/elements.zig index c8c98c31..da9b0fb5 100644 --- a/src/browser/html/elements.zig +++ b/src/browser/html/elements.zig @@ -977,6 +977,21 @@ pub const HTMLScriptElement = struct { return try parser.elementRemoveAttribute(parser.scriptToElt(self), "nomodule"); } + pub fn get_nonce(self: *parser.Script) !?[]const u8 { + return try parser.elementGetAttribute( + parser.scriptToElt(self), + "nonce", + ) orelse ""; + } + + pub fn set_nonce(self: *parser.Script, v: []const u8) !void { + try parser.elementSetAttribute( + parser.scriptToElt(self), + "nonce", + v, + ); + } + pub fn get_onload(self: *parser.Script, page: *Page) !?Env.Function { const state = page.getNodeState(@ptrCast(@alignCast(self))) orelse return null; return state.onload; diff --git a/src/tests/html/script/script.html b/src/tests/html/script/script.html index 1ce00feb..0b579d10 100644 --- a/src/tests/html/script/script.html +++ b/src/tests/html/script/script.html @@ -11,4 +11,8 @@ script.defer = true; testing.expectEqual(true, script.defer); + + testing.expectEqual('', script.nonce); + script.nonce = 'hello'; + testing.expectEqual('hello', script.nonce);