01:26
<Domenic>
Hey folks! I'm playing around with module scripts and I see that a module script struct is being passed to EcmaScript and back through a ParseModule.[[HostDefined]] item. I'm wondering if that is done by value or by reference. More explicitly, if I later change the module script struct, would that change be reflected when grabbing that ParseModule.[[HostDefined]]?
We generally treat these things as "by reference". On the other hand, I'm not sure what fields of module scripts are meant to be mutable...
04:26
<Yoav Weiss>
Domenic: I'm adding a new item that contains the resolved URL. I'll upload a draft for early review soonish
08:22
<Yoav Weiss>
Is there a way to run conformance checks locally? I'm seeing them failing on the bots.. https://github.com/whatwg/html/actions/runs/10158385321/job/28090331154?pr=10528
08:23
<Yoav Weiss>
I tried to run java -Xmx1g -jar ./vnu.jar --skip-non-html "$HTML_OUTPUT" directly but that fails due to lack of Java installed.. I guess I can get it running through the docker build?
08:26
<sideshowbarker>
https://github.com/validator/validator/releases has standalone binaries you can download that don’t require a Java environment
08:26
<sideshowbarker>
but you can also use curl to send the document to the web-based checker
08:28
<sideshowbarker>
https://github.com/validator/validator/wiki/Service-»-Input-»-POST-body#examples
08:28
<sideshowbarker>
curl -H "Content-Type: text/html; charset=utf-8" \
    --data-binary @FILE.html \
    https://validator.w3.org/nu/?out=gnu
08:33
<Yoav Weiss>
I'm getting a 502..
08:33
<Yoav Weiss>
for curl -v -H "Content-Type: text/html; charset=utf-8" --data-binary "@output/index.html" "https://validator.w3.org/nu/?out=gnu
08:36
<sideshowbarker>
hmm, it’s working for me
08:37
<sideshowbarker>
maybe open https://validator.w3.org/nu/ in a browser first?
08:37
<sideshowbarker>
W3C has some Cloudflare abuse-mitigation thing in place
08:38
<sideshowbarker>
if you have your source committed to a PR branch, I can try checking that out
08:38
<Yoav Weiss>
In the browser I'm getting a "HTTP ERROR 400 Resource size exceeds limit."
08:39
<Yoav Weiss>
https://github.com/whatwg/html/pull/10528/files
08:39
sideshowbarker
tries now
08:40
<sideshowbarker>
building from your patch now
08:42
<Yoav Weiss>
I already found a few issues based on the CI messages, just wanted to iterate over fixing them locally, rather than on the bots
08:44
<sideshowbarker>
It may be that I need to bump the size limit
08:45
<sideshowbarker>

lord, what is all this stuff?

   Compiling proc-macro2 v1.0.60
   Compiling quote v1.0.28
   Compiling libc v0.2.146
   Compiling parking_lot_core v0.9.8
   Compiling lock_api v0.4.10
   Compiling serde v1.0.164
   Compiling syn v1.0.109
   Compiling memchr v2.5.0
   Compiling tokio v1.28.2

What part of the build needs to be compiling binaries?

08:47
<sideshowbarker>

Due to whatever that stuff is, my local spec build is failing:

  = note: ld: library 'System' not found
          cc: error: linker command failed with exit code 1 (use -v to see invocation)

So, trying a remote spec build now

