01:12
<annevk>
Hmm, the location.hostname setter is still kinda bogus. E.g., set it to ^ and it throws in most implementations. But what argues for that?
01:13
<annevk>
(I'm still trying to unravel URLPattern nonsense. But turns out there's non-URLPattern nonsense too.)
02:20
<akaster>
Is it supposed to be legal to reject and resolve promises while "in parallel"? Or should spec authors wrap those in "queue a task on the such and such task source given such and such global object to resolve/reject `promise` with XYZ"
02:23
<akaster>
Oh I asked this and then realized that the latest WebCrypto spec has a "when we say throw, we mean queue a task to resolve the promise with" in the latest draft and our implementation is wrong 😅
02:27
<akaster>

but then there's this from extract a body in Fetch https://fetch.spec.whatwg.org/#concept-bodyinit-extract, that says to create a Uint8Array while "in parallel", which seems unfortunate. I thought that "in parallel" was supposed to only operate on realm-independent WebIDL objects.

  1. If action is non-null, then run these steps in parallel:
    1. Run action.
    2. Whenever one or more bytes are available and stream is not errored, enqueue the result of creating a Uint8Array from the available bytes into stream.
    3. When running action is done, close stream.
02:30
<akaster>

The next complication is that, in algorithm sections that are in parallel, you must not create or manipulate objects associated to a specific realm, global, or environment settings object. (Stated in more familiar terms, you must not directly access main-thread artifacts from a background thread.) Doing so would create data races observable to JavaScript code, since after all, your algorithm steps are running in parallel to the JavaScript code.

https://html.spec.whatwg.org/multipage/webappapis.html#event-loop-for-spec-authors

02:39
<akaster>
relatedly, I wrote up some thoughts about interacting with the HTML event loop from concurrent Swift code here today, if anyone in this forum is interested. https://forums.swift.org/t/ladybird-browser-event-loop-integration-with-swift-concurrency/78453
03:00
<Domenic>
akaster: you may enjoy my recent braindump in this space. https://github.com/w3c/ServiceWorker/pull/1755#issuecomment-2661941708
03:04
<Domenic>
I pinged Shunya internally. Unfortunately we lost Jeremy to a reorg...
03:04
<akaster>
Oh that is interesting yeah. It's definitely the case for me that when I was reading through the Service worker spec a few months ago it was difficult to wrap my head around what spec objects were supposed to be "agent global" vs "event loop" vs "browser process/user agent global"
03:05
<akaster>
And the spec at the time seemed to mix subobjects with different lifetimes in the same spec object.
06:56
<sideshowbarker>

Layout-computation question: Given the following:

<style>
    .visually-hidden {
        position: absolute;
    }
    .icon {
        display: inline-block;
    }
    dt a {
        position: relative;
    }
</style>
<body>
    <dt>
        <a>
            <abbr class="icon">
                <span class="visually-hidden">Non-standard</span>
            </abbr>
        </a>
    </dt>
</body>

…The containing block for the layout node for that span should be the abbr block, right?

And if the a block is ending up as the containing block for that span, that’s just wrong?

07:17
<Andreu Botella>

https://drafts.csswg.org/css-position-3/#def-cb

If the box has position: absolute:
The containing block is established by the nearest ancestor box that establishes an absolute positioning containing block [...}

Note: Properties that can cause a box to establish an absolute positioning containing block include position, transform, will-change, contain…

07:18
<Andreu Botella>
The spec doesn't say display: inline-block can make an abspos containing block
07:27
<Domenic>
annevk: let me know if you have any thoughts on https://github.com/httpwg/http-extensions/issues/2907 . I'll probably default to Martin's preference absent other thoughts.
12:58
<annevk>
Domenic: I guess I would try to get away with it as it would seem annoying to adopt a different editorial style for the IETF, but it also doesn't matter too much.
17:11
<TabAtkins>
No, inline-block isn't one of the properties/values that magically creates a CB, so the CB will be generated by the a ancestor instead.
23:48
<annevk>
Yagiz Nizipli: can you explain why "https://{sub.}?example{.com/}foo" as input would throw? I think I end up with a host of {sub.}.
23:54
<Yagiz Nizipli>
I’m not sure. This is the only failing test on Node.js and Cloudflare Workers. I think this test is invalid.
23:54
<annevk>
I see. I think so too.
23:55
<annevk>
I don't think this fully resolves my concerns as to get here I do have a version of canonicalize a hostname that considers :test failure rather than just ignored input.