From a07d9829ded122e9d46879aadb714b5568d2ae8f Mon Sep 17 00:00:00 2001 From: Francis Bouvier Date: Tue, 26 Sep 2023 21:34:46 +0200 Subject: [PATCH] node: add isDefaultnamespace (TEST NOT WORKING) Signed-off-by: Francis Bouvier --- src/dom/node.zig | 12 ++++++++++++ src/netsurf.zig | 7 +++++++ 2 files changed, 19 insertions(+) diff --git a/src/dom/node.zig b/src/dom/node.zig index 26e971e8..9430c2e9 100644 --- a/src/dom/node.zig +++ b/src/dom/node.zig @@ -158,6 +158,11 @@ pub const Node = struct { pub fn _insertBefore(self: *parser.Node, new_node: *parser.Node, ref_node: *parser.Node) *parser.Node { return parser.nodeInsertBefore(self, new_node, ref_node); } + + pub fn _isDefaultNamespace(self: *parser.Node, namespace: []const u8) bool { + // TODO: namespace is not an optional parameter, but can be null. + return parser.nodeIsDefaultNamespace(self, namespace); + } }; pub const Types = generate.Tuple(.{ @@ -311,4 +316,11 @@ pub fn testExecFn( .{ .src = "link.firstChild.localName === 'a'", .ex = "true" }, }; try checkCases(js_env, &node_insert_before); + + var node_is_default_namespace = [_]Case{ + // TODO: does not seems to work + // .{ .src = "link.isDefaultNamespace('')", .ex = "true" }, + .{ .src = "link.isDefaultNamespace('false')", .ex = "false" }, + }; + try checkCases(js_env, &node_is_default_namespace); } diff --git a/src/netsurf.zig b/src/netsurf.zig index 9e9a3070..4b110337 100644 --- a/src/netsurf.zig +++ b/src/netsurf.zig @@ -364,6 +364,13 @@ pub fn nodeInsertBefore(node: *Node, new_node: *Node, ref_node: *Node) *Node { return res.?; } +pub fn nodeIsDefaultNamespace(node: *Node, namespace: []const u8) bool { + const s = stringFromData(namespace); + var res: bool = undefined; + _ = nodeVtable(node).dom_node_is_default_namespace.?(node, s, &res); + return res; +} + // CharacterData pub const CharacterData = c.dom_characterdata;