Merge pull request #973 from lightpanda-io/no-body-response
Some checks failed
e2e-test / zig build release (push) Has been cancelled
e2e-test / demo-scripts (push) Has been cancelled
e2e-test / cdp-and-hyperfine-bench (push) Has been cancelled
e2e-test / perf-fmt (push) Has been cancelled
zig-test / zig build dev (push) Has been cancelled
zig-test / browser fetch (push) Has been cancelled
zig-test / zig test (push) Has been cancelled
zig-test / perf-fmt (push) Has been cancelled

Handle response without body
This commit is contained in:
Karl Seguin
2025-08-26 18:44:22 +08:00
committed by GitHub

View File

@@ -695,6 +695,17 @@ pub const Page = struct {
self.clearTransferArena();
switch (self.mode) {
.pre => {
// Received a response without a body like: https://httpbin.io/status/200
// We assume we have received an OK status (checked in Client.headerCallback)
// so we load a blank document to navigate away from any prior page.
self.mode = .{ .parsed = {} };
const html_doc = try parser.documentHTMLParseFromStr("");
try self.setDocument(html_doc);
self.documentIsComplete();
},
.raw => |buf| {
self.mode = .{ .raw_done = buf.items };
self.documentIsComplete();
@@ -756,10 +767,6 @@ pub const Page = struct {
self.documentIsComplete();
}
},
.pre => {
// we didn't get any data.
self.documentIsComplete();
},
else => {
log.err(.app, "unreachable mode", .{ .mode = self.mode });
unreachable;