From 9acb1890b4a7c4350b962770e38ee13f8827fde0 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Fri, 27 Oct 2023 18:11:08 +0200 Subject: [PATCH 1/3] netsurf: add elementGetAttribute func --- src/netsurf.zig | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/netsurf.zig b/src/netsurf.zig index 5e368d98..5f246d98 100644 --- a/src/netsurf.zig +++ b/src/netsurf.zig @@ -609,6 +609,15 @@ pub fn elementLocalName(elem: *Element) []const u8 { return nodeLocalName(node); } +pub fn elementGetAttribute(elem: *Element, name: []const u8) ?[]const u8 { + var s: ?*String = undefined; + _ = elementVtable(elem).dom_element_get_attribute.?(elem, stringFromData(name), &s); + if (s == null) { + return null; + } + return stringToData(s.?); +} + // ElementHTML pub const ElementHTML = c.dom_html_element; From 89431971ac99d3ba19c2833d7e6a5beb775298fd Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Fri, 27 Oct 2023 19:00:26 +0200 Subject: [PATCH 2/3] wpt: load script soruce file dynamically --- src/main_wpt.zig | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/main_wpt.zig b/src/main_wpt.zig index fe75630a..c389a077 100644 --- a/src/main_wpt.zig +++ b/src/main_wpt.zig @@ -82,7 +82,7 @@ pub fn main() !void { defer vm.deinit(); // prepare libraries to load on each test case. - var loader = FileLoader.init(alloc, "tests/wpt"); + var loader = FileLoader.init(alloc, wpt_dir); defer loader.deinit(); // browse the dir to get the tests dynamically. @@ -160,6 +160,8 @@ fn runWPT(arena: *std.heap.ArenaAllocator, comptime apis: []jsruntime.API, f: [] const html_doc = try parser.documentHTMLParseFromFileAlloc(alloc, f); const doc = parser.documentHTMLToDocument(html_doc); + const dirname = std.fs.path.dirname(f[wpt_dir.len..]) orelse unreachable; + // create JS env var loop = try Loop.init(alloc); defer loop.deinit(); @@ -207,23 +209,28 @@ fn runWPT(arena: *std.heap.ArenaAllocator, comptime apis: []jsruntime.API, f: [] return res; } - // TODO load