00:34
<gsnedders>
devsnek: the answer is basically "supporting them is an explicit non-goal". Like, if there's small, a-few-line patches that make stuff easier for you and no worse for browsers, go ahead and submit them, but we make no guarantee as a project that that won't regress.
03:07
<devsnek>
gsnedders: if a test doesn't need dom to run though
03:07
<devsnek>
like just testing the url constructor as an example
03:07
<devsnek>
couldn't wpt put the test in a js file instead and call it a day
03:17
<devsnek>
in the interest of standardising the ecosystem it seems like a pretty easy policy to adopt moving forward at least
03:17
<devsnek>
i'm sure plenty of people would be willing to rewrite old tests carefully
03:17
<devsnek>
its just a huge task for one person trying to implement something
04:08
<MikeSmith>
devsnek: seems worth raising an issue for in the wpt repo
04:09
<MikeSmith>
and wider discussion can happen there
04:09
<devsnek>
yeah I just wanted to guage it here first as 700 issues makes me nervous
04:10
<MikeSmith>
yeah
04:11
<MikeSmith>
one thing to keep in mind is that these days a lot tests are upstreamed to wpt from blink and gecko
04:12
<MikeSmith>
so I think we can’t ever expect that the devs writing those will be going out of their way to take non-browser runtimes into consideration
04:16
<devsnek>
I think of it like avoiding needless html
04:16
<devsnek>
good point though
06:13
<annevk>
devsnek: for URL in particular we keep tests in a JSON file precisely to allow reuse
06:13
<annevk>
devsnek: what gsnedders said is incorrect for a lot of stuff I work on
06:13
<annevk>
devsnek: I try to go out of my way to make tests reusable by non-browsers, by having a lot of the input/output expectations encoded in JSON
10:52
<tobie>
annevk: OK, reduced the issue on my side by serializing requests to wattsi.
10:52
<tobie>
annevk: Root cause seems to be that wattsi doesn't handle concurrent request properly and serves partially empty zip files in such cases.
10:54
<MikeSmith>
tobie: we should also investigate if we can fix that in wattsi then I guess
10:55
<MikeSmith>
if you can file an issue at https://github.com/whatwg/wattsi/issues
10:55
<annevk>
MikeSmith: I suspect that's an issue with the server setup
10:56
<MikeSmith>
oh ok
10:56
<MikeSmith>
oh this is the server wattsi?
10:56
<annevk>
Yeah
10:56
<MikeSmith>
ah OK
10:56
<annevk>
tobie: thanks
10:56
<tobie>
annevk: yes
10:57
<tobie>
annevk: where should I file it, then?
10:58
<MikeSmith>
tobie: https://github.com/whatwg/html-build/issues I reckon
10:58
<tobie>
annevk: do you know what changed that started causing this?
10:58
<annevk>
tobie: https://github.com/domenic/wattsi-server/issues/new
10:58
<tobie>
annevk: because this wasn't an issue before (though I has suspected this might be a problem when looking at how the server was designed last year)
10:58
<tobie>
annevk: thanks
10:58
<annevk>
tobie: not really, https://github.com/domenic/wattsi-server/commit/bb27268e85e9265bc84752742931cdaab99e9698 is the most recent change there
10:59
<annevk>
tobie: before that it hadn't changed for years
10:59
<annevk>
tobie: it could be that wattsi itself takes a little longer to run though so that's why you now notice it
11:00
<tobie>
annevk: yup, or some hardware changes>
11:00
<tobie>
?
11:00
<annevk>
yeah, dunno about that
11:00
<annevk>
seems unlikely, but who knows
11:00
<tobie>
annevk: the issue look like they're about a week old
11:01
<tobie>
annevk: so probably(?) related to the above change.
11:03
<tobie>
annevk: anyway. should be working now. Hopefully the new logging stuff I added to pr-preview will make the next debugging session not take the whole night. :-/
11:04
<annevk>
tobie: ugh, yeah let's hope not; thanks again
11:19
<tobie>
annevk, MikeSmith: issue filed: https://github.com/domenic/wattsi-server/issues/6
11:57
<JakeA>
annevk: help settle a dispute: https://notifications.spec.whatwg.org/#concept-language "which is a DOMString representing either a valid BCP 47 language tag or the empty string". Should it be "an empty string"?
11:57
<Ms2ger>
No, we consistently use "the"
11:58
<JakeA>
whuuuuuut
11:58
<Ms2ger>
There's only one
11:59
<JakeA>
Ms2ger: but, shouldn't it then be linked to where it's defined?
11:59
<JakeA>
Should I be writing "Let whatever be the 42"?
12:01
<Ms2ger>
"the number 42" works, sure
12:01
<Ms2ger>
Much better than "a number 42", in any case
12:01
<JakeA>
But is "Let whatever be 42" wrong?
12:01
<Ms2ger>
No
12:03
<JakeA>
I guess I still don't get why we use "the empty string" unless we're referencing an actual thing defined somewhere
12:04
<zcorpan>
it's no different from the string "foo"; it doesn't need a definition
12:06
<JakeA>
Is this to stress equality, whereas "an empty list" and "an empty list" are not equal?
12:07
<Ms2ger>
Maybe more mutability?
12:08
<JakeA>
So, immutable things are "the" rather than "an" (and "the" is presumed if it's grammatical to omit it)?
12:09
<devsnek>
annevk: true but the rest of the tests are still inside html
12:09
<devsnek>
including the part that uses that html
12:09
<devsnek>
iirc it uses xhr to grab it
12:09
<devsnek>
uses that json*
12:54
<annevk>
devsnek: it should be pretty easy to write your own wrapper, no?
12:54
<annevk>
devsnek: normally the requirements for the wrapper don't change, we just add to the JSON
12:55
<gsnedders>
JakeA: don't you intern the empty string?
12:56
<annevk>
JakeA: we don't have numbers formalized, but I expect let x be 42 will be the answer there
12:56
<annevk>
JakeA: it's the empty string because there's only one empty string
12:56
<devsnek>
annevk: https://github.com/web-platform-tests/wpt/blob/8791bed/url/url-constructor.html
12:56
<annevk>
JakeA: there's multiple strings, but only one that's empty
12:56
<devsnek>
there's a fair amount of not-using-the-json here
12:57
<annevk>
JakeA: a tag or the string "foo" (which we'd shorten to a tag or "foo" in typical usage)
12:57
<annevk>
I see now zcorpan also said this
12:58
<annevk>
devsnek: hmm yeah
12:59
<devsnek>
and I can copy it into another file
12:59
<devsnek>
but then what if there's a bug or something
12:59
<devsnek>
it works if I copy a few tests but that doesn't scale
12:59
<annevk>
devsnek: sure, we could figure out how to make these more reusable
13:00
<devsnek>
anyway I was gonna open an issue about it in a few
13:00
<annevk>
devsnek: did you look at the any.js/window.js format wpt supports? Would that work?
13:00
<annevk>
devsnek: sg
13:00
<devsnek>
I haven't heard of any.js or window.js
13:00
<devsnek>
I'll take a look
13:01
<annevk>
devsnek: https://web-platform-tests.org/writing-tests/testharness.html#auto-generated-test-boilerplate
13:01
<devsnek>
oh those
13:01
<devsnek>
yeah the goal would be to have more of that
13:02
<devsnek>
I wonder how cloudflare tests their workers for spec compliance
14:48
<devsnek>
annevk & MikeSmith & gsnedders https://github.com/web-platform-tests/wpt/issues/11277
16:00
<annevk>
ta
16:22
<devsnek>
annevk: I don't think 11277 is specific to URL, I just listed it as an example
16:23
<devsnek>
for instance EventTarget can be made almost spec compliant without a dom
16:23
<devsnek>
you just always have an empty list for bubbles and event capture
22:57
<TabAtkins>
I forget, was there any appetite for trying to get "async constructors" in WebIDL, so that `new DOMFoo()` can return a `Promise<DOMFoo>`?
22:57
<TabAtkins>
Or is the best practice intended to remain what you have to do currently - define it as having no constructor, and just expose a factory function?
23:02
<MikeSmith>
TabAtkins: about the highlighter, after the we last chatted about it here, I guess I assumed you were gonna be landing some change to the highlighter sources?
23:02
<MikeSmith>
or maybe I misunderstood
23:03
<TabAtkins>
No, I'm fixing it. Mostly done, but on my laptop which I accidentally left at home today. ^_^
23:03
<TabAtkins>
I'll try and push it tonight.
23:03
<MikeSmith>
hah
23:04
<MikeSmith>
thanks :)
23:04
<MikeSmith>
but clearly you need to get into the cloud, man :D
23:06
<MikeSmith>
devsnek: thanks for filing that issue. It seems to have already passed the Ms2ger bar, which is a pretty high bar ー so that’s a very good sign
23:07
<devsnek>
who is that
23:08
<TabAtkins>
A mysterious person in a mask, who appears when they're most needed...
23:08
<MikeSmith>
heh
23:08
<MikeSmith>
yes Ms2ger is many things
23:09
<devsnek>
to me its just one of those people who thinks they're too cool for a github avatar
23:09
<devsnek>
:P
23:09
<MikeSmith>
haha
23:10
<devsnek>
is anyone here pretty familiar with the url spec
23:10
<devsnek>
i have a weird thing with my implementation where it doesn't handle base urls properly if the scheme is file
23:11
<MikeSmith>
devsnek: you probably need annevk
23:11
<MikeSmith>
for that
23:11
<MikeSmith>
though there may be somebody else on teh channel right now who has implemented
23:12
<MikeSmith>
anyway as far as Ms2ger wpt, he is by far one of the most active contributorsーespecially in terms of reviews of PRs and enhancement requests for the infra bits and harness
23:12
<devsnek>
ic
23:12
<devsnek>
good to know
23:12
<devsnek>
the only other implementation of url i've seen is domenic's and i never see him around
23:12
<MikeSmith>
maybe Ms2ger actually wrote the initial testharness.js, can’t remember now
23:12
<MikeSmith>
eh?
23:12
<devsnek>
technically also node's but its written in c++
23:12
<MikeSmith>
Domenic is around here very often
23:13
<devsnek>
i'm not usually around here heh
23:13
<devsnek>
i spend more time in tc39
23:13
<MikeSmith>
Domenic is there too :)
23:13
<devsnek>
yeah i see him pop in every once in a while
23:15
<MikeSmith>
FWIW I maintain a fork of an implementation, for use in the HTML checker
23:15
<MikeSmith>
https://github.com/validator/galimatias
23:16
<MikeSmith>
but I try to touch that as little as possible and unfortunately it’s not in full conformance with the current URL spec
23:16
<devsnek>
mfw java
23:16
<MikeSmith>
:) yeah I know
23:17
<devsnek>
you will never know my pain 😢
23:17
<MikeSmith>
someday I am going to rewrite the entire checker in Rust
23:17
<devsnek>
i respect rust
23:17
<devsnek>
include_str ftw
23:18
<gsnedders>
MikeSmith: jgraham wrote testharness.js
23:18
<MikeSmith>
ah OK
23:18
<gsnedders>
early working names included goth.js
23:18
<MikeSmith>
gsnedders: oh he named it after you?
23:19
<gsnedders>
MikeSmith: so Opera had a department called EMO. myself and jgraham really wanted to call /something/ GOTH.
23:19
<gsnedders>
Y'know, like a Generic Opera/Open Test Harness.
23:19
<TabAtkins>
I like that I came in today with literally 9000 emails from the wpt repo, after the accidental signup. ^_^ It took gmail like ten minutes to archive all of them.
23:20
<gsnedders>
(in the end the rewrite of Opera's CI system became called GOTH)
23:26
<MikeSmith>
TabAtkins: about the #sysreq thing, I just now had github send invites for them to the w3c org
23:27
<TabAtkins>
Cool, thanks.
23:29
<jgraham>
GOTH had the nice property that OTH is Opera Test Harness, so it was easy to backronym a G
23:30
<astearns>
thanks, MikeSmith
23:30
<gsnedders>
MikeSmith: speaking of th.js, the origin story as I remember it is basically coming into work some day and jgraham being like "hey can you review this thing I wrote last night before I send it out to the HTML Testing TF?"
23:30
<jgraham>
But testharness.js is so called despite not being a harness because there was an earlier attempt with the name testrunner.js
23:30
<jgraham>
gsnedders: I don't remember that, but it could be true
23:31
<gsnedders>
jgraham: was testrunner.js zcorpan's thing?
23:32
<jgraham>
Maybe? I thought I wrote at least one version of that
23:33
<gsnedders>
I feel like my response to jgraham writing a new test harness was "*rolleyes*, another one?"
23:33
<gsnedders>
but I could be misremembering
23:35
<jgraham>
I thought that was your response to me writing code in general; "oh no, not again"
23:37
<gsnedders>
Well pretty much
23:37
<gsnedders>
"Did you write tests this time?"
23:44
<KiChjang>
question about window indexed getter https://html.spec.whatwg.org/multipage/window-object.html#windowproxy-getownproperty
23:45
<KiChjang>
does it only go 1-layer deep on the browsing context?
23:45
<KiChjang>
i.e. does it only check the child BCs of the current window and not its grandchildren?
23:45
<gsnedders>
yes, I'm 99% sure
23:48
<KiChjang>
gsnedders: hmm, the spec text doesn't really make this explicit though
23:48
<KiChjang>
that's why i was confused
23:48
<KiChjang>
"Set value to the WindowProxy object of the indexth document-tree child browsing context of document's browsing context, sorted in the order that their browsing context container elements were most recently inserted into document, the WindowProxy object of the most recently inserted browsing context container's nested browsing context being last."
23:48
<KiChjang>
especially on the part where it says "sorted in the order that their BC container elements were most recently inserted"
23:49
<KiChjang>
that makes me believe that it should go something like [child, grandchild, sibling]
23:49
<KiChjang>
since the grandchild is inserted before the the sibling