02:19
<domfarolino>
Domenic: briefly revisiting last night's conversation...since scripts "optionally" have a muted errors field (https://html.spec.whatwg.org/#muted-errors), does that mean that there really is no interop bug after all, because it isn't a "requirement" for browsers to mute errors from x-o scripts?
03:22
<annevk>
domfarolino: it is a req
03:23
<annevk>
domfarolino: I think that just means it is not always set, could be clearer
03:31
<domfarolino>
Ok I see thanks annevk
03:35
<domfarolino>
Would you consider a PR that either moves the word "optionally" down to the description as opposed to the title, or removes it altogether?
03:36
<domfarolino>
I'm wondering if "A flag which, if set, means" covers the "optionally" aspect of setting that flag, while preserving its requirement of existing nevertheless
07:08
<ondras>
hm
07:08
<ondras>
https://jsfiddle.net/3vx88jtj/1/
07:08
<ondras>
is this behavior standardized somewhere?
07:08
<ondras>
i.e. how canvas font sizes <1 are supposed to work with transforms?
07:12
<annevk>
domfarolino: yeah, a rewrite to a flag of sorts would make sense
07:13
<annevk>
domfarolino: sorry for the late reply, missed your follow-up
07:14
<TabAtkins>
ondras: Browsers are, in general, allowed to apply a minimum font size. See https://jsfiddle.net/3vx88jtj/2/
07:15
<TabAtkins>
(Mine applies a min of 12px.)
07:16
<ondras>
TabAtkins: based on my current experience (ff, chrome), the behavior is weird and inconsistent.
07:17
<ondras>
for instance, the resulting height is ~always the same, ff+chrome
07:17
<ondras>
for the whole input range of your fiddle
07:17
<ondras>
but the letter spacing jumps rapidly
07:18
<ondras>
and chrome fixes the ctx.font value on a minimum of "2px" for the rightmost 1/3 of the slider
07:18
<ondras>
while still maintaining the proper size of the rendered result
07:19
<ondras>
=> chrome's .font getter returns different values than those that are actually applied
07:19
<ondras>
anyway, apparently rendering text to a (highly) scaled canvas seems to be a large amount of pain
07:20
<ondras>
damn.
07:20
<TabAtkins>
Ah, you might not have a meaningful min; mine blows up pretty quickly as soon as you start moving the slider to the right.
07:21
<ondras>
my height is constant, the width/letterspacing jumps in an unusable fashion
07:21
<TabAtkins>
Yeah, font renderers don't really work on arbitrary floats; they all round to various precisions at various spots.
07:21
<ondras>
okay
07:22
<ondras>
sounds like I will have to cancel the transform for font rendering and compute it myself
07:33
<yoav>
annevk: when defining a method, is there an equivalent to ASSERT_UNREACHED()? Should I throw in cases that should not happen? (e.g. because callers should collapse potential-destination values to known values before they call the translation method)
07:43
<annevk>
yoav: see Infra, you can use Assert:
07:48
<yoav>
cool, thx!
07:49
<yoav>
so something like "Assert: this should never be reached."?
07:55
<annevk>
yoav: prolly better to assert before the branch
07:55
<yoav>
ok, makes sense
07:55
<TabAtkins>
Yeah, assert your preconditions. Failling the assert is a spec error, not a runtime error.
07:55
<annevk>
yoav: Assert: destination is not fetch or some such
07:56
<TabAtkins>
If it's a runtime error, then you do indeed need to throw; asserts might be useful afterwards to remind the spec reader what values are left over.
08:01
<annevk>
Asserts won't "run" after throw; throw terminates
08:07
<TabAtkins>
Right, I mean like "1. If |x| is a weird value, throw a TypeError. 2. Assert: |x| is a FooEnum value. 3. More stuff..."
08:09
<annevk>
Ah
08:12
<yoav>
annevk: https://github.com/whatwg/fetch/pull/547
08:12
<MikeSmith>
annevk: so getting back to HTML checking for the Encoding files, we want to run the checker if any .text files change or if the visualize.py file changes?
08:13
<yoav>
It's getting bikeshed errors regarding the linking of "preload destination". I'm not sure if it real errors or a bikeshed issue related to having a space as part of the linked term (there are other errors with space in them)
08:15
<TabAtkins>
There's definitely nothign wrong with ahving spaces in a term.
08:15
<annevk>
MikeSmith: .bs or visualize.py I suppose
08:16
<TabAtkins>
yoav: That said, I don't see "preload destination" in the ref database.
08:16
<annevk>
MikeSmith: hmm yeah, also addition of txt I guess
08:17
<MikeSmith>
or changes to the .txt files? I notice a recent commit that makes changes to them
08:17
<yoav>
TabAtkins: that's probably because I just made it up and didn't know I should also add it to a ref database :)
08:17
<yoav>
also s/preload destination/potential destination/
08:17
<TabAtkins>
Oh! Jeez, no wonder I was confused when reading the PR. ^_^
08:18
<annevk>
yoav: I can review later today, but I'd have the steps in opposite order; early return for fetch, then assert it's a destination, then return input
08:18
<yoav>
annevk: OK, I'll reverse them
08:18
<TabAtkins>
In the PR, you'll get a linking error because you're not defining a "potential destination" term; you're defining "potential-destination".
08:18
<annevk>
MikeSmith: yeah I suppose
08:18
<yoav>
TabAtkins: doh!
08:19
<yoav>
TabAtkins: Still getting the error after deleting the "-"
08:20
<TabAtkins>
...and replacing it with a space?
08:20
<yoav>
yeah
08:21
<TabAtkins>
Push the change; you shouldn't be having any trouble.
08:21
<annevk>
yoav: I don't think it's worth having a dfn for that
08:22
<annevk>
yoav: if you wanted to define such a term you'd define it as a superset of destination
08:22
<yoav>
annevk: OK, I'll remove it then
08:23
<TabAtkins>
Can replace it with just a |var| if you want the styling.
08:23
<yoav>
annevk: but we do need HTML to link to it later on. Can we do that without a dfn?
08:24
<TabAtkins>
No.
08:25
<yoav>
TabAtkins: pushed the change in the mean time. I still see the error (but I'm sure I'm holding it wrong :D)
08:31
<TabAtkins>
I'm extremely confused by what's going on here.
08:32
<yoav>
TabAtkins: confused by my patch, or by the error?
08:34
<annevk>
yoav: then you need to define it as a distinct type
08:34
<TabAtkins>
The error.
08:35
<TabAtkins>
I'll check more on this before bed, in heading to dinner now.
08:37
<yoav>
TabAtkins: Thanks :)
08:37
<yoav>
annevk: pointers to an example of defining as a distinct type?
08:40
<annevk>
yoav: see eg dfn of method
08:40
<annevk>
yoav: X is "fetch" or a destination
08:41
<annevk>
yoav: on mobile due to sick kid btw
08:41
<annevk>
Hence poor latency
08:43
<yoav>
annevk: looking, and no worries RE latency. I know what it's like
08:49
<yoav>
TabAtkins: Split out the definition. Now I'm longer seeing the error
08:50
<yoav>
annevk: uploaded. Let me know what you think (when you have time)
09:03
<TabAtkins>
Oh shoot, I realize what's up with the error now.
09:04
<TabAtkins>
Looks like I don't special-case for=/ on a dfn to mean "no for value". So it was registering it with a for of /, which you can't actually specify on a link.
09:06
<TabAtkins>
When you split out the definition, you also just removed the for attribute from the dfn, which resolved the issue.
09:06
<TabAtkins>
This is a Bikeshed bug, tho.
09:17
<yoav>
TabAtkins: OK, cool. Happy to find bikeshed bugs by doing things you normally wouldn't :D
10:00
<jochen__>
does the fetch spec say something about what should happen when the promise returned by fetch is resolved, but there is no scheduled work on the event loop (and so technically, we don't enter a microtask checkpoint)?
10:01
<annevk>
jochen__: HTML would say something about that, but that can't really happen, since fetch resolves the promise from a task
10:35
<annevk>
jochen__: in fact, promises never resolve without a task being involved
10:54
<jochen__>
ah, found it
14:32
<tobie>
TabAtkins: while you're around and fixing BS bugs…
14:33
<tobie>
TabAtkins: I'm having an issue where BS seems to rewrite an inline SVG
14:33
<tobie>
TabAtkins: removing the namespace in the process, which then gets rejected by echidna's HTML validator.
14:35
<MikeSmith>
if that is about the xlink:href vs href I fixed that in the HTML checker at the end of last week
14:35
<MikeSmith>
if it’s about some other error I can fix that too
14:36
<tobie>
MikeSmith: how do you know this?
14:36
<MikeSmith>
assuming it’s another case where the SVG changed the doc-confoormaces requirements in SVG2
14:37
<tobie>
MikeSmith: I have no idea. This thing displays is the limit of my understanding of namespaces in SVG
14:37
<tobie>
MikeSmith: can I point you to the error, BS source and output?
14:37
<MikeSmith>
well as far as SVG checking I can make the checker do whatever creates the least problems for people trying to get real work done
14:37
<MikeSmith>
tobie: sure
14:37
<tobie>
MikeSmith: source: https://github.com/w3c/sensors/blob/9335c1fa027fe309a3fd13b98914b7d479968252/index.bs#L735-L800
14:38
<MikeSmith>
no version of the SVG spec has ever clearly stated actual doc-conformance requirements consistently anyway
14:38
MikeSmith
looks
14:38
<tobie>
MikeSmith: echidna error: https://labs.w3.org/echidna/api/status?id=916cf371-4630-491c-abd6-c663b65e6bbd
14:39
MikeSmith
looks again
14:39
<tobie>
MikeSmith: validator error: https://validator.w3.org/nu/?doc=http://owl.w3.org//916cf371-4630-491c-abd6-c663b65e6bbd/Overview.html
14:40
<tobie>
MikeSmith: Bikeshed output of SVG: https://gist.github.com/tobie/d4a0e43cc7781fec2daa933674d099f5
14:40
<MikeSmith>
ah I think that is a bikeshed bug
14:41
<MikeSmith>
<svg height="79pt" viewBox="0.00 0.00 351.00 78.51" width="351pt" xlink="http://www.w3.org/1999/xlink"; xmlns="http://www.w3.org/2000/svg">;
14:41
<tobie>
Yup: the namespaces are all gone
14:41
<MikeSmith>
I guess that should be xmlns:xlink="http://www.w3.org/1999/xlink";
14:42
<MikeSmith>
so yeah I can'
14:42
<MikeSmith>
*I can’t really fix that in the checker
14:42
<MikeSmith>
because there is no “xlink” attribute defined anywhere
14:44
<tobie>
Filing an issue against BS. Thanks for the help!
14:45
<MikeSmith>
cheers
14:53
<tobie>
TabAtkins/MikeSmith: for reference: https://github.com/tabatkins/bikeshed/issues/1029
15:19
<tobie>
@jyasskin, @mounir, others: what are your thoughts on using "user triggered activation" as "information about the user’s intent" to determine whether to prompt or grant permission?
15:33
<tobie>
Maybe @annevk also ^
15:35
<tobie>
Here's the PR on this topic: https://github.com/w3c/sensors/pull/207
15:48
<annevk>
tobie: what other information do you have?
15:57
<tobie>
annevk: that's a good question.
16:04
<jyasskin>
tobie: It's very easy to trick a user into providing activation, so it's not a reliable way to infer intent. I like demanding it for permission prompts because it helps avoid a popup-by-surprise and possibly clickjacking, but even that's gotten objections for the case where the entire point of a URL is to use a certain permission.
16:06
<jyasskin>
tobie: I'm having trouble following the English in that PR. Is it just saying that some readings are only very slightly sensitive, so we don't need actual user consent to give them out, just evidence that the user has noticed the page?
16:08
<jyasskin>
Ojan has been looking at some of that sort of feature for interventions. e.g. https://groups.google.com/a/chromium.org/d/topic/blink-dev/MRWIaGY4Txg/discussion for beforeunload and https://groups.google.com/a/chromium.org/d/topic/blink-dev/51WbTwn0M_Y/discussion for autoplaying audio
16:24
<annevk>
jyasskin: I think the objection was more involved than that
16:25
<annevk>
jyasskin: the objection was that if you don't persist the permission, the UX becomes really bad if the permission prompt effectively requires two interactions
16:25
<annevk>
jyasskin: so by requiring user interaction, you effectively require persisting the permission
16:25
<jyasskin>
annevk: Was there an example of that badness for pages that weren't requesting on load?
16:27
<jyasskin>
e.g. it's probably a good thing to make foonews.com wait to ask for your location until after you've interacted.
16:27
<tobie>
jyasskin: so the sensitiveness of the readings is highly debatable AND depends on the kind of sensors
16:27
<annevk>
jyasskin: not sure, I wasn't too closely involved
16:29
<jyasskin>
tobie: I think it'd be totally reasonable for some sensors to decide that they lie in that intermediate-sensitivity region, but I'm uncomfortable saying that the activation conveys user intent.
16:29
<jyasskin>
Or, I suppose, uncomfortable saying that it conveys intent to grant that particular sensor. It's intent to interact with the page.
16:30
<jyasskin>
tobie: I'll comment.
16:30
<tobie>
jyasskin: thank you
16:31
<tobie>
annevk: to answer your previous question, I don't think we have much info to determine user intent.
16:32
<tobie>
annevk: I'm especially concerned about malicious use of motion sensors on drive-by sites.
16:34
<annevk>
tobie: you might have noticed that we're removing these sensors from Fx
16:34
<tobie>
annevk, jyasskin: I would considered tying sensor access to PWA installed status or similar. The use cases really involve app status, not drive-by websites.
16:34
<annevk>
tobie: it's unclear if we'll add them back at this point, given that asking the user about them seems like a hard problem
16:34
<tobie>
annevk: the ambient light stuff.
16:35
<tobie>
annevk: but are you going to remove also the motion sensors?
16:35
<jyasskin>
tobie: Installation definitely indicates user intent.
16:35
<annevk>
I don't know
16:35
<tobie>
jyasskin: I agree.
16:35
<tobie>
annevk: they have similar issues but much more interesting use cases (indoor navigation, gaming, WebVR, etc.)
16:35
<annevk>
I'm not a big fan of the whole PWA thing, it's not very webby
16:36
<tobie>
annevk: well, it's much more webby than any of the previous iteration we've seen.
16:43
<MikeSmith>
annevk: when you have time please check https://stackoverflow.com/questions/44121783/fetch-api-default-cross-origin-behavior/44125919#44125919 and comment/correct/answer
16:44
<tobie>
jyasskin: filed https://github.com/w3c/sensors/issues/211
16:54
<jyasskin>
annevk: FWIW, an installed PWA is a bookmark with better UI. We couldn't infer intent from bookmarks because users tended to accumulate them indefinitely, but we think there's some pressure to "uninstall" PWAs that you're not using, since they clutter your launch screen, so we're more willing to infer intent from them.