Merge pull request #2165 from lightpanda-io/isolated_world_identity_reset

On page reset, reset IsolatedWorld identity
This commit is contained in:
Karl Seguin
2026-04-16 06:56:51 +08:00
committed by GitHub

View File

@@ -283,6 +283,12 @@ fn navigate(cmd: *CDP.Command) !void {
var page = session.currentPage() orelse return error.PageNotLoaded;
if (page._load_state != .waiting) {
// Reset isolated world identities to disable V8 weak callbacks before
// resetPageResources releases refs. Prevents double-release crashes.
for (bc.isolated_worlds.items) |isolated_world| {
isolated_world.identity.deinit();
isolated_world.identity = .{};
}
page = try session.replacePage();
}
@@ -313,6 +319,12 @@ fn doReload(cmd: *CDP.Command) !void {
const reload_url = try cmd.arena.dupeZ(u8, page.url);
if (page._load_state != .waiting) {
// Reset isolated world identities to disable V8 weak callbacks before
// resetPageResources releases refs. Prevents double-release crashes.
for (bc.isolated_worlds.items) |isolated_world| {
isolated_world.identity.deinit();
isolated_world.identity = .{};
}
page = try session.replacePage();
}