freenode :: #whatwg

13 Sep 2017
02:07DomenicTabAtkins: I think Bikeshed updates have broken things
02:08DomenicCI is failing for infra and console with 400 bad request
03:10TabAtkinsWeird! Will check as soon as I get in tomorrow, sorry for the inconvenience.
08:53kochiI'm trying to run bikeshed locally on Linux, against whatwg dom spec:
08:53kochiFATAL ERROR: IDL SYNTAX ERROR LINE: 3 - skipped: "attribute [TreatNullAs=EmptyString] DOMString data"
08:54Ms2gerHave you tried updating?
08:55kochiThis seems to be for
08:55kochiMs2ger: do you mean "bikeshed update"
08:55Ms2gerI think so
08:55* Ms2ger hasn't used bikeshed for a while
08:56kochiI once used, but me neither
08:56kochi"bikeshed update" doesn't help :(
09:05sangwhanIf you pip install -e'ed it, think git pull in the local bikeshed checkout should do
09:05sangwhanOh right, that won't fix the references, only the source..
10:11annevkRedesign of home page, if you care comment here:
10:13jgrahamIs emailing Hixie really still a thing?
10:13jgrahamI should comment on the bug
10:14annevkjgraham: yeah it is, but I don't think he gets many media requests if at all
10:24kochiwill retry if bikeshed is not up-to-date.
10:25kochi^^ will retry fresh reinstall bikeshed, and do all over again.
10:55kochihmm, got another python error - which might be python version thing. I'll try on Mac next...
14:15annevkkochi: FWIW, for delegatesFocus wouldn't we want to define that in HTML as an extension of sorts?
14:15annevkkochi: I guess it doesn't matter much, but DOM wouldn't really define behavior for it, seems weird to just define the API
14:15annevkkochi: as for bikeshed errors, you can just create a PR
14:16annevkkochi: that should create a preview for you (will be added as a link in the first comment of the PR after some time)
14:17deyomaxCan I read someone why the WHATWG URL API chose terms like "" "url.hash" instead of "url.query" and "url.fragment"?
14:18kochiannevk: I thought I would add a "delegatesFocus" in ShadowRootInit IDL (in DOM), and refer to it in HTML - but defining it as "partial interface ShadowRootInit { ... }" in HTML also work?
14:21kochiannevk: as to "FATAL ERROR: IDL SYNTAX ERROR ..." I might have used bikeshed that I installed long time ago, and I'm not able to reproduce so I'll retry in fresh environment.
14:30annevkdeyomax: seemed better to stick with terms that were already used for Location and <a>/<area>
14:30annevkkochi: yeah, partial should work
14:30deyomaxannevk: I see. But it&#39;s a bit odd when the spec seemingly has two minds about it &quot;the url.hash contains the URL fragment&quot;
14:31deyomaxannevk: it&#39;s referred to as a fragment :)
14:31annevkdeyomax: that&#39;s true, I wasn&#39;t really brave enough to deviate from the RFC terminology for the underlying concepts
14:32annevkdeyomax: but they&#39;re also subtly different so it seems okay
14:32annevkdeyomax: protocol always has a &quot;:&quot; for instance, but scheme doesn&#39;t
14:38deyomaxannevk: interesting
14:39deyomaxannevk: thank you
14:39deyomaxannevk: btw does WHATWG see the &quot;everything is URL&quot; as a purely WHATWG internal terminology, or as something they wish the world used at large?
14:42annevkdeyomax: the latter
14:42gsnedders(though it&#39;s largely just reflecting current usage, so not so much a wish)
14:44deyomaxThanks folks!
15:05annevkJakeA: should I look at the Fetch patch again tomorrow or are you waiting for Domenic?
15:19deyomaxannevk: there&#39;s something that&#39;s bothered me a little about URL, it parses &quot;data:text/plain,foo?bar#baz&quot; as path &quot;text/plain,foo&quot; search &quot;?bar&quot; and hash &quot;#baz&quot; but then when data URL is decoded the entirety of this content is taken into account &quot;foo?bar#baz&quot;. IETF says this with non-hierarchical URLs, the path is the entire thing without the scheme, ie. &quot;text/plain,foo?bar#baz&quot;.
15:20deyomaxannevk: now one might think &quot;easy, just recombine the parts before you parse&quot; but that also doesn&#39;t work because in the following data URL: &quot;data:,x?#&quot; the search and hash fields are empty, so the reconstructed content would be &quot;,x&quot; instead of &quot;,x?#&quot;
15:20deyomaxI&#39;m curious what you think :)
15:26JakeAannevk: it&#39;s ready for anyone to review afaik. Sorry it&#39;s gotten to vast & tough to go through
17:37TabAtkinsDomenic: Fix applied to stop DOM/etc from dying. (All the WHATWG specs, because they all use the Complain About metadata, which is what was breaking. I&#39;m adding tests for that now.)
18:06annevkdeyomax: in particular fragments are not part of the content, not even in the IETF RFCs
18:06deyomaxannevk: this doesn&#39;t match real-world behavior in any browser though
18:06annevkdeyomax: and although hard to reproduce with the API other than looking at the serialization, the internal representation does store the nuance of ? being present or not
18:06annevkdeyomax: sounds like you didn&#39;t test in all browsers
18:07annevkdeyomax: and same for #; there was some hasSearch/hasHash idea, but it hasn&#39;t happened yet, I still think it might be worthwhile to add at some point
18:08annevkJakeA: okay, will go through again tomorrow (and yeah, the patch is a little daunting at this point, but not sure what can be done about that)
18:10deyomaxannevk: well storing it internally is not helpful when it&#39;s not exposed :P
18:13deyomaxannevk: well I&#39;m not even more confused. Firefox ignores the fragment, Chrome doesn&#39;t. In Edge it&#39;s hard to test. And MDN says &quot;nothing interrupts the data stream&quot; implying also fragment
18:20deyomaxannevk: the IETF RFC doesn&#39;t seem clear what happens with # in the data segment. It says &quot;data is urlchar from RFC 2396&quot; and that RFC has no such term anywhere
18:21deyomaxAh it&#39;s called &quot;uric&quot;, ok.
18:21annevkHopefully someone else can help, back tomorrow
18:21deyomaxDoesn&#39;t include ? and #, but also that&#39;s not an up-to-date RFC for URIs
18:32deyomaxSo now I don&#39;t even know if &quot;data:&quot; URL must respect the fragment or not.
21:07MikeSmithbeverloo: about the behavior at, is that documented anywhere?
21:10MikeSmithbeverloo: I mean specifically, Notification permission is silently denied from file:// URLs.
21:12MikeSmithbeverloo: that assertion seems to be true, in that I find I can observe the same behavior with any simple notifications case I try to load as file:// locaally
21:13MikeSmithbut I cant find anywhere this is documented for Chrome, nor can I understand what the rationale might be for not logging some error to the console in that case, and instead just silently failing it
21:30deyomaxMikeSmith: one thing I&#39;ve learned about browsers and the web is that not even half of what we use every day is standardized and documented
21:34MikeSmithdeyomax: see the last part of the channel topic :)
21:34MikeSmithif you want logic and consistency, you wont get that from the web runtime
21:37deyomaxMikeSmith: it&#39;s quite fascinating it still works though
21:42MikeSmithdeyomax: indeed
21:42MikeSmithkind of amazing
21:42MikeSmithanyway, I think the Servo project is proof that we are getting better
21:42MikeSmithas far as having more of it standardized and documented
21:44MikeSmithbecause 10 years writing a new browser engine would not have been possible without reverse-engineering all over the place
21:45MikeSmithbecause back then, entire giant swathes of what browser engines were doing was still completely undocumented, unspecified
21:45deyomaxMikeSmith: isn&#39;t Servo written by people who are quite familiar with browser engines?
21:45MikeSmithbut they are working from specs
21:45deyomaxAre they :)?
21:45MikeSmithgood quesiton
21:45deyomaxMaybe to some degree, but...
21:45MikeSmithwell you can ask nox to how much degree
21:46deyomaxThere are so many things undocumented. Say it&#39;s not documented ANYWHERE I could find, how does a server determine if a form field is a file or not a file. And especially if it&#39;s a file field... but left empty
21:46MikeSmithbut I know their M.O. is to work from specs
21:46MikeSmithdunno about that particular one
21:46noxWe are.
21:47gsneddersthere&#39;s also plenty of people around Servo with no background in browsers
21:47MikeSmithdeyomax: there you go. from gods lips to your ears
21:47MikeSmiththats both jesus and the holy ghost speaking to you
21:47deyomaxAnd what I kept finding is browser bugs being filed when a given engine accidentally has a regression bug related to file fields. Where the browser would change something, follow spec, but break half the servers out there.
21:48deyomaxSay Firefox for the last 12 or so years keeps regressing the file upload functionality every 4-5 years, releases a broken build and then they fix it
21:48deyomaxBecause it&#39;s not documented anywhere.
21:48deyomaxIt&#39;s kind of funny :)
21:49MikeSmithyeah, laugh to keep from crying
21:49MikeSmithdeyomax: anyway about specific question like, how does a server determine if a form field is a file or not a file?, please raise spec issues at
21:49MikeSmithbest case by doing that, you find out you are wrong
21:50MikeSmithI mean, somebody replies to put out that in fact it is documented
21:50MikeSmitheven though often the spec for it may be arcane and hard to follow unless you are actually implementing it
21:50MikeSmithand worst case, somebody replies to say, youre right, we need to document that
21:51MikeSmithso it is win-win
21:51MikeSmith*we need to specify that
21:51MikeSmithwell you know what I mean in this context, as far a *documenting* vs *specifying*
21:52MikeSmithI mean because for features that are already implemented, those two words amount to the same thing
21:53MikeSmithanyway, on todays good-news report, about my notifications question, I did find where its documented
21:53MikeSmithfor a different definition of that word
21:53MikeSmithString Notification::permission(ExecutionContext* context) {
21:53MikeSmith // Permission is always denied for insecure contexts. Skip the sync IPC call.
21:53MikeSmith if (!context->IsSecureContext())
21:53MikeSmith return PermissionString(mojom::blink::PermissionStatus::DENIED);
22:08deyomaxMikeSmith: filed an issue
22:09deyomaxMikeSmith: ah yeah, documented in source :P the most reliable documentation
22:09MikeSmithdeyomax: thanks for raising that issue
22:09MikeSmithyoure a good citizen
22:09deyomaxAs the old joke goes &quot;the software works as documented implemented&quot;
22:17noxdeyomax: Yeah never worked on a browser before working on Servo.
22:17deyomaxnox: how easy to you find it to understand the specs and then understand the *exceptions* to the specs after some real website testing ;-)?
22:18noxdeyomax: We file issues and let specs people sort it out with other UA makers, and often participate to the discussions ourselves.
22:19noxdeyomax: AFAIK we are in a way better place than years ago.
22:19deyomaxYou know, I don&#39;t understand why W3C couldn&#39;t achieve what WHATWG is achieving. I thought the major UA makers participate in W3C - it&#39;s the same people no? Mostly?
22:20deyomaxIs it just the reduced formality of it? The GitHub environment?
22:21noxI don&#39;t know and to be honest, I don&#39;t really care, as long as what we are doing now is working.
22:27jyasskinMikeSmith: Your Notifications/file: thing is probably then.
22:27MikeSmithjyasskin: looking now
22:27MikeSmithso yeah I think so at first too
22:28MikeSmithbut the thing is, this has been the behavior since before beverloo made the change about
22:28MikeSmithI misspoke a bit here earler
22:29MikeSmiththat code I cited is the current code in the trunk
22:29MikeSmithbut this behavior was happening before beverloo added that code
22:29MikeSmithlike, in Chrome 60 and before
22:29jyasskinMm, so it was blocked on files (maybe all unique origins?) before the secure-context restriction was added.
22:30MikeSmithas far as I can see
22:31MikeSmithbut am still investigating and testing
22:32jyasskinStill, restricting to secure contexts is probably the right spec fix to cover that, even if the sin was older.
22:53MikeSmithjyasskin: yes
22:56MikeSmithbut as far as the behavior Im seeing for this file:// case, I actually get back the permission string &quot;granted&quot; from Notification.requestPermission()
22:57MikeSmithand then if I call new Notification(), I do get a Notification object back without Chrome throwing
22:57MikeSmithbut the actual notification is never shown
23:40gsneddersdeyomax: politics. some of it politics 13 years ago.
23:47deyomaxMikeSmith: remember you said &quot;either you&#39;ll learn it&#39;s in the spec, or help improve the spec&quot;
23:47deyomaxMikeSmith: unfortunately there&#39;s a third option &quot;WHATWG worker will point to an irrelevant part of the spec, and say it&#39;s covered by the spec&quot; :P
23:50DomenicGee, thanks
23:50DomenicProbably I should have just ignored the issue
23:51DomenicInstead of trying to help you
23:59deyomaxDomenic: you&#39;re not helping me, you&#39;re preventing me from helping improve the WHATWG spec :P
14 Sep 2017
No messages
Last message: 8 days and 52 minutes ago