diff --git a/src/browser/webapi/net/XMLHttpRequest.zig b/src/browser/webapi/net/XMLHttpRequest.zig index 30da5d6e..789d0b52 100644 --- a/src/browser/webapi/net/XMLHttpRequest.zig +++ b/src/browser/webapi/net/XMLHttpRequest.zig @@ -93,7 +93,7 @@ pub fn init(page: *Page) !*XMLHttpRequest { pub fn deinit(self: *XMLHttpRequest) void { if (self._transfer) |transfer| { - transfer.abort(error.Abort); + transfer.terminate(); self._transfer = null; } self._page.releaseArena(self._arena); diff --git a/src/http/Client.zig b/src/http/Client.zig index a0f5ee81..9614d218 100644 --- a/src/http/Client.zig +++ b/src/http/Client.zig @@ -979,6 +979,13 @@ pub const Transfer = struct { self.deinit(); } + pub fn terminate(self: *Transfer) void { + if (self._handle != null) { + self.client.endTransfer(self); + } + self.deinit(); + } + // internal, when the page is shutting down. Doesn't have the same ceremony // as abort (doesn't send a notification, doesn't invoke an error callback) fn kill(self: *Transfer) void {