03:36
<MikeSmith>
https://www.w3.org/community/groups/proposed/#bgsync
03:37
<MikeSmith>
needs one more person "sponsor" creation of the group
03:38
<MikeSmith>
anybody know if Josh Karlin uses IRC
05:41
<MikeSmith>
Hixie: at https://html.spec.whatwg.org/multipage/forms.html#the-select-element you state a requirement that starts out with, "If a select element has a required attribute specified, does not have a multiple attribute specified, and has a display size of 1..."
05:42
<MikeSmith>
but if the multiple attribute isn't specified the only way to set the display size is by explicitly specifying the "size" attribute
05:45
<MikeSmith>
oops actually I meant the statement just after that sentence
05:45
<MikeSmith>
the one that says, "If a select element has a required attribute specified, does not have a multiple attribute specified, and has a display size of 1, then the select element must have a placeholder label option."
05:47
<MikeSmith>
it seems to me that could more precisely state the requirement explicitly mentioning the "size" attribute instead of indirectly stating it in terms of the abstract "display size" concept
05:48
<MikeSmith>
so it could be refined to say, "If a select element has a required attribute specified, does not have a multiple attribute specified, and does not have a "sizes" attribute with a value greater than 1, then the select element must have a placeholder label option.
05:58
<MikeSmith>
filed a bug https://www.w3.org/Bugs/Public/show_bug.cgi?id=28150
09:27
<annevk>
MikeSmith: see https://github.com/slightlyoff/BackgroundSync/issues/57
09:27
MikeSmith
looks
09:27
<MikeSmith>
ah ok
09:40
<MikeSmith>
http://robert.ocallahan.org/2015/03/debugging-gecko-with-reverse-execution.html
09:40
<MikeSmith>
wow
10:48
<annevk>
JakeA: https://github.com/slightlyoff/ServiceWorker/issues/607#issuecomment-76349858 ping
11:04
<MikeSmith>
hsivonen: would be good if you could weigh in on https://github.com/validator/validator/pull/48 when have time (relatively minor thing)
11:33
<darobin>
bah, krijnhoetmer.nl is down!
11:45
<MikeSmith>
I want my money back
11:45
<MikeSmith>
darobin: http://logs.glob.uno/?c=freenode%23whatwg remains a live
11:46
<darobin>
MikeSmith: thanks! I didn't know that one
12:28
<beverloo>
annevk, cool, thanks
12:28
<beverloo>
I'll sync the bikeshed version afterwards
12:28
<annevk>
Ah yeah, forgot about that
12:30
<beverloo>
no worries, I'd rather not block the spec on that
14:37
<JakeA>
annevk: on leave at the moment. Not sure I understand the redirect thing. Would it solve the css use case? Where there are redirects that aren't visible to me but I want URLs to be relative to the final url
14:38
<annevk>
JakeA: why would it not be visible to you though?
14:38
<annevk>
JakeA: event.request.url != response.url in that case, no?
14:38
<JakeA>
Correct
14:39
<JakeA>
annevk: is it safe to give visibility to response.url? I thought there were security issues there
14:40
<JakeA>
Or was it just intermediate redirect URLs?
14:40
<annevk>
JakeA: when it's not a redirect it's fine
14:40
<annevk>
JakeA: and already exposed by XMLHttpRequest
14:40
<annevk>
(also required if you want to handle e.g. base URL stuff yourself in case of JSON or some such)
14:43
<JakeA>
annevk: if the SW provides a redirect, does the SW get another fetch event? (I think it's only does that for navigations, but still half asleep)
14:43
<annevk>
JakeA: it does
14:43
<annevk>
well should I think
14:43
<JakeA>
annevk: just navigations or all requests?
14:44
<annevk>
all
14:44
<annevk>
see in https://fetch.spec.whatwg.org/#http-fetch step 2 you get the redirect
14:44
<annevk>
then in step 4 it's handled
14:44
<annevk>
which causes re-entry
14:44
<annevk>
so it's all good
14:53
<JakeA>
annevk: so with the CSS example, id check if the response url is different & instead issue a redirect? I don't like the extra network request or cache lookup that would create.
14:57
<JakeA>
annevk: what was wrong with useFinalURL? I agree it's a bit ugly, but it works
14:59
<annevk>
JakeA: less unnecessary primitives
14:59
<annevk>
JakeA: and yes, redirects are always good to avoid, which is why you should update your code if it creates them...
15:10
<JakeA>
annevk: they're not always in your control. Check out the font css request at talky.io, the redirect there is the font foundry doing dumb anti-piracy checks. I guess it's not a problem in this exact case because the fonts are datauris
16:27
<annevk>
JakeA: perhaps we should call it overrideRequestURL
16:27
<annevk>
JakeA: I'm still a bit skeptic with regards to the savings I have to say
16:27
<annevk>
wanderview: ^^
16:28
<wanderview>
annevk: are you asking me to bikeshed a name? :-)
16:28
<wanderview>
or is this about forcing the urls to match in the cache
16:28
<annevk>
please
16:29
<wanderview>
annevk: I guess I don't really have an opinion other than making it clear its not actually a url... I like starting boolean attributes with "Is" like "IsFinalURL"
16:34
<annevk>
wanderview: overrideRequestURL has that covered, no?
16:34
<wanderview>
annevk: what object is this on?
16:34
<annevk>
wanderview: on response
16:34
<annevk>
wanderview: as a better name for useFinalURL
16:35
<annevk>
wanderview: the default is that request's url wins
16:35
<wanderview>
annevk: it overrides in respondWith()? would it override in Cache as well?
16:35
<annevk>
wanderview: I'm not sure how it makes sense in the cache
16:35
<annevk>
yeah hmm
16:35
<annevk>
JakeA: ^^
16:35
<wanderview>
annevk: sorry... in a meeting
16:36
<annevk>
JakeA: given the other APIs that use Request/Response it does seem better to decouple it somehow
16:36
<annevk>
JakeA: either require redirects or have a different respondWith
16:36
<annevk>
JakeA: e.g. repondWith(response, {overrideRequestURL: true})
16:37
<JakeA>
annevk: ohh, I like that. I think that's what we were looking for
17:11
<wanderview>
annevk: does this mean the bool would be removed from Response?
17:14
<wanderview>
annevk: or it moves to an internal, not-exposed-to-content type flag?
17:16
<annevk>
wanderview: there's two ways to implement it and the spec will prolly use the flag
17:16
<wanderview>
annevk: just curious if I should tell people not to write the code to persist the flag to cache
17:16
<annevk>
wanderview: one way is that SW returns a response and a flag to Fetch, that's the nice way, the other way is that SW annotates response and then returns it, which is the easy way given how Fetch fits together
17:16
<annevk>
wanderview: yeah, that's not needed with this approach
17:16
<annevk>
wanderview: unless I'm missing something
17:17
<wanderview>
good
17:17
<wanderview>
thanks
17:17
<wanderview>
I guess I'll wait for the spec text to change before closing the bug
17:17
<annevk>
wanderview: it seems JakeA agrees so go ahead...
17:18
<annevk>
wanderview: I can remove the JS property pretty quickly, working on something else now
17:18
<wanderview>
annevk: k... no rush
17:22
<annevk>
wanderview: mkay
17:23
<Krinkle>
Hm.. I'm curious if there's a chance of re-fixing innerHTML under a different name. It seems browsers are resisting spec compliance with regards to newlines for back-compat. We did it with innerText>textContent. Perhaps an htmlContent is in order?
17:23
<Ms2ger>
No
17:24
<Krinkle>
e.g. https://code.google.com/p/chromium/issues/detail?id=174829
17:24
<Krinkle>
If browsers stay together and resist, the spec might as well be changed back
17:24
<Ms2ger>
HTML serialization just isn't a priority
17:25
<Ms2ger>
If you want to get browsers fixed, fixing them yourself is a lot more likely to work than trying to pitch a new redundant feature
17:25
<Krinkle>
Yeah, we got that after spending 2 years building VisualEditor. Which relies on Content Editable, but due to its instabilities and quirks, have to fallback to innerHTML a fair bit.
17:26
<Krinkle>
Plain content editable works for one's moms cooking blog, but not Wikipedia.
17:27
<Krinkle>
(as long as the mom uses a modern browser and write LTR and in Latin characters and uses no special styling or foreign elements.)
17:31
<MikeSmith>
Krinkle: it sounds like the problem you really want fixed is not with innerHTML but with contenteditable
17:31
<Krinkle>
MikeSmith: Absolutely.
17:31
<MikeSmith>
I mean with contenteditable in the abstract
17:31
<MikeSmith>
in terms of what it rightly should be
17:31
<MikeSmith>
so you know there's active work going on there
17:31
<MikeSmith>
I think we talked about that here before
17:32
<Krinkle>
MikeSmith: We considered going the google-docs route of re-implementing half a browser in JavaScript (e.g. the typical "your cursor is a blinking span"). Which involves having to re-implement text overflow, selection highlights etc. We actually went this route and came quite far.
17:32
<Krinkle>
But for the benefit of native support for spell check, and IMEs and loads of other things as well as mobile support, we re-started and went with CE.
17:33
<Krinkle>
Although heavily locked down as it can't be trusted for anything other than a canvas for output and receiving input events. So we have a separate linear data model, and a detached second DOM tree. That is synced with the Content Editable surface.
17:33
<Krinkle>
It's still in beta, but can be seen here for example: https://www.mediawiki.org/wiki/VisualEditor:Basic_example_worksheet?veaction=edit
17:34
<Krinkle>
There are a few tangible direct issues in browser we worked around and documented, but the broader issues with CE we never cared to document and just worked around. ITtd be cool to document some of that.
17:35
<Krinkle>
It seems like CE was one of those features were the spec (as it was 5 years ago anyway) has not received much input based on real-world usage.
17:35
<Krinkle>
I heard recently there was a call for attention but lost track of that.
17:43
<MikeSmith>
Krinkle: > But for the benefit of native support for spell check, and IMEs and loads of other things as well as mobile support, we re-started and went with CE.
17:43
<MikeSmith>
yeah
17:44
MikeSmith
looks at https://www.mediawiki.org/wiki/VisualEditor:Basic_example_worksheet?veaction=edit
17:45
<MikeSmith>
this is nice
17:45
<terinjokes>
going to assume fetch's Body.prototype.blob() is never supposed to throw an exception?
17:45
<MikeSmith>
Krinkle: you really should get involved with the current Editing work
17:45
<MikeSmith>
Krinkle: didn't I point you at this stuff the other day? https://github.com/w3c/editing-explainer
17:46
<MikeSmith>
http://w3c.github.io/editing-explainer/tf-charter.html
17:51
<Krinkle>
MikeSmith: Aye, I'm spread thin as it is. I'll definitely pass it on this time though. Writing up an internal mail now
17:51
<Krinkle>
MikeSmith: Are you involved with them?
17:51
<Krinkle>
that topic/group in particular I mean
18:11
<MikeSmith>
Krinkle: no I'm not personally
18:11
<MikeSmith>
not involved with the work on that
18:15
<annevk>
terinjokes: why would you assume that?
18:15
<terinjokes>
annevk: it seems very strange for that method to throw, since it could just reject the Promise it should be returning
18:16
<terinjokes>
but i could be wrong, since the spec doesn't say what to do, which is why i'm asking
18:18
<annevk>
terinjokes: oh I thought by throw you meant reject the promise
18:18
<annevk>
terinjokes: which it does
18:18
<annevk>
terinjokes: as the spec states
18:19
<terinjokes>
annevk: it only says "Resolve p with a Blob whose contesnts are bytes and type is MIME type."
18:20
<annevk>
terinjokes: which specification are you reading
18:20
<terinjokes>
fetch.spec.whatwg.org
18:20
<annevk>
terinjokes: doesn't step 2 of the algorithm reject?
18:21
<terinjokes>
only if you used the response already
18:21
<terinjokes>
i'm in shim land, not in browser land
18:22
<annevk>
terinjokes: well there's nothing more to it than that
18:23
<terinjokes>
in i sometime don't have a good way to go from the body type i do have to the body type requested
18:27
<annevk>
terinjokes: for FormData I guess there are some pieces missing
18:27
<terinjokes>
FormData -> Blob and FormData -> text
18:28
<terinjokes>
it can fake it if required
18:33
<Krinkle>
MikeSmith: Thx, I filed https://phabricator.wikimedia.org/T91781. Also, a more isolated demo: https://wikimedia.github.io/VisualEditor/
18:33
<Krinkle>
Without the intergration of the PHP Wikipedia backend.
23:07
<MikeSmith>
hey Krinkle, looking now
23:07
<MikeSmith>
me just woke up
23:08
<Krinkle>
MikeSmith: Timezone?
23:08
<Krinkle>
Australia?
23:13
<MikeSmith>
Krinkle: Tokyo
23:14
<MikeSmith>
Krinkle: wait I can't (re)use my wikipedia account name for a mediawiki.org wiki account?
23:14
<MikeSmith>
was going to Cc myself on that bug
23:15
<Krinkle>
MikeSmith: Sure thing. Wikipedia.org accounts are login.wikimedia.org, which is what www.mediawiki.org uses as well
23:15
<Krinkle>
Should be all connected
23:15
<MikeSmith>
oh ok
23:15
<MikeSmith>
cool
23:15
<Krinkle>
It should even log you in automatically by just visiting mediawiki.org
23:15
<Krinkle>
logging into Wikipedia sets a central cookie that mediawiki.org routes via as well.
23:16
<Krinkle>
Then you can OAuth from that to log in to Phabricator (only releases a few weeks ago actually :D)
23:16
<Krinkle>
We used to have Bugzilla with its own user db
23:16
<MikeSmith>
nice
23:16
<MikeSmith>
yeah now I'm authenticated
23:38
<MikeSmith>
Krinkle: "It would save us an unmeasurable amount of technical debt, performance and interface freedom if we can get some of our use cases to be considered in the creation of a future web standard on this."
23:39
<Krinkle>
Too much? :P
23:39
<MikeSmith>
no, it's perfect
23:39
<MikeSmith>
that's pretty much the sales pitch I always give people for why they should invest time working with others on standards
23:39
<Krinkle>
You should see some of the hacks we have. Not specifically for CE, but just in general, getting things native just makes so much sense.
23:40
<MikeSmith>
oh I'd not be surprised
23:40
<Krinkle>
MikeSmith: Having said that, I heard today a colleague of mine was already aware of this task force but thinks it's not going in the direction we want.
23:40
<MikeSmith>
I'm sure some of it is pretty gruesome
23:40
<MikeSmith>
oh
23:41
<Krinkle>
But I hope that even if we can't control the overal direction, just being around will at least give us a voice for the use cases and bugs. Even if it's not implemented the way we want, having it work a differnet way is better than not having it work at all.
23:41
<MikeSmith>
well, getting involved makes it possible to make some course correction happen to take it in the direction you want
23:41
<MikeSmith>
yeah
23:41
<MikeSmith>
bingo
23:41
<MikeSmith>
well put
23:41
<MikeSmith>
that also is true for everybody involved
23:42
<Krinkle>
MikeSmith: I'm not familiar with the concept of a w3 "task force" however. It seems they don't always get somewhere. What's the position of W3 and Whatwg? Or a better question in its place. Like.. what can I expect?
23:43
<Krinkle>
I've seen whatwg create new specs (like Fetch) and quite happy with the process.
23:43
<MikeSmith>
🎵 you can't always get what you want, but if you try sometime you just mind find...
23:43
<zewt>
(sometimes, having something not work at all is better than something that half works; half-solutions can stop people from working on real solutions)
23:43
<Krinkle>
I'm not sure if this will get into a similar process after this, or whether that already started and its now on hiatus as a task force? Basically, how do task forces fit in the bigger picture?
23:44
<MikeSmith>
the "task force" thing is just a label
23:44
<MikeSmith>
it's just people
23:44
<MikeSmith>
it's *always* just people
23:44
<MikeSmith>
it's sometimes the same people under different labels
23:44
<zewt>
MikeSmith: heh, it's always annoying when people post to mailing lists with a company name instead of their name
23:45
<zewt>
(or anywhere)
23:45
<MikeSmith>
the whatwg vs w3c is often not really relevant, because there's people with a foot in both places. always has been
23:45
<Krinkle>
zewt: Good point.
23:45
<MikeSmith>
I was involved with whatwg before I starting working at w3c
23:46
<MikeSmith>
and in terms of who I do most of my communication with, I talk as much with Hixie and annevk as I do with any colleagues at w3c
23:46
<MikeSmith>
zewt: yeah
23:47
<MikeSmith>
zewt: and 100% true too what you said about "sometimes, having something not work at all is better than something that half works; half-solutions can stop people from working on real solutions"
23:47
<MikeSmith>
so let's not yet again do something half-assed here
23:47
<MikeSmith>
I think everybody agrees about that, for the Editing stuff
23:47
<zewt>
(just a general statement, I don't know the specific thing you guys are talking about)
23:48
<Krinkle>
Yeah, I've seen annevk active on both sides for as long as I can remember.
23:48
<MikeSmith>
well, contenteditable as it exists today is a good example of a half solution
23:48
<MikeSmith>
though I guess a lot of people would say it's not even half
23:49
<MikeSmith>
but it is sorta worse than having nothing at all
23:49
<Krinkle>
Yeah, believe me, we were not at all attracted to contenteditable at all. But despite all the pains, we went *back* to it.
23:49
<MikeSmith>
yep
23:49
<MikeSmith>
like Michael Corleone
23:49
<Krinkle>
We had our own Google Docs-like system running for a while and it was great. While it's a bigger curve to get anything, after that you have complete control. Whereas with CE, it's a quick start to get basics and then that's the end of it.
23:51
<zewt>
(the next time I hit shift-delete to cut text to the clipboard and it deletes it without copying because of hardcoded shortcuts by someone who always hits control-x and has never heard of shift-delete -> WW3)
23:51
<Krinkle>
We had to change our fundamental model of how to represent a character numerous times to support additional languages and scripts. code units, grapheme clusters, and the back again.
23:54
<MikeSmith>
Krinkle: interesting, about the character model
23:54
<Krinkle>
MikeSmith: Wikimedia also contributes to Unicode CLDR upstream as our language support is a superset of what the standards define.
23:54
<Krinkle>
It's a fun "problem" to have.
23:55
<Krinkle>
our community cares a lot. And many of them are one of few that even represent their language online with the technical know-how to make it work in their language.
23:55
<MikeSmith>
Krinkle: I bet Richard Ishida from the W3C would love to hear more details about the problems you ran into and how you solved them
23:55
<MikeSmith>
Richard "Mr. Internationalization" Ishida
23:55
<MikeSmith>
r12a
23:55
<Krinkle>
Hehe
23:56
<Krinkle>
I'm mostly echo-ing what I've learned. I imagine he'll want to talk to David Chan and Roan Kattouw from our team.
23:56
<Krinkle>
Who are our language expert and data model expert respectively.
23:56
<MikeSmith>
“many of them are one of few that even represent their language online with the technical know-how to make it work in their language” is really important. You guys are serving a real need there
23:57
<Krinkle>
Don't have the luxury of off the shelve options often. It's simply never been considered. Especially not open-source.
23:58
<Krinkle>
The one thing that we were able to use and has been a great help is CSSJanus. An abandoned Google project to flip stylesheets. Before that we manually ported stylesheets, usually meaning that that part of the word got software updates months later.
23:59
<Krinkle>
Since then forked and renewed by us and volunteers. Now same-day delivery to both and most designers and developers rarely even know it, but everything is mirrored seemlessly.
23:59
<MikeSmith>
we have a long way to go on thisーon giving all the world's writing systems the ability be used as easily on the Web as the ones we all use ourselves and take for granted
23:59
<MikeSmith>
I've not heard of CSSJanus.
23:59
<MikeSmith>
oh wow