From f5761ee69d2ce02f9c7240247aba3e5e517ea50c Mon Sep 17 00:00:00 2001 From: sjorsdonkers <72333389+sjorsdonkers@users.noreply.github.com> Date: Mon, 12 May 2025 11:19:19 +0200 Subject: [PATCH] Init netsurf at page creation --- src/browser/browser.zig | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/browser/browser.zig b/src/browser/browser.zig index 2c5b09ff..45fc0343 100644 --- a/src/browser/browser.zig +++ b/src/browser/browser.zig @@ -152,6 +152,10 @@ pub const Session = struct { pub fn createPage(self: *Session) !*Page { std.debug.assert(self.page == null); + // Start netsurf memory arena. + // We need to init this early as JS event handlers may be registered through Runtime.evaluate before the first html doc is loaded + try parser.init(); + const page_arena = &self.browser.page_arena; _ = page_arena.reset(.{ .retain_with_limit = 1 * 1024 * 1024 }); @@ -393,9 +397,6 @@ pub const Page = struct { fn loadHTMLDoc(self: *Page, reader: anytype, charset: []const u8) !void { const arena = self.arena; - // start netsurf memory arena. - try parser.init(); - log.debug("parse html with charset {s}", .{charset}); const ccharset = try arena.dupeZ(u8, charset);