From 524b5be937498910462002a15911440f8bd642e7 Mon Sep 17 00:00:00 2001 From: Karl Seguin Date: Sat, 28 Feb 2026 21:51:44 +0800 Subject: [PATCH] on iframe re-navigation, keep `pending_loads` in sync --- src/browser/Page.zig | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/browser/Page.zig b/src/browser/Page.zig index 101cb522..2e79f16c 100644 --- a/src/browser/Page.zig +++ b/src/browser/Page.zig @@ -236,7 +236,7 @@ version: usize = 0, // ScriptManager, so all scripts just count as 1 pending load. _pending_loads: u32, -_parent_notified: if (IS_DEBUG) bool else void = if (IS_DEBUG) false else {}, +_parent_notified: bool = false, _type: enum { root, frame }, // only used for logs right now _req_id: u32 = 0, @@ -753,11 +753,15 @@ fn _documentIsComplete(self: *Page) !void { } fn notifyParentLoadComplete(self: *Page) void { - if (comptime IS_DEBUG) { - std.debug.assert(self._parent_notified == false); - self._parent_notified = true; + if (self._parent_notified == true) { + if (comptime IS_DEBUG) { + std.debug.assert(false); + } + // shouldn't happen, don't want to crash a release build over it + return; } + self._parent_notified = true; if (self.parent) |p| { p.iframeCompletedLoading(self.iframe.?); }