04:58
<MikeSmith>
kochi1: I only just now finally had a chance to looks at your slides
04:58
<MikeSmith>
they look great
04:58
<MikeSmith>
the screenshots are great
04:58
<MikeSmith>
I think you'll be fine
05:02
<TabAtkins>
heycam: Yeah, but the token characters are just single guillemets, so you were close enough. ^_^
05:03
<heycam>
all these different angle-looking brackets to get confused betwee :)
05:03
<heycam>
*between
09:31
<annevk>
ah shit, missed heycam
12:12
<Ms2ger>
zcorpan, if you ever are looking for something to test, I'd love to see what you'd come up with for the named getter on form / form.elements
12:13
<zcorpan>
Ms2ger: i've probably written tests for named getters on document and window, but maybe not on form
12:36
<Ms2ger>
Anyone with IE?
12:37
<Ms2ger>
Would be interested in its behaviour on http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2484
12:40
<gsnedders>
Are there really no tests for document.cookie?
12:45
<Ms2ger>
Hrm, didn't I create a PR for https://github.com/Ms2ger/web-platform-tests/compare/form-named-item ?
12:46
<Ms2ger>
Or did I
12:46
<Ms2ger>
https://github.com/w3c/web-platform-tests/pull/111
12:47
<Ms2ger>
So, r? zcorpan gsnedders jgraham :)
12:47
<gsnedders>
If you tell me whether or not there are really no document.cookie tests?
12:47
<Ms2ger>
Where?
12:47
<gsnedders>
On web-platofmr-tests
12:48
<Ms2ger>
I see some
12:48
<gsnedders>
There are a few, but only indirectly
12:48
<Ms2ger>
Some about sandboxed iframes
12:49
<gsnedders>
And otherwise mostly used for the sake of implementing the tests.
12:49
<Ms2ger>
Some for websockets and eventsource
12:50
<Ms2ger>
./XMLHttpRequest/responsexml-document-properties.htm
12:51
<Ms2ger>
./old-tests/submission/W3C/domhtml/HTMLDocument12.html
12:51
<Ms2ger>
And that's about it
12:57
<gsnedders>
Someone should write some.
12:58
<Ms2ger>
Yeah, someone
12:58
<zcorpan>
get on it already, someone!
12:58
<gsnedders>
Someone is such a slacker.
12:59
<Ms2ger>
gsnedders, so I told you ;)
12:59
<zcorpan>
watcha waitin watcha waitin watcha waitin watcha waitin watcha waitin watcha waitin foooor?!
12:59
<gsnedders>
Ms2ger: I didn't say I would straight away. ;)
13:01
<zcorpan>
Ms2ger: critic link?
13:01
Ms2ger
tries to get one
13:02
<Ms2ger>
Ah, https://critic.hoppipolla.co.uk/r/116
13:02
<Ms2ger>
Oh, jgraham reviewed it
13:02
Ms2ger
looks at his comments
13:09
<Ms2ger>
jgraham, addressed your comments
13:19
<zcorpan>
ok, in css spirit, please bikeshed https://www.w3.org/Bugs/Public/show_bug.cgi?id=23066
13:29
<hsivonen>
Ms2ger: I find it amusing that https://bugzilla.mozilla.org/show_bug.cgi?id=909188 was about the daily WTF
13:31
<Ms2ger>
Ha
13:31
<Ms2ger>
I hadn't even noticed that
13:31
<Ms2ger>
zcorpan, contrary to popular belief, bz and dbaron are different people
13:34
<zcorpan>
Ms2ger: yeah. i wonder if i have misattributed earlier without noticing. i seem to store them in the same bucket in my head. :-/
13:34
<Ms2ger>
How about roc?
13:35
<zcorpan>
no he has a bucket of his own
13:41
<Ms2ger>
Oh, I guess the Brits take today off for some reason
13:58
<matjas>
hsivonen: re: http://mathiasbynens.be/notes/etago#comment-8, as long as the string literal is closed correctly, is `<!--` really harmful?
13:59
<matjas>
i.e. http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2485 seems safe
13:59
<matjas>
as long as the closing `"` is there
14:15
<gsnedders>
Ms2ger: s/Brits/English/
14:15
<gsnedders>
Ms2ger: "Summer Bank Holiday (Not Scotland)"
14:15
<Ms2ger>
gsnedders, apologies
14:16
<gsnedders>
So actually s/Brits/English, Welsh, and Northern Irish/
14:16
Ms2ger
is left wondering if the republicans in NI can take the day off
14:21
<gsnedders>
They probably use it to protest or something
15:00
<baku>
question about MessagePort: there are 2 flags: shipped and messagePortEnabled. shipped is set to true when the port is cloned. messagePortEnabled is set to true when start() is called. It's not clear to me what happens when: shipped=true and messagePortEnabled=false, shipped=false and messagePortEnabled=true, shipped=false and messagePortEnabled=false
15:11
<annevk>
zcorpan: ^^
15:12
<zcorpan>
baku: shipped is only relevant for determining which task source to use
15:13
<baku>
zcorpan, so in which queue stores the task. is it?
15:13
<baku>
s/stores/to store/
15:13
<zcorpan>
baku: e.g. if you create several MessageChannels in a document and post lots of messages on them, they all use the same task source so they are processed in the same order as posted
15:14
<zcorpan>
baku: but if you pass on the ports to other documents they use separate task sources so order is not guaranteed
15:16
<zcorpan>
matjas: your test case doesn't demonstrate the problem. also, behavior differs in pre-HTML5-parser browsers
15:17
<baku>
zcorpan, so, if a MessagePort is shipped (==cloned) the messages are enqueued to its port message queue.
15:18
<zcorpan>
matjas: it has nothing to do with the "
15:18
<baku>
zcorpan, otherwise we have to use this unshipped port message queue that is per event loop.
15:18
<zcorpan>
baku: yeah. although it's not quite 'per event loop'
15:19
<baku>
well.. this is what the spec says :) 'Each event loop has a task source called the unshipped port message queue'
15:20
<zcorpan>
oh. maybe you're right then :-)
15:20
<baku>
zcorpan, but I don't understand the porpoise ofthis unshipped port message queue and when it should be used.
15:20
<baku>
zcorpan, I mean, I understand when elements are appended, but it's not clear when I should use its content.
15:22
<zcorpan>
baku: before the spec used separate task sources for all ports, but then people started using lots of MessageChannels within a single document as a poor man's setImmediate(), and so the spec had a problem that the order was not guaranteed
15:26
<zcorpan>
matjas: e.g. http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2486
15:26
<matjas>
zcorpan: yeah, but at that point it’s not part of a string literal anymore
15:27
<zcorpan>
matjas: not relevant. http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2487
15:27
<matjas>
zcorpan: but http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2489 is safe
15:28
<matjas>
so, it seems that as long as </script> is escaped as <\/script> (or similar), there’s no need to escape <!-- if it’s to be injected as part of a string literal
15:28
<zcorpan>
matjas: only in browsers with html5 parser
15:28
<matjas>
zcorpan: ah, so _that_’s the gotcha
15:28
<matjas>
thanks!
15:29
<zcorpan>
matjas: e.g. http://software.hixie.ch/utilities/js/live-dom-viewer/saved/2490 would make old browsers treat the whole thing as a big script
15:29
<zcorpan>
(if the last script end tag is missing they reparse)
15:31
<matjas>
confirmed, http://software.hixie.ch/utilities/js/live-dom-viewer/?saved=2489 displays the alert in e.g. Firefox 2
15:31
<zcorpan>
matjas: since it's easy to get a confusing result even in html5-parser browsers, the html spec makes unmatched <!-- an error
15:32
<zcorpan>
which v.nu checks
15:32
<matjas>
cool
16:39
<dglazkov>
good morning, Whatwg!
16:39
<Ms2ger>
Good evening
16:43
<jannis_1>
Good evening!
16:45
<TabAtkins>
heycam|away: The confusion is why there's a markup shortcut for tokens if you use bikeshed - <<<foo>>> generates a token link with the appropriate brackets.
17:44
<smaug____>
so how is "unshipped port message queue" supposed to work
17:45
<smaug____>
say there are two channels A and B, and ports a1, a2, b1, b2. Then one does a1.postMessage(...), b2.onmessage = function() {}; b2.postMessage(...);
17:46
<smaug____>
er, b1.postMessage()
17:46
<smaug____>
so b2 should get the message
17:46
<smaug____>
but what ends up to the "unshipped port message queue" ?
17:47
<smaug____>
what happens to the message posted to a1?
17:47
<smaug____>
Hixie_: ^
17:48
<Hixie_>
what's the relationship between a and b?
17:48
<Hixie_>
like, why does b affect a at all?
17:49
<Hixie_>
all the unshipped port message queue does is make sure that messages on channels that haven't been sent through channels are delivered in relative order
17:49
<smaug____>
Hixie_: well, the spec says "Each event loop has a task source called the unshipped port message queue. "
17:49
<smaug____>
relative to what?
17:50
<Hixie_>
to other things in that queue
17:50
<smaug____>
Hixie_: so, if there is just one document/browsing context, there is one unshipped port message queue
17:50
<smaug____>
when does something end up to that queue?
17:50
<Hixie_>
right
17:51
<Hixie_>
it means that when you do a1.postMessage(); b1.postMessage();, you first fire a message at a2, and then you fire a message at b2. you never fire on b2 before a2.
17:51
<Hixie_>
this isn't guaranteed once you have shipped, say, b2 across a1 to a2.
17:51
<smaug____>
ahaa, so if a2 is never started, b2
17:51
<smaug____>
never gets the message
17:51
<Hixie_>
what? no
17:52
<smaug____>
I'm trying to understand why not
17:52
<smaug____>
(note, I care only about the case when nothing is shipped)
17:53
<Hixie_>
looks like the spec is buggy in the case of unstarted ports
17:53
<baku>
another unclear stuff is what about if the port is sent to the same window: window.postMessage(a.port1); do we consider it as shipped?
17:53
<smaug____>
baku: ^
17:53
<baku>
because we are still in the same document/browsing context.
17:53
<Hixie_>
baku: "shipped" is clearly defined -- you only consider something shipped once you run a step that says "Set new port's has been shipped flag to true"
17:56
<baku>
Hixie_, right. but what is not clear to me is that: the unshipped port message queue is used to keep messages in order when they are 'dispatched' in the same event loop/browser context. shipped flag is set to true when the port is cloned.
17:56
<Hixie_>
smaug____: ok, fixed. the unshipped port message queue ignores disabled port message queues.
17:56
<smaug____>
ok, thanks
17:56
<baku>
so it means that, cloning a port changes the queue for the messages also when the event loop/browser context doesn't change.
17:56
<Hixie_>
smaug____: good catch, thank _you_!
17:56
<Hixie_>
baku: yes
17:57
<Hixie_>
baku: the idea is that you don't know if the message channel you're sending the port through goes to the same event loop or not
17:57
<Hixie_>
baku: so you should be ready for the order to get unreliable either way
17:57
<baku>
Hixie_, ok
17:57
<Hixie_>
baku: in particular, some implementations turn all channels that have ever gone through another channel into a channel to a different "grand central station" thread
17:57
<Hixie_>
baku: so they actually can't guarantee order at that point anyway
17:58
<Hixie_>
(once you can cross threads, managing the messages when the end-points are flying around as well becomes kind of tricky)
17:58
<Hixie_>
(you either want a central dispatch thread to manage it, or you need to start setting up redirects to catch late messages)
17:58
<baku>
Hixie_, sure
17:59
<Hixie_>
note that once a message port's queue gets enabled, the relative order of messages does come back into play
18:00
<Hixie_>
so e.g. b2.start(); a1.postMessage(); b1.postMessage(); a2.start(); delivers a's message before b's.
18:00
<Hixie_>
you just silently ignore the disabled ones until it's started
18:03
<Hixie_>
smaug____: also moved some paragraphs around to try to make that area clearer.
18:03
<smaug____>
k
18:04
<smaug____>
will, re-read when reviewing the patch
20:02
<MikeSmith>
anybody have a clue why the following document would be causing a fatal parse error in the validator?
20:02
<MikeSmith>
http://w3c-test.org/web-platform-tests/master/html/semantics/forms/the-form-element/form-elements-nameditem-02.html
20:03
<MikeSmith>
http://validator.w3.org/nu/?doc=http://w3c-test.org/web-platform-tests/master/html/semantics/forms/the-form-element/form-elements-nameditem-02.htmla
20:03
<MikeSmith>
http://validator.w3.org/nu/?doc=http://w3c-test.org/web-platform-tests/master/html/semantics/forms/the-form-element/form-elements-nameditem-02.html
20:03
<Ms2ger>
Heh, I know that test
20:04
<Ms2ger>
Streaming
20:05
<Ms2ger>
MikeSmith, try <table><input></table>
20:08
<MikeSmith>
Ms2ger: ok
20:08
<MikeSmith>
the validator fails on it without indicating what the cause was
20:08
<Ms2ger>
The DOM you need is <input><table></table>
20:09
<Ms2ger>
But once you streamed the start of the table, you can't do that anymore
20:09
<MikeSmith>
I see
20:18
<zcorpan>
yeah, v.nu's parser is configured to fatal error on errors that require doing stuff that are already streamed
20:19
<zcorpan>
e.g. </head><!----><link> or <body><body foo> or <table>x
20:19
<zcorpan>
(i guess the comment isn't required)
20:32
<Hixie_>
wycats: yt?
20:39
<Hixie_>
anyone have a pointer to the latest thinking on ES6 modules?
20:59
<Hixie_>
does anyone know how es6 module loading interacts with synchronous reentrant script execution?
21:03
<wycats>
Hixie: I'm here
21:03
<Hixie_>
wycats: hey
21:03
<Hixie_>
wycats: originally i was going to say "please don't call ondemand that, it sounds like an event handler"
21:03
<Hixie_>
wycats: but now i have so many more questions about es6 modules and module loading
21:03
<wycats>
ES6 module imports are always async (except during sync eval, when they must be importing modules that are already in the registry)
21:04
<wycats>
And we're not going to call it on demand; it's an intentionally absurd name so we fix it before shipping
21:04
<Hixie_>
wycats: so what happens if you document.appendChild() an inline script that attempts to import something that's not loaded?
21:04
<wycats>
Syntax error
21:05
<Hixie_>
where would that be defined? do i have to say something in HTML to the effect of "this kind of script load is not allowed to be async", or do you automatically figure it out from the way there's JS on the stack?
21:05
<Hixie_>
i mean, at the spec level
21:05
<wycats>
the loader hooks are eval and evalAsync
21:06
<wycats>
So you'd want to decide which of those hooks to use from any given place in HTML
21:06
<Hixie_>
oh, i'm supposed to be invoking those from the html spec somehow?
21:06
<Hixie_>
interesting
21:07
<wycats>
The spec language for this is coming shortly
21:07
<Hixie_>
how about the fetching, is the interaction with HTTP done straight from JS, or will there be a hook i can use to say "use fetch.spec.whatwg.org" ?
21:07
<wycats>
The loader API really tightens up the semantics
21:07
<wycats>
The browser loader will define what its fetch hook does
21:08
<wycats>
The ES spec just calls into the fetch hook
21:08
<wycats>
Which is user overridable
21:08
<Hixie_>
ah, excellent
21:08
<wycats>
So theoretically you could use XHR
21:08
<wycats>
all the hooks but normalize are async
21:09
<Hixie_>
so the background here is that i'm trying to define some sort of better script loading mechanism in html
21:09
<Hixie_>
but i want to make sure it works with modules
21:10
<Hixie_>
is there some way i can prefill es6's notion of what modules are available, without having to fetch them all? e.g. we could have <script module="jquery" src="http://cdn.example.com/jquery.js">; ?
21:10
<wycats>
Yep
21:10
<wycats>
There's an exposed registry
21:10
<wycats>
Module names are simple strings
21:11
<wycats>
So you can put in "web/dom"
21:11
<Ms2ger>
r? http://critic.hoppipolla.co.uk/r/286
21:12
<Hixie_>
wycats: "web/dom"?
21:12
<wycats>
An example module name
21:12
<Hixie_>
oh ok
21:12
<wycats>
import { document } from "web/Dom"
21:13
<wycats>
document.getElementById etc
21:13
<Hixie_>
let's not confuse matters by having examples that sound like web apis :-)
21:13
<wycats>
Your hook for prepopulation is the registry
21:13
<wycats>
Oh I was intentionally using a web api
21:13
<Hixie_>
i'm confused
21:13
<Hixie_>
i meant a page that has many scripts
21:13
<Hixie_>
would maybe want this registry populated with those scripts, right?
21:13
<Hixie_>
rather than wait until they are parsed
21:14
<wycats>
Scripts aren't modules :/
21:14
<Hixie_>
oh? what's the difference
21:14
<wycats>
You're saying you want to populate the registry with module strings but not trigger an eager parse?
21:15
<Hixie_>
suppose the page has five scripts from CDNs
21:15
<Hixie_>
and they haven't arrived yet
21:15
<wycats>
Scripts are just top level programs. Modules are scoped
21:15
<Hixie_>
oh i mean <script>s
21:15
<Hixie_>
they could be modules
21:15
<Hixie_>
assume they are modules
21:15
<Hixie_>
anyway, there's also an inline <script> that says to import jquery or whatever
21:16
<Hixie_>
without some mechanism in the markup, the browser has no idea which of the five CDN-hosted files has jquery
21:16
<Hixie_>
since it won't even hear back from the CDN for another 200ms
21:16
<wycats>
I'm on my phone ATM... There are specific things to discuss here but they're hard to type on a phone
21:16
<wycats>
Tonight?
21:17
<Hixie_>
sure
21:17
<Hixie_>
ping me whenever
21:18
<wycats>
tl;dr there are thoughts on bundling that are related to what you're doing
22:06
<arv>
annevk, smaug____ What was the reason to copy the encoding when we clone document nodes?
22:09
<annevk>
arv: reason? I dunno. I thought we just wanted to define what Gecko did...
22:09
<annevk>
arv: there's observable effects for URLs and <form> though
22:10
<annevk>
holy backlog
22:10
<arv>
annevk: Ah... thanks, that answers my question.