04:47
<annevk>
I wonder what made Twitter show the trailing slash in profile URLs
08:14
<heycam>
MikeSmith, ping
08:25
<MikeSmith>
heycam: here now
08:26
<heycam>
MikeSmith, hi! can you add someone to the right github group so they can push changes to the SVG spec?
08:26
<heycam>
MikeSmith, github username is boggydigital
08:27
<heycam>
MikeSmith, I think the group name is "svgwg members" or something
08:27
<MikeSmith>
cool username
08:27
MikeSmith
checks now
08:28
<MikeSmith>
heycam: ok added just now
08:29
<heycam>
MikeSmith: cheers!
08:57
<annevk>
Domenic: beverloo: abarth: belated happy b-day!
09:05
<MikeSmith>
triplets
09:05
<MikeSmith>
speaking of abarth I wonder where or where has our abarth gone these days
09:06
<MikeSmith>
he seems to not be working on web-platform stuff as much these days
09:06
<MikeSmith>
at least not publicly
09:06
<MikeSmith>
I think the web platform misses him
09:09
<MikeSmith>
so I'm wondering what level of implementor interest does the current draft at http://w3c.github.io/filesystem-api/ have
09:10
<MikeSmith>
I see that Domenic filed an issue against it a couple weeks ago https://github.com/w3c/filesystem-api/issues/4
09:11
<MikeSmith>
so I would assume that means it's still a relevant spec with some promise
09:15
<arunranga>
Hi MikeSmith: I’d say parts of it are relevant including figuring out directory upload stuff.
09:16
<MikeSmith>
oh hey arunranga-afk !
09:16
<MikeSmith>
long time no see
09:17
<arunranga-afk>
oh hai MikeSmith :)
09:17
<MikeSmith>
arunranga-afk: I've not seen so much recent discussion about it but then I'm not on script-coord any more so maybe there's been some there
09:18
<MikeSmith>
anyway I hope we can finally get this right and get some implementor momentum behind it
09:18
arunranga-afk
hopes
09:18
<MikeSmith>
I'm glad you're still on it
09:19
<arunranga-afk>
MikeSmith, there’s been some public-script-coord discussion about having certain web platform types, including that old tin can, FileList, being converted to Array-types.
09:20
<MikeSmith>
ah OK
09:20
<MikeSmith>
I guess that's the right place now to have those discussions
09:40
<MikeSmith>
https://twitter.com/ISOTC211/status/608567032506912768 "The @W3C process is open|: drafts are published, mailing list available to public, etc... Quite different from @opengeospatial and #ISOTC221"
09:44
<MikeSmith>
in https://developer.apple.com/videos/wwdc/2015/?id=501 Brent Fulgham talks about "people coming to JavaScript from languages like Swift" (in the context of saying those people find JS's "prototype-based syntax has been somewhat less accessible" to such people
09:58
<ondras>
https://pbs.twimg.com/media/CGvdAOBUIAEQCUE.jpg:large
10:01
<annevk>
MikeSmith: what is open|: supposed to mean?
10:02
<annevk>
ondras: I don't get why he refers to the friend as crazy in the third panel after just saying he isn't
10:16
<MikeSmith>
annevk: maybe that tweeter meant to type an explanation point instead of that pipe?
10:16
<MikeSmith>
aren't they the same key on english keyboards
10:17
<MikeSmith>
oh I guess not
10:32
<ondras>
annevk: yeah. well, I am not an author, just an twitter->irc proxy
10:32
<ondras>
*a
10:35
<MikeSmith>
inconsistency is funny
11:07
<annevk>
philipj: if you want to experiment with lowercasing createAttribute() input, that'd be great...
11:08
<annevk>
philipj: but currently no browser does that so maybe that's a bridge too far?
11:15
<philipj>
annevk: I don't know, would that be a big win if it would work out?
11:16
<philipj>
annevk: I'm not sure how to estimate the risk of it without extra bookkeeping
11:16
<annevk>
philipj: you can do atom comparison rather than string comparison
11:16
<annevk>
philipj: also, seems like Chrome does not always use case-insensitive matching... e.g. removeAttribute does something else?
11:16
<annevk>
philipj: per comments in the Gecko bug
11:18
<philipj>
but when you're doing lookup, you're not traversing the attributes and comparing
11:18
<philipj>
sorry, wasn't finishing typing that
11:18
<philipj>
I'm just guessing that there's a hash map, and that hash map could be case insensitive without storing the strings themselves in a normalized case
11:18
<philipj>
maybe?
11:18
<annevk>
sure
11:19
<annevk>
I guess the more interesting thing is that not even case-insensitive will give us the same behavior, since Chrome does not share that algorithm across all methods
11:20
<annevk>
philipj: oh also, createAttribute("test:test") is different in Chrome/Safari vs Firefox/IE & DOM
11:20
<philipj>
annevk: and you're right, removeAttribute() does look different, it lowercases the value if it's an HTML Element and Document
11:20
<philipj>
annevk: and so does hasAttribute actually
11:21
<annevk>
but not getAttribute()?
11:21
<annevk>
meh
11:21
<philipj>
a weird mix of lowercasing and case-insensitive comparison, this is
11:21
<annevk>
yes
11:21
<annevk>
seems like we should do something consistent at least
11:22
<philipj>
well, getAttribute() seems to set a |shouldIgnoreCase| which is used to do a case-insensitive compare when iterating over the attributes
11:23
<philipj>
so at least Blink doesn't do the hash table thing, I guess there are too few attributes on average for it to be worth it
11:23
<philipj>
I agree this is pretty strange and inconsistent
11:25
<philipj>
how closely have you studied Gecko's and IE's black-box behavior? any hunch as to what state would be easiest to reach interop on?
11:26
<annevk>
Gecko is problematic since we changed
11:26
<annevk>
IE seemed to be mostly aligned with Chrome/Safari
11:26
<annevk>
|shouldIgnoreCase| seems easiest
11:26
<philipj>
right, did you just revert the change or is there now a old-Gecko vs. new-Gecko behavior to consider?
11:26
<annevk>
We haven't reverted the change yet
11:26
<annevk>
We need to decide on something though before we ship
11:26
<philipj>
did it reach stable and break stuff?
11:27
<annevk>
No, broke stuff earlier on
11:27
<annevk>
So now we need to figure out what to do
11:27
<philipj>
ok, that's a pretty good indication it's not going to fly. what was the attempted behavior? to lowercase like the spec says?
11:28
<annevk>
Yeah, but we did not attempt lowercasing createAttribute()
11:28
<annevk>
The cases that surfaced would have worked if that lowercased, but there's probably other cases that would break
11:28
<annevk>
IE seems to be more consistently case-insensitive
11:28
<annevk>
At least given https://bugzilla.mozilla.org/show_bug.cgi?id=1165851#c32
11:29
<annevk>
So making everyone do that seems like the most trivial change
11:29
<annevk>
The prettiest change would be lowercasing createAttribute()
11:29
<philipj>
there's really no way to measure the risk of lowercasing the input, as there's no way to track how the string returned by e.g. element.attributes[0].localName is used
11:29
<annevk>
yeah
11:29
<annevk>
:/
11:30
<philipj>
but wait, in an HTML document, should element.setAttribute('FOO', 'bar') result in an element with localName 'FOO'?
11:31
philipj
tries
11:31
<annevk>
nope
11:31
<annevk>
different code path
11:31
<philipj>
so where should the lowercasing go in the hypothetical store-as-normalized go?
11:32
<annevk>
philipj: step 1.5 of https://dom.spec.whatwg.org/#dom-document-createattributelocalname would do that
11:33
<philipj>
oh, so the extent of the compat risk is just when you manually create attribute nodes?
11:33
<annevk>
(at which point we might introduce some kind of abstract "create an attribute" operation that does all the work)
11:33
<annevk>
philipj: yeah
11:33
<annevk>
afaict that's the only place that does not lowercase
11:34
<philipj>
well, that actually doesn't sound too crazy
11:40
<philipj>
the relevant use counter is https://www.chromestatus.com/metrics/feature/timeline/popularity/111 at ~0.13%
11:41
<annevk>
I left a comment in the bug suggesting this alternative path
11:42
<philipj>
however, if the true justification for trying this is performance, perhaps someone should verify that it's really going to be faster to lowercase the input and do case-sensitive compares than to just do case-insensitive compares in the loop?
11:46
<annevk>
philipj: I don't think perf is a great argument, it would mostly be consistency
11:46
<philipj>
what was Gecko's old behavior?
11:46
<annevk>
philipj: though perhaps perf is important for Selector matching
11:47
<philipj>
perf is pretty important in this context though, don't want Gecko implementing this new model and then we can't land it in Blink because there happens to be a perf test that regresses
11:48
<philipj>
oh wait, let me see what setAttribute does
11:49
<philipj>
I'm still a bit confused, clearly setAttribute already does the lowercasing, and that's the point where one should be careful
11:49
<annevk>
philipj: I think per https://bugzilla.mozilla.org/show_bug.cgi?id=1075702 we might have lowercased for setNamedItem and friends
11:50
<philipj>
I link to think of all other APIs as aliases for setAttribute(NS) and getAttribute(NS), does that match your thinking?
11:50
<annevk>
philipj: but not createAttribute(), which would bem ore logical
11:50
<philipj>
s/link/like/
11:50
<annevk>
not really
11:51
<philipj>
no? so instead all the web-exposed APIs are entry points into the same underlying algorithm?
11:51
<annevk>
yeah, they all share a bunch of logic
11:52
<philipj>
so, anyway, the important point is that it's strange if say setAttribute() has different rules for case-folding than say setting Attr.value
11:52
<philipj>
as long as that's not the case, it's fine
11:53
<annevk>
setAttribute() has different rules from createAttribute()
11:53
<annevk>
the value is never normalized
11:53
<annevk>
the problem here is around attribute names
11:54
<philipj>
sorry, I was thinking about changing the attribute name, but obviously you can't do that via Attr
11:55
<philipj>
so are setAttribute(), setAttributeNS(), createAttribute() and createAttributeNS() the only entry points for scripts to create attributes, other than via the parser a la innerHTML?
11:57
<Ms2ger>
I believe that's correct
11:58
<philipj>
well, then since the parser already normalizes the case, then trying to close that last hole that is createAttribute() does sound pretty good
11:59
<philipj>
however, this does mean that for setAttributeNS(namespace, 'FOO', value) the resulting Attr would have localName 'FOO', correct? and getAttribute('FOO') would fail to return that value, where it would currently
12:00
<annevk>
philipj: in Gecko that has always failed to return a value
12:00
<annevk>
philipj: not sure about other browsers
12:01
<annevk>
What Gecko did previously as far as I can tell is normalize case during setAttributeNode / setNamedItem... Ms2ger?
12:01
<philipj>
annevk: that does work in Blink currently
12:01
<Ms2ger>
I can look if you find me the bug that changed it...
12:01
<annevk>
philipj: yeah, and removeAttribute() does not
12:02
<annevk>
Ms2ger: https://bugzilla.mozilla.org/show_bug.cgi?id=1075702
12:02
<philipj>
annevk: same in IE11
12:02
<philipj>
don't know, given that it never worked in Gecko it could work out
12:02
<annevk>
philipj: I'm not worried about that though, seems like the smallest of all risks
12:03
<philipj>
annevk: what kind of code are you most worried about breaking?
12:03
<annevk>
philipj: attr.name == "FOO"
12:04
<philipj>
annevk: where "FOO" comes from document.createAttribute("FOO")?
12:04
<annevk>
yes
12:05
<philipj>
ok, would it be of any help to measure how often lowercasing the name in createAttribute() results in a different string?
12:05
<philipj>
as an upper limit of breakage
12:05
<philipj>
it would be a few months to get data, so if you're in a hurry it won't help you
12:05
<annevk>
Maybe. I think given what Gecko did before lowercasing is probably sound
12:06
<annevk>
Since the only code that would break is code that checked the name before appending the attribute
12:06
<annevk>
Since appending it lowercased the name in Gecko
12:11
<philipj>
oh, so it was setAttribute that would change the case?
12:14
<philipj>
one difference if doing it in createAttribute is that you don't yet know if it'll be attached to an HTML element, so the conditions won't be exactly the same
12:14
<philipj>
but that's probably fine
12:16
<philipj>
well, keep me posted on what you want to try in Gecko and if you change the spec for document.createAttribute(), in which case I'll add a use counter to gague if that'll be safe
12:16
<annevk>
philipj: setAttribute != setAttributeNode
12:17
<annevk>
I think I'll suggest to bz that we lowercase for createAttribute(), if he comes online again
12:17
<philipj>
annevk: uh, yes, I mean setAttributeNode(document.createAttribute('FOO'))
12:26
<MikeSmith>
annevk: I just now reverted that change I made to github/xrefs that added the IETF Origin spec
12:26
<annevk>
ta
12:37
<philipj>
annevk: https://bugzilla.mozilla.org/show_bug.cgi?id=1165851#c36
12:55
<JonathanNeal>
Where would be the best place for someone to make a suggestion like extending RegExp to include a RegExp.escape function ala http://discourse.specifiction.org/t/regexp-escape-str/832
12:55
<JonathanNeal>
It would seem useful to provide some direction, like contact so-and-so or write an email to such-list.
12:56
<Ms2ger>
es-discuss
13:18
<JonathanNeal>
Thanks, Ms2ger!
13:19
<Sebmaster>
annevk: i think i dont get it, why would it return null?
13:21
<annevk>
Sebmaster: read step 2 of https://url.spec.whatwg.org/#dom-urlutils-origin
13:21
<Sebmaster>
ohhh
13:22
<Sebmaster>
so you serialize the GUID, which is not a scheme, host, port tuple
13:22
<annevk>
right
13:22
<annevk>
Sebmaster: I filed https://www.w3.org/Bugs/Public/show_bug.cgi?id=28788 though to get HTML a little clearer on this
13:23
<Sebmaster>
is the GUID ever public then?
13:23
<annevk>
Sebmaster: it should just say "if origin is an opaque identifier, return 'null'"
13:23
<annevk>
Sebmaster: nope
13:23
<annevk>
Sebmaster: neither is the alias concept
13:23
<Sebmaster>
what're aliases?
13:23
<Sebmaster>
I havent read about those anywhere
13:24
<annevk>
Sebmaster: read HTML's definition of what an origin can be
13:25
<annevk>
Sebmaster: you encounter alias in the DOM, with <iframe> and such
13:25
<Sebmaster>
huh, wow
13:25
<Sebmaster>
there's so much we still have to get into jsdom :/
13:27
<Sebmaster>
Thanks, annevk
14:25
<darobin>
Sebmaster: FWIW you're doing awesome work with jsdom, there's always more but keep it up :)
14:29
<Sebmaster>
darobin: thanks!
14:36
<JonathanNeal>
mathiasbynens: thank you for that ticket. Good, someone solved this five years ago.
14:36
<mathiasbynens>
JonathanNeal: well, not really, it’s still not being standardized
14:37
<mathiasbynens>
baby steps though :P
14:37
<JonathanNeal>
“The tree of features must be refreshed from time to time with the blood of polyfills and new threads.”
14:42
<MikeSmith>
heh
14:56
<hsivonen>
annevk: have you checked whether input methods in common use in Hong Kong and Taiwan produce astral characters and not PUA characters these days for the astral characters in Big5?
14:57
<annevk>
no
14:57
<hsivonen>
annevk: it appears that Windows 8.1 comes with font coverage for the whole of Encoding Standard Big5 but Ubuntu does not (at least not by default in an en-US install)
14:57
<annevk>
philipj might have
14:57
<hsivonen>
annevk: ok. that's a possible source of risk, then
15:01
<smaug____>
any amazon employees here?
15:02
<annevk>
smaug____: hey!
15:02
<annevk>
smaug____: so about web components
15:02
<smaug____>
annevk: yes, I pinged yesterday
15:02
<annevk>
smaug____: I think the only thing that was discussed is instead of an imperative API move back to the slots proposal
15:02
<smaug____>
(sorry, been offline/online unusual times because of uncle-duties)
15:02
<annevk>
smaug____: since everyone but Google was okay with that, and now Google is too
15:03
<smaug____>
right
15:03
<smaug____>
but there isn't really a proper slots proposal yet, right?
15:03
<smaug____>
I mean something which truly explain what would be spec'ed
15:04
<smaug____>
including when distribution happens (but I assume that it just sync)
15:04
<smaug____>
s/it/is/
15:06
<annevk>
smaug____: https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Slots-Proposal.md
15:08
<annevk>
hmm, new API that returns a NodeList...
15:16
<smaug____>
annevk: ah...
15:16
<smaug____>
doesn't explain when distribution happens
15:17
<annevk>
smaug____: right, that's still left up to the UA
15:17
<annevk>
I have somewhat mixed feelings about this...
15:41
<philipj>
hsivonen: I didn't check any IMEs
15:43
<philipj>
I would guess that the most common ones are Google pinyin and Sogou pinyin
15:43
philipj
gotta go
17:14
<dglazkov>
annevk, smaug____: going to hack on this with rniwa today. Hopefully, will flesh this out a bit more.
17:55
<annevk>
dglazkov: cool
17:57
<dglazkov>
annevk: on NodeList, please patch it up the way you like it
17:57
<dglazkov>
I was just copying stuff from the current spec
17:57
<annevk>
will do
21:02
<wanderview>
JakeA: ping
21:05
<JakeA>
wanderview: hey, winding down for the night, but can pick up whatever in the morning
21:05
<wanderview>
np, I just realized I have to run in a minute as well
21:05
<wanderview>
sorry for the late ping
21:27
<TabAtkins>
annevk: Re the simpsons cartoon, that's because it's what Troy McClure said in the episode (modulo JS stuff, obvs)