From 08a7fb4de08a31cfede6ce8a3d94084e9381e00d Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Mon, 9 Mar 2026 15:51:26 +0800 Subject: [PATCH] Fix leak introduced in inner navigation refactoring A inner-navigate event can override an existing pending queued navigation. When it does, the previously queued navigation has to be cleaned up. We were doing this, but it must have been stripped out when navigation was refactored to work with frames. --- src/browser/Page.zig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/browser/Page.zig b/src/browser/Page.zig index dedb2a6e..57083e8b 100644 --- a/src/browser/Page.zig +++ b/src/browser/Page.zig @@ -652,6 +652,10 @@ fn scheduleNavigationWithArena(originator: *Page, arena: Allocator, request_url: .navigation_type = std.meta.activeTag(nt), }; + if (target._queued_navigation) |existing| { + target.arena_pool.release(existing.arena); + } + target._queued_navigation = qn; return session.scheduleNavigation(target); }