Skip to content

Commit 8cd3bbd

Browse files
committed
remove netsurf.elementHTMLGetTagType
1 parent 0c8f448 commit 8cd3bbd

File tree

4 files changed

+15
-25
lines changed

4 files changed

+15
-25
lines changed

src/browser/dump.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ pub fn writeNode(node: *parser.Node, opts: Opts, writer: anytype) anyerror!void
6262
switch (try parser.nodeType(node)) {
6363
.element => {
6464
// open the tag
65-
const tag_type = try parser.elementHTMLGetTagType(@ptrCast(node));
65+
const tag_type = try parser.nodeHTMLGetTagType(node) orelse .undef;
6666
if (tag_type == .script and opts.exclude_scripts) {
6767
return;
6868
}
@@ -150,7 +150,7 @@ pub fn writeChildren(root: *parser.Node, opts: Opts, writer: anytype) !void {
150150
// area, base, br, col, embed, hr, img, input, link, meta, source, track, wbr
151151
// https://html.spec.whatwg.org/#void-elements
152152
fn isVoid(elem: *parser.Element) !bool {
153-
const tag = try parser.elementHTMLGetTagType(@as(*parser.ElementHTML, @ptrCast(elem)));
153+
const tag = try parser.elementTag(elem);
154154
return switch (tag) {
155155
.area, .base, .br, .col, .embed, .hr, .img, .input, .link => true,
156156
.meta, .source, .track, .wbr => true,

src/browser/netsurf.zig

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ pub const Tag = enum(u8) {
340340
}
341341

342342
const testing = @import("../testing.zig");
343-
test "Tag.elementTag" {
343+
test "Tag.fromString" {
344344
try testing.expect(try Tag.fromString("ABBR") == .abbr);
345345
try testing.expect(try Tag.fromString("abbr") == .abbr);
346346

@@ -1428,13 +1428,13 @@ pub inline fn nodeToDocument(node: *Node) *Document {
14281428
return @as(*Document, @ptrCast(node));
14291429
}
14301430

1431-
// Combination of nodeToElement + elementHTMLGetTagType
1431+
// Combination of nodeToElement + elementTag
14321432
pub fn nodeHTMLGetTagType(node: *Node) !?Tag {
14331433
if (try nodeType(node) != .element) {
14341434
return null;
14351435
}
1436-
const html_element: *ElementHTML = @ptrCast(node);
1437-
return try elementHTMLGetTagType(html_element);
1436+
1437+
return try elementTag(@ptrCast(node));
14381438
}
14391439

14401440
// CharacterData
@@ -1595,6 +1595,11 @@ fn elementVtable(elem: *Element) c.dom_element_vtable {
15951595
return getVtable(c.dom_element_vtable, Element, elem);
15961596
}
15971597

1598+
pub fn elementTag(elem: *Element) !Tag {
1599+
const tagname = try elementGetTagName(elem) orelse return .undef;
1600+
return Tag.fromString(tagname) catch .undef;
1601+
}
1602+
15981603
pub fn elementGetTagName(elem: *Element) !?[]const u8 {
15991604
var s: ?*String = undefined;
16001605
const err = elementVtable(elem).dom_element_get_tag_name.?(elem, &s);
@@ -1797,21 +1802,6 @@ fn elementHTMLVtable(elem_html: *ElementHTML) c.dom_html_element_vtable {
17971802
return getVtable(c.dom_html_element_vtable, ElementHTML, elem_html);
17981803
}
17991804

1800-
pub fn elementHTMLGetTagType(elem_html: *ElementHTML) !Tag {
1801-
var tag_type: c.dom_html_element_type = undefined;
1802-
const err = elementHTMLVtable(elem_html).dom_html_element_get_tag_type.?(elem_html, &tag_type);
1803-
try DOMErr(err);
1804-
1805-
if (tag_type >= 255) {
1806-
// This is questionable, but std.meta.intToEnum has more overhead
1807-
// Added this because this WPT test started to fail once we
1808-
// introduced an SVGElement:
1809-
// html/dom/documents/dom-tree-accessors/document.title-09.html
1810-
return Tag.undef;
1811-
}
1812-
return @as(Tag, @enumFromInt(tag_type));
1813-
}
1814-
18151805
// HTMLScriptElement
18161806

18171807
// scriptToElt is an helper to convert an script to an element.

src/browser/page.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -365,7 +365,7 @@ pub const Page = struct {
365365
const current = next.?;
366366

367367
const e = parser.nodeToElement(current);
368-
const tag = try parser.elementHTMLGetTagType(@as(*parser.ElementHTML, @ptrCast(e)));
368+
const tag = try parser.elementTag(e);
369369

370370
if (tag != .script) {
371371
// ignore non-js script.
@@ -809,7 +809,7 @@ pub const Page = struct {
809809
if (try parser.elementGetAttribute(element, "form")) |form_id| {
810810
const document = parser.documentHTMLToDocument(self.window.document);
811811
const form_element = try parser.documentGetElementById(document, form_id) orelse return null;
812-
if (try parser.elementHTMLGetTagType(@ptrCast(form_element)) == .form) {
812+
if (try parser.elementTag(@ptrCast(form_element)) == .form) {
813813
return @ptrCast(form_element);
814814
}
815815
return null;

src/browser/xhr/form_data.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ fn collectForm(form: *parser.Form, submitter_: ?*parser.ElementHTML, page: *Page
141141
continue;
142142
}
143143

144-
const tag = try parser.elementHTMLGetTagType(@as(*parser.ElementHTML, @ptrCast(element)));
144+
const tag = try parser.elementTag(element);
145145
switch (tag) {
146146
.input => {
147147
const tpe = try parser.inputGetType(@ptrCast(element));
@@ -246,7 +246,7 @@ fn collectSelectValues(arena: Allocator, select: *parser.Select, name: []const u
246246
fn getSubmitterName(submitter_: ?*parser.ElementHTML) !?[]const u8 {
247247
const submitter = submitter_ orelse return null;
248248

249-
const tag = try parser.elementHTMLGetTagType(submitter);
249+
const tag = try parser.elementTag(@ptrCast(submitter));
250250
const element: *parser.Element = @ptrCast(submitter);
251251
const name = try parser.elementGetAttribute(element, "name");
252252

0 commit comments

Comments
 (0)