08:48
<Yoav Weiss>
Uploading a few fixes soonish..
08:49
<sideshowbarker>
What’s the size of your local output/index.html file?
08:50
<sideshowbarker>
I currently have the maximum file size for the web-based checker set to 12MB
08:52
<Yoav Weiss>
13.7MB
08:52
<sideshowbarker>
aha
08:52
<Yoav Weiss>
yeah..
08:52
<sideshowbarker>
OK, gimme a minute
08:59
<sideshowbarker>
Yoav Weiss: please try with curl again now
09:01
<Yoav Weiss>
Yay! (I'm still getting conformance errors, now to fix them)
09:02
<Yoav Weiss>
Might be worthwhile to document that curl command in the html-build instructions
09:07
<Yoav Weiss>
OK, the remaining conformance issues seem to be non-blocking and aren't related to my change, but to " <table class=jake-diagram><thead><tr><td><th class=step>0<th class="step current">1<th class=step>2<th class=step>3<th class=step>4<tbody><tr><th><code>top</code><td colspan=3 class="doc-0 current next-is-same-doc">/t-a<td colspan=1 class="doc-0 prev-is-same-doc">/t-a#foo<td colspan=1 class=doc-1>/t-b<tr><th><code>frames[0]</code><td colspan=1 class=doc-2>/i-0-a<td colspan=3 class="doc-3 current">/i-0-b<tr><th><code>frames[1]</code><td colspan=2 class="doc-4 current">/i-1-a<td colspan=2 class=doc-5>/i-1-b</table>"
09:08
<Yoav Weiss>
One of the rows has 5 columns rather than 6
09:13
<Yoav Weiss>
That's potentially WAI: https://html.spec.whatwg.org/multipage/document-sequences.html#jake-diagrams
09:13
<Yoav Weiss>
but maybe you can tell a table that a certain cell is empty. Dunno tables well enough
09:23
<sideshowbarker>
Well, even if it’s in WAI, it’s also a requirement in the HTML spec itself — I think
09:24
<sideshowbarker>
if not, it should just a warning at best, rather than an error
09:25
<sideshowbarker>
Are redirects cacheable?
09:26
<sideshowbarker>
Or more specifically, do Firefox/Safari/Chrome cache them?
10:10
<zcorpan>
sideshowbarker: I think so, at least 301/308
10:20
<sideshowbarker>
Ah yeah, makes sense for those at least, of course
10:30
<Domenic>
if not, it should just a warning at best, rather than an error
It's an info-level output, which we've been ignoring, because it's WAI.
10:31
<Domenic>

lord, what is all this stuff?

   Compiling proc-macro2 v1.0.60
   Compiling quote v1.0.28
   Compiling libc v0.2.146
   Compiling parking_lot_core v0.9.8
   Compiling lock_api v0.4.10
   Compiling serde v1.0.164
   Compiling syn v1.0.109
   Compiling memchr v2.5.0
   Compiling tokio v1.28.2

What part of the build needs to be compiling binaries?

It's rust :). It compiles it the first time.
11:25
<Yoav Weiss>
sideshowbarker: https://github.com/whatwg/html/pull/10530 to fix the diagram conformance issues
14:41
<zcorpan>
annevk or Domenic : is something blocking https://github.com/whatwg/html/pull/5841 from landing? It seems there's interest to implement in Gecko
18:54
<sideshowbarker>
About the requirements in the Fetch spec for caching responses, it seems that what the spec requires when the UA gets a 30x redirect is that the 30x response itself gets cached, prior to the UA following the redirect.
19:13
<sideshowbarker>

That is what seems to follow from https://fetch.spec.whatwg.org/#ref-for-concept-http-network-or-cache-fetch, where this part comes first:

Set response and internalResponse to the result of running HTTP-network-or-cache fetch given fetchParams.

…which is what calls into https://fetch.spec.whatwg.org/#ref-for-response.cacheability, which says this:

Store httpRequest and forwardResponse in httpCache, as per the "Storing Responses in Caches" chapter of HTTP Caching. [HTTP-CACHING]

But, all that happens before https://fetch.spec.whatwg.org/#ref-for-redirect-status②, which is this:

If internalResponse’s status is a redirect status: … Set response to the result of running HTTP-redirect fetch given fetchParams and response.

19:14
<sideshowbarker>
So… that seems wrong. It doesn’t seem to be what any existing UAs actually implement.
19:18
<sideshowbarker>
Specifically, UAs don’t cache the 301, 302, 303, 307, and 308 responses themselves — instead they follow the redirects and then cache the response after following the redirect (at least in the case of the 301 and 308 responses)
19:20
<sideshowbarker>
In other words, faithfully/conformantly implementing the spec requirements for this would not seem to result in the behavior anyone would expect, nor match what existing UAs actually do
19:20
<sideshowbarker>
…as far as I can see