From f2a406d2244d5c20e336f0131bc7d09840088193 Mon Sep 17 00:00:00 2001 From: Pierre Tachoire Date: Mon, 17 Jun 2024 16:29:00 +0200 Subject: [PATCH] move netsurf and mimalloc into modules --- build.zig | 46 +++++++++++++++++++++++------- src/browser/browser.zig | 2 +- src/browser/dump.zig | 2 +- src/css/libdom.zig | 2 +- src/css/libdom_test.zig | 2 +- src/dom/attribute.zig | 2 +- src/dom/cdata_section.zig | 2 +- src/dom/character_data.zig | 2 +- src/dom/comment.zig | 2 +- src/dom/css.zig | 2 +- src/dom/document.zig | 2 +- src/dom/document_fragment.zig | 2 +- src/dom/document_type.zig | 2 +- src/dom/element.zig | 2 +- src/dom/event_target.zig | 4 ++- src/dom/exceptions.zig | 2 +- src/dom/html_collection.zig | 2 +- src/dom/implementation.zig | 2 +- src/dom/namednodemap.zig | 2 +- src/dom/node.zig | 2 +- src/dom/nodelist.zig | 2 +- src/dom/processing_instruction.zig | 2 +- src/dom/text.zig | 2 +- src/dom/token_list.zig | 2 +- src/dom/walker.zig | 2 +- src/events/event.zig | 35 ++++++++++++++++++++++- src/html/document.zig | 2 +- src/html/elements.zig | 2 +- src/html/window.zig | 2 +- src/main.zig | 2 +- src/main_shell.zig | 2 +- src/{ => mimalloc}/mimalloc.zig | 0 src/{ => netsurf}/netsurf.zig | 41 +++----------------------- src/run_tests.zig | 2 +- src/storage/storage.zig | 2 +- src/user_context.zig | 2 +- src/wpt/run.zig | 2 +- src/xhr/event_target.zig | 19 ++++++++++-- src/xhr/progress_event.zig | 2 +- src/xhr/xhr.zig | 4 +-- 40 files changed, 127 insertions(+), 88 deletions(-) rename src/{ => mimalloc}/mimalloc.zig (100%) rename src/{ => netsurf}/netsurf.zig (98%) diff --git a/build.zig b/build.zig index 78872f74..c6b65029 100644 --- a/build.zig +++ b/build.zig @@ -168,22 +168,33 @@ fn common( step: *std.Build.Step.Compile, options: jsruntime.Options, ) !void { - try jsruntime_pkgs.add(step, options); - linkNetSurf(b, step); + const jsruntimemod = try jsruntime_pkgs.module( + b, + options, + step.root_module.optimize.?, + step.root_module.resolved_target.?, + ); + step.root_module.addImport("jsruntime", jsruntimemod); - // link mimalloc - step.addObjectFile(b.path("vendor/mimalloc/out/libmimalloc.a")); - step.addIncludePath(b.path("vendor/mimalloc/out/include")); + const netsurf = moduleNetSurf(b); + netsurf.addImport("jsruntime", jsruntimemod); + step.root_module.addImport("netsurf", netsurf); } -fn linkNetSurf(b: *std.Build, step: *std.Build.Step.Compile) void { +fn moduleNetSurf(b: *std.Build) *std.Build.Module { + const mod = b.addModule("netsurf", .{ + .root_source_file = b.path("src/netsurf/netsurf.zig"), + }); // iconv - step.addObjectFile(b.path("vendor/libiconv/lib/libiconv.a")); - step.addIncludePath(b.path("vendor/libiconv/include")); + mod.addObjectFile(b.path("vendor/libiconv/lib/libiconv.a")); + mod.addIncludePath(b.path("vendor/libiconv/include")); + + // mimalloc + mod.addImport("mimalloc", moduleMimalloc(b)); // netsurf libs const ns = "vendor/netsurf"; - step.addIncludePath(b.path(ns ++ "/include")); + mod.addIncludePath(b.path(ns ++ "/include")); const libs: [4][]const u8 = .{ "libdom", @@ -192,7 +203,20 @@ fn linkNetSurf(b: *std.Build, step: *std.Build.Step.Compile) void { "libwapcaplet", }; inline for (libs) |lib| { - step.addObjectFile(b.path(ns ++ "/lib/" ++ lib ++ ".a")); - step.addIncludePath(b.path(ns ++ "/" ++ lib ++ "/src")); + mod.addObjectFile(b.path(ns ++ "/lib/" ++ lib ++ ".a")); + mod.addIncludePath(b.path(ns ++ "/" ++ lib ++ "/src")); } + + return mod; +} + +fn moduleMimalloc(b: *std.Build) *std.Build.Module { + const mod = b.addModule("mimalloc", .{ + .root_source_file = b.path("src/mimalloc/mimalloc.zig"), + }); + + mod.addObjectFile(b.path("vendor/mimalloc/out/libmimalloc.a")); + mod.addIncludePath(b.path("vendor/mimalloc/out/include")); + + return mod; } diff --git a/src/browser/browser.zig b/src/browser/browser.zig index ecd5ebb2..c437b53e 100644 --- a/src/browser/browser.zig +++ b/src/browser/browser.zig @@ -21,7 +21,7 @@ const builtin = @import("builtin"); const Types = @import("root").Types; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const Loader = @import("loader.zig").Loader; const Dump = @import("dump.zig"); const Mime = @import("mime.zig"); diff --git a/src/browser/dump.zig b/src/browser/dump.zig index 44741525..7b705d1b 100644 --- a/src/browser/dump.zig +++ b/src/browser/dump.zig @@ -19,7 +19,7 @@ const std = @import("std"); const File = std.fs.File; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const Walker = @import("../dom/walker.zig").WalkerChildren; // writer must be a std.io.Writer diff --git a/src/css/libdom.zig b/src/css/libdom.zig index 44307c63..21333726 100644 --- a/src/css/libdom.zig +++ b/src/css/libdom.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); // Node implementation with Netsurf Libdom C lib. pub const Node = struct { diff --git a/src/css/libdom_test.zig b/src/css/libdom_test.zig index 4cd267e0..c0cdbb3f 100644 --- a/src/css/libdom_test.zig +++ b/src/css/libdom_test.zig @@ -19,7 +19,7 @@ const std = @import("std"); const css = @import("css.zig"); const Node = @import("libdom.zig").Node; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const Matcher = struct { const Nodes = std.ArrayList(Node); diff --git a/src/dom/attribute.zig b/src/dom/attribute.zig index a735171c..d85f87a0 100644 --- a/src/dom/attribute.zig +++ b/src/dom/attribute.zig @@ -22,7 +22,7 @@ const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; const checkCases = jsruntime.test_utils.checkCases; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const Node = @import("node.zig").Node; const DOMException = @import("exceptions.zig").DOMException; diff --git a/src/dom/cdata_section.zig b/src/dom/cdata_section.zig index a17e8317..c8ff6107 100644 --- a/src/dom/cdata_section.zig +++ b/src/dom/cdata_section.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const Text = @import("text.zig").Text; diff --git a/src/dom/character_data.zig b/src/dom/character_data.zig index 8ba6e266..b195b921 100644 --- a/src/dom/character_data.zig +++ b/src/dom/character_data.zig @@ -23,7 +23,7 @@ const Case = jsruntime.test_utils.Case; const checkCases = jsruntime.test_utils.checkCases; const generate = @import("../generate.zig"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const Node = @import("node.zig").Node; const Comment = @import("comment.zig").Comment; diff --git a/src/dom/comment.zig b/src/dom/comment.zig index e82c51bc..fe4111bc 100644 --- a/src/dom/comment.zig +++ b/src/dom/comment.zig @@ -17,7 +17,7 @@ // along with this program. If not, see . const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; diff --git a/src/dom/css.zig b/src/dom/css.zig index 50c262e4..0432e83e 100644 --- a/src/dom/css.zig +++ b/src/dom/css.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const css = @import("../css/css.zig"); const Node = @import("../css/libdom.zig").Node; diff --git a/src/dom/document.zig b/src/dom/document.zig index 0741b1d9..6e12c704 100644 --- a/src/dom/document.zig +++ b/src/dom/document.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; diff --git a/src/dom/document_fragment.zig b/src/dom/document_fragment.zig index 08d99165..574e8eb1 100644 --- a/src/dom/document_fragment.zig +++ b/src/dom/document_fragment.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; diff --git a/src/dom/document_type.zig b/src/dom/document_type.zig index 23c66723..cd40a732 100644 --- a/src/dom/document_type.zig +++ b/src/dom/document_type.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const Node = @import("node.zig").Node; diff --git a/src/dom/element.zig b/src/dom/element.zig index fc77d95e..8ef456a7 100644 --- a/src/dom/element.zig +++ b/src/dom/element.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; diff --git a/src/dom/event_target.zig b/src/dom/event_target.zig index 2dd7dcae..6f8f2f8f 100644 --- a/src/dom/event_target.zig +++ b/src/dom/event_target.zig @@ -24,7 +24,8 @@ const JSObjectID = jsruntime.JSObjectID; const Case = jsruntime.test_utils.Case; const checkCases = jsruntime.test_utils.checkCases; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); +const event_handler = @import("../events/event.zig").event_handler; const DOMException = @import("exceptions.zig").DOMException; const Nod = @import("node.zig"); @@ -74,6 +75,7 @@ pub const EventTarget = struct { eventType, cbk, capture orelse false, + event_handler, ); } diff --git a/src/dom/exceptions.zig b/src/dom/exceptions.zig index ba3952a4..209f4345 100644 --- a/src/dom/exceptions.zig +++ b/src/dom/exceptions.zig @@ -23,7 +23,7 @@ const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; const checkCases = jsruntime.test_utils.checkCases; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); // https://webidl.spec.whatwg.org/#idl-DOMException pub const DOMException = struct { diff --git a/src/dom/html_collection.zig b/src/dom/html_collection.zig index 2565d0dd..298d6b72 100644 --- a/src/dom/html_collection.zig +++ b/src/dom/html_collection.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; diff --git a/src/dom/implementation.zig b/src/dom/implementation.zig index e4fff404..ec90014f 100644 --- a/src/dom/implementation.zig +++ b/src/dom/implementation.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; diff --git a/src/dom/namednodemap.zig b/src/dom/namednodemap.zig index 0e205d06..67840659 100644 --- a/src/dom/namednodemap.zig +++ b/src/dom/namednodemap.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; diff --git a/src/dom/node.zig b/src/dom/node.zig index 5dd0c811..f5f0ade2 100644 --- a/src/dom/node.zig +++ b/src/dom/node.zig @@ -26,7 +26,7 @@ const Variadic = jsruntime.Variadic; const generate = @import("../generate.zig"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const EventTarget = @import("event_target.zig").EventTarget; diff --git a/src/dom/nodelist.zig b/src/dom/nodelist.zig index 1c8c2b61..be401902 100644 --- a/src/dom/nodelist.zig +++ b/src/dom/nodelist.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; diff --git a/src/dom/processing_instruction.zig b/src/dom/processing_instruction.zig index 3e23e11b..fc932ec5 100644 --- a/src/dom/processing_instruction.zig +++ b/src/dom/processing_instruction.zig @@ -22,7 +22,7 @@ const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; const checkCases = jsruntime.test_utils.checkCases; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const Node = @import("node.zig").Node; // https://dom.spec.whatwg.org/#processinginstruction diff --git a/src/dom/text.zig b/src/dom/text.zig index 4ac35ed5..39c22c47 100644 --- a/src/dom/text.zig +++ b/src/dom/text.zig @@ -23,7 +23,7 @@ const Case = jsruntime.test_utils.Case; const checkCases = jsruntime.test_utils.checkCases; const generate = @import("../generate.zig"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const CharacterData = @import("character_data.zig").CharacterData; const CDATASection = @import("cdata_section.zig").CDATASection; diff --git a/src/dom/token_list.zig b/src/dom/token_list.zig index c046cc4f..0ed75997 100644 --- a/src/dom/token_list.zig +++ b/src/dom/token_list.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; diff --git a/src/dom/walker.zig b/src/dom/walker.zig index ad7ba5f7..6f2c2fba 100644 --- a/src/dom/walker.zig +++ b/src/dom/walker.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); pub const Walker = union(enum) { walkerDepthFirst: WalkerDepthFirst, diff --git a/src/events/event.zig b/src/events/event.zig index 5a295513..81cfefd4 100644 --- a/src/events/event.zig +++ b/src/events/event.zig @@ -22,10 +22,11 @@ const generate = @import("../generate.zig"); const jsruntime = @import("jsruntime"); const Callback = jsruntime.Callback; +const CallbackResult = jsruntime.CallbackResult; const Case = jsruntime.test_utils.Case; const checkCases = jsruntime.test_utils.checkCases; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const DOMException = @import("../dom/exceptions.zig").DOMException; const EventTarget = @import("../dom/event_target.zig").EventTarget; @@ -33,6 +34,8 @@ const EventTargetUnion = @import("../dom/event_target.zig").Union; const ProgressEvent = @import("../xhr/progress_event.zig").ProgressEvent; +const log = std.log.scoped(.events); + // Event interfaces pub const Interfaces = generate.Tuple(.{ Event, @@ -236,3 +239,33 @@ pub fn testExecFn( }; try checkCases(js_env, &remove); } + +pub const event_handler = struct { + fn handle(event: ?*parser.Event, data: ?*anyopaque) callconv(.C) void { + if (data) |d| { + const func = parser.event_handler_cbk(d); + + // TODO get the allocator by another way? + var res = CallbackResult.init(func.nat_ctx.alloc); + defer res.deinit(); + + if (event) |evt| { + func.trycall(.{ + Event.toInterface(evt) catch unreachable, + }, &res) catch {}; + } else { + func.trycall(.{event}, &res) catch {}; + } + + // in case of function error, we log the result and the trace. + if (!res.success) { + log.info("event handler error: {s}", .{res.result orelse "unknown"}); + log.debug("{s}", .{res.stack orelse "no stack trace"}); + } + + // NOTE: we can not call func.deinit here + // b/c the handler can be called several times + // either on this dispatch event or in anoter one + } + } +}.handle; diff --git a/src/html/document.zig b/src/html/document.zig index f3f2ad60..3b53e11e 100644 --- a/src/html/document.zig +++ b/src/html/document.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; diff --git a/src/html/elements.zig b/src/html/elements.zig index 29b0cef8..dacce92e 100644 --- a/src/html/elements.zig +++ b/src/html/elements.zig @@ -17,7 +17,7 @@ // along with this program. If not, see . const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const generate = @import("../generate.zig"); const jsruntime = @import("jsruntime"); diff --git a/src/html/window.zig b/src/html/window.zig index cd3c74a0..5a34ae06 100644 --- a/src/html/window.zig +++ b/src/html/window.zig @@ -18,7 +18,7 @@ const std = @import("std"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const EventTarget = @import("../dom/event_target.zig").EventTarget; diff --git a/src/main.zig b/src/main.zig index 94e21e67..a402dc48 100644 --- a/src/main.zig +++ b/src/main.zig @@ -20,7 +20,7 @@ const std = @import("std"); const jsruntime = @import("jsruntime"); -const parser = @import("netsurf.zig"); +const parser = @import("netsurf"); const apiweb = @import("apiweb.zig"); const Window = @import("html/window.zig").Window; diff --git a/src/main_shell.zig b/src/main_shell.zig index 6eb6c11a..f766bdd7 100644 --- a/src/main_shell.zig +++ b/src/main_shell.zig @@ -20,7 +20,7 @@ const std = @import("std"); const jsruntime = @import("jsruntime"); -const parser = @import("netsurf.zig"); +const parser = @import("netsurf"); const apiweb = @import("apiweb.zig"); const Window = @import("html/window.zig").Window; const storage = @import("storage/storage.zig"); diff --git a/src/mimalloc.zig b/src/mimalloc/mimalloc.zig similarity index 100% rename from src/mimalloc.zig rename to src/mimalloc/mimalloc.zig diff --git a/src/netsurf.zig b/src/netsurf/netsurf.zig similarity index 98% rename from src/netsurf.zig rename to src/netsurf/netsurf.zig index 2e8a75a4..839c42c8 100644 --- a/src/netsurf.zig +++ b/src/netsurf/netsurf.zig @@ -26,13 +26,9 @@ const c = @cImport({ @cInclude("events/event.h"); }); -const mimalloc = @import("mimalloc.zig"); +const mimalloc = @import("mimalloc"); const Callback = @import("jsruntime").Callback; -const CallbackResult = @import("jsruntime").CallbackResult; -const EventToInterface = @import("events/event.zig").Event.toInterface; - -const log = std.log.scoped(.netsurf); // init initializes netsurf lib. // init starts a mimalloc heap arena for the netsurf session. The caller must @@ -527,41 +523,11 @@ pub const EventType = enum(u8) { }; // EventHandler -fn event_handler_cbk(data: *anyopaque) *Callback { +pub fn event_handler_cbk(data: *anyopaque) *Callback { const ptr: *align(@alignOf(*Callback)) anyopaque = @alignCast(data); return @as(*Callback, @ptrCast(ptr)); } -const event_handler = struct { - fn handle(event: ?*Event, data: ?*anyopaque) callconv(.C) void { - if (data) |d| { - const func = event_handler_cbk(d); - - // TODO get the allocator by another way? - var res = CallbackResult.init(func.nat_ctx.alloc); - defer res.deinit(); - - if (event) |evt| { - func.trycall(.{ - EventToInterface(evt) catch unreachable, - }, &res) catch {}; - } else { - func.trycall(.{event}, &res) catch {}; - } - - // in case of function error, we log the result and the trace. - if (!res.success) { - log.info("event handler error: {s}", .{res.result orelse "unknown"}); - log.debug("{s}", .{res.stack orelse "no stack trace"}); - } - - // NOTE: we can not call func.deinit here - // b/c the handler can be called several times - // either on this dispatch event or in anoter one - } - } -}.handle; - // EventListener pub const EventListener = c.dom_event_listener; const EventListenerEntry = c.listener_entry; @@ -648,6 +614,7 @@ pub fn eventTargetAddEventListener( typ: []const u8, cbk: Callback, capture: bool, + handler: anytype, ) !void { // this allocation will be removed either on // eventTargetRemoveEventListener or eventTargetRemoveAllEventListeners @@ -661,7 +628,7 @@ pub fn eventTargetAddEventListener( const ctx = @as(*anyopaque, @ptrCast(cbk_ptr)); var listener: ?*EventListener = undefined; - const errLst = c.dom_event_listener_create(event_handler, ctx, &listener); + const errLst = c.dom_event_listener_create(handler, ctx, &listener); try DOMErr(errLst); defer c.dom_event_listener_unref(listener); diff --git a/src/run_tests.zig b/src/run_tests.zig index 667f9d73..bf906733 100644 --- a/src/run_tests.zig +++ b/src/run_tests.zig @@ -23,7 +23,7 @@ const jsruntime = @import("jsruntime"); const generate = @import("generate.zig"); const pretty = @import("pretty"); -const parser = @import("netsurf.zig"); +const parser = @import("netsurf"); const apiweb = @import("apiweb.zig"); const Window = @import("html/window.zig").Window; const xhr = @import("xhr/xhr.zig"); diff --git a/src/storage/storage.zig b/src/storage/storage.zig index 0905eec0..52b467d2 100644 --- a/src/storage/storage.zig +++ b/src/storage/storage.zig @@ -23,7 +23,7 @@ const Case = jsruntime.test_utils.Case; const checkCases = jsruntime.test_utils.checkCases; const generate = @import("../generate.zig"); -const DOMError = @import("../netsurf.zig").DOMError; +const DOMError = @import("netsurf").DOMError; const log = std.log.scoped(.storage); diff --git a/src/user_context.zig b/src/user_context.zig index 4860100d..23d85955 100644 --- a/src/user_context.zig +++ b/src/user_context.zig @@ -1,5 +1,5 @@ const std = @import("std"); -const parser = @import("netsurf.zig"); +const parser = @import("netsurf"); const Client = @import("async/Client.zig"); pub const UserContext = struct { diff --git a/src/wpt/run.zig b/src/wpt/run.zig index 3625fdf7..09586db3 100644 --- a/src/wpt/run.zig +++ b/src/wpt/run.zig @@ -21,7 +21,7 @@ const fspath = std.fs.path; const FileLoader = @import("fileloader.zig").FileLoader; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const jsruntime = @import("jsruntime"); const Loop = jsruntime.Loop; diff --git a/src/xhr/event_target.zig b/src/xhr/event_target.zig index 765eb3ec..d03de6f7 100644 --- a/src/xhr/event_target.zig +++ b/src/xhr/event_target.zig @@ -22,8 +22,9 @@ const jsruntime = @import("jsruntime"); const Callback = jsruntime.Callback; const EventTarget = @import("../dom/event_target.zig").EventTarget; +const event_handler = @import("../events/event.zig").event_handler; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const log = std.log.scoped(.xhr); @@ -41,8 +42,20 @@ pub const XMLHttpRequestEventTarget = struct { ontimeout_cbk: ?Callback = null, onloadend_cbk: ?Callback = null, - fn register(self: *XMLHttpRequestEventTarget, alloc: std.mem.Allocator, typ: []const u8, cbk: Callback) !void { - try parser.eventTargetAddEventListener(@as(*parser.EventTarget, @ptrCast(self)), alloc, typ, cbk, false); + fn register( + self: *XMLHttpRequestEventTarget, + alloc: std.mem.Allocator, + typ: []const u8, + cbk: Callback, + ) !void { + try parser.eventTargetAddEventListener( + @as(*parser.EventTarget, @ptrCast(self)), + alloc, + typ, + cbk, + false, + event_handler, + ); } fn unregister(self: *XMLHttpRequestEventTarget, alloc: std.mem.Allocator, typ: []const u8, cbk: Callback) !void { const et = @as(*parser.EventTarget, @ptrCast(self)); diff --git a/src/xhr/progress_event.zig b/src/xhr/progress_event.zig index 832fb6f9..d985c76f 100644 --- a/src/xhr/progress_event.zig +++ b/src/xhr/progress_event.zig @@ -22,7 +22,7 @@ const jsruntime = @import("jsruntime"); const Case = jsruntime.test_utils.Case; const checkCases = jsruntime.test_utils.checkCases; -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const Event = @import("../events/event.zig").Event; const DOMException = @import("../dom/exceptions.zig").DOMException; diff --git a/src/xhr/xhr.zig b/src/xhr/xhr.zig index a6102d13..f4ff42c0 100644 --- a/src/xhr/xhr.zig +++ b/src/xhr/xhr.zig @@ -23,7 +23,7 @@ const Case = jsruntime.test_utils.Case; const checkCases = jsruntime.test_utils.checkCases; const generate = @import("../generate.zig"); -const DOMError = @import("../netsurf.zig").DOMError; +const DOMError = @import("netsurf").DOMError; const DOMException = @import("../dom/exceptions.zig").DOMException; const ProgressEvent = @import("progress_event.zig").ProgressEvent; @@ -35,7 +35,7 @@ const Loop = jsruntime.Loop; const YieldImpl = Loop.Yield(XMLHttpRequest); const Client = @import("../async/Client.zig"); -const parser = @import("../netsurf.zig"); +const parser = @import("netsurf"); const UserContext = @import("../user_context.zig").UserContext;