diff --git a/src/browser/Frame.zig b/src/browser/Frame.zig index 4f0207366..0b6740d4d 100644 --- a/src/browser/Frame.zig +++ b/src/browser/Frame.zig @@ -2048,6 +2048,20 @@ pub fn loadExternalStylesheet(self: *Frame, link: *Element.Html.Link, href: []co }; const http_client = &session.browser.http_client; + + // `syncRequest` below registers a blocking request for this frame, which + // makes the DeferringLayer hold back the completion callbacks of every + // OTHER in-flight transfer for the frame (e.g. a ` + + +
+ + + + diff --git a/src/browser/webapi/element/html/Link.zig b/src/browser/webapi/element/html/Link.zig index 493b6a735..af9472283 100644 --- a/src/browser/webapi/element/html/Link.zig +++ b/src/browser/webapi/element/html/Link.zig @@ -288,3 +288,14 @@ test "WebApi: HTML.Link external stylesheet" { defer filter.deinit(); try testing.htmlRunner("css/external_stylesheet.html", .{ .load_external_stylesheets = true }); } + +// Regression: a synchronous external-stylesheet fetch must not strand the +// completion of an in-flight