00:41
<MikeSmith>
have to pipe all of Mark Watson's e-mail public-html messages to "lynx -stdin -force_html" in order to figure out which parts are where he's quoting somebody and which parts he's saying himself
00:45
<MikeSmith>
well, need to do it for other messages to the list
00:45
<MikeSmith>
it's just that Mark's messages are ones that I actually want to read
03:43
<kennyluck>
"In this case, it seems entirely reasonable for other browsers (e.g., Firefox) to want to implement this feature. By putting it on navigator, we invite them to implement it as well."
03:44
<zewt>
netscape navigator? heh
04:27
<mrofsucof>
Hi... If a page gets opened in a hidden iframe by an anchor getting clicked, does its style become visited?
06:44
<MikeSmith>
"Zed Shaw out-Crockfords Crockford"
07:01
<hsivonen>
MikeSmith: that's a good way to put it
07:02
<hsivonen>
so I generated a public key pair using msys ssh and then copied the .pub file's line to .ssh/authorized_keys on the server
07:02
<hsivonen>
doesn't let me log in
07:02
<hsivonen>
where do I need to look?
07:03
<hsivonen>
Permission denied (publickey).
07:03
<MikeSmith>
hsivonen: you did ssh -v -v on the client?
07:03
<hsivonen>
no
07:04
<MikeSmith>
when I have problems I find that usually gives some worthwhile troubleshooting info
07:04
<MikeSmith>
hsivonen: also, you know it won't work if you don't have the perms set your .ssh directory on the serve
07:04
<MikeSmith>
and files in there
07:05
<MikeSmith>
all need to be 600
07:06
<hsivonen>
the other keys there work
07:07
<rniwa>
sigh... why are we keep changing microdata API spec :(
07:07
<Ms2ger>
rniwa, because it's bogus :)
07:08
<hsivonen>
MikeSmith: the troubleshooting info just looks like the server didn't accept the key
07:08
<MikeSmith>
ok
07:08
<hsivonen>
MikeSmith: that, or the client offered the private key as the public key
07:08
<MikeSmith>
eh?
07:09
<hsivonen>
which would be terrible default config
07:09
<MikeSmith>
that would be weird
07:09
<hsivonen>
Offering public key: /home/Henri/.ssh/id_rsa
07:09
<hsivonen>
I hope that means really offering .pub
07:16
<hsivonen>
ssh-add -l says could not open connection to your authentication agent
07:16
<hsivonen>
the client side seems right
07:17
<MikeSmith>
hsivonen: you did eval `ssh-agent` already I guess
07:17
<hsivonen>
do I need to somehow make the server refresh authorized_keys changes? I don't remember having to do that before
07:17
<MikeSmith>
no
07:17
<MikeSmith>
you definitely don't need to do that
07:19
<hsivonen>
MikeSmith: I don't know what to do with the output of ssh-agent
07:19
<MikeSmith>
you need to eval it
07:20
<annevk>
rniwa: it changed?
07:20
<MikeSmith>
but anyway if you got that wrong you would still be able to ssh to that host
07:20
<rniwa>
annevk: yeah, it was clarification
07:20
<rniwa>
annevk: but nonetheless affected us
07:20
<MikeSmith>
hsivonen: the agent only affects forwarding once your on the remote host, right?
07:20
<Ms2ger>
I know that bz filed half a dozen bugs on it too
07:20
<rniwa>
annevk: elements with propitem="" should not be listed in the list :(
07:20
<hsivonen>
MikeSmith: now ssh-add -l says the agent has no identities
07:20
<rniwa>
annevk: anyway, i'm going to ask the contributor who has been implementing microdata API in webkit
07:20
<hsivonen>
MikeSmith: I have no clue what the agent does
07:20
<rniwa>
annevk: to submit our tests to w3c
07:21
<rniwa>
annevk: since we already have a quite few that are really good :)
07:21
<annevk>
I think Opera has submitted a bunch of tests already
07:21
<Ms2ger>
Yeah
07:21
<Ms2ger>
And David improved them when he implemented it in Gecko
07:21
<MikeSmith>
hsivonen: "eval $(ssh-agent) && ssh-add"
07:21
<annevk>
http://w3c-test.org/html/tests/submission/Opera/microdata/001.html
07:21
<annevk>
oh I see
07:21
<annevk>
Opera fails tests too now :/
07:22
<rniwa>
annevk: oh nice!
07:22
<rniwa>
annevk: we should import those.
07:23
<hsivonen>
MikeSmith: thanks, but permission still denied
07:24
<hsivonen>
MikeSmith: and the client debug output suggests it was offering the right key anyway
07:24
<MikeSmith>
ok
07:24
<Ms2ger>
rniwa, review appreciated :)
07:24
<hsivonen>
aargh. why do things that usually just work have to fail mysteriously?
07:26
<rniwa>
Ms2ger: review which?
07:26
<Ms2ger>
The test
07:26
<rniwa>
Ms2ger: opera's?
07:26
<rniwa>
Ms2ger: I've asked the contributor to import 001.html
07:26
<Ms2ger>
Yeah
07:26
<rniwa>
Ms2ger: so presumably he's going to run it and verify that it works in webkit :)
07:28
<MikeSmith>
hsivonen: does the "ssh -v -v" output ever get to the point of saying "debug2: we sent a publickey packet, wait for reply"
07:29
<hsivonen>
MikeSmith: yes
07:29
<MikeSmith>
hsivonen: but not to "debug1: Server accepts key: ..."
07:29
<hsivonen>
MikeSmith: no
07:29
<MikeSmith>
that sucks
07:30
<MikeSmith>
so yeah, it seems like the client side is fine
07:30
<hsivonen>
MikeSmith: next it proceeds to trying id_dsa which doesn't exist
07:30
<hsivonen>
MikeSmith: yeah
07:30
<hsivonen>
MikeSmith: the server side is OK with keys from Ubuntu's OpenSSH, Mac OS X's OpenSSH and irssiconnectbot
07:31
<rniwa>
Ms2ger, annevk: arkos is the one who has been implementing microdata API in webkit.
07:31
<Ms2ger>
Hi arkos!
07:31
<MikeSmith>
hsivonen: I guess you don't have root on the server? Can't tail /var/log/auth.log ?
07:31
<rniwa>
Ms2ger, annevk: he's from Motorola and has been writing excellent patches :D
07:32
<arkos>
Ms2ger: hi
07:32
<rniwa>
arkos: Ms2ger works on Mozilla
07:32
<rniwa>
arkos: and annevk works on Opera
07:32
<arkos>
rniwa: ok
07:33
<rniwa>
arkos: both them are very active in standard bodies :)
07:34
<arkos>
rniwa: ok.. gr8
07:34
<rniwa>
Ms2ger, annevk: speaking of which, our microdata API is near completion
07:35
<rniwa>
arkos just submitted one last feature we were missing: propertynodelist
07:35
<Ms2ger>
Opera did it first :)
07:35
<rniwa>
submitted a patch for*
07:35
<rniwa>
Ms2ger: i know!
07:35
<rniwa>
Ms2ger: it's nice to have two implementations, right?
07:35
<Ms2ger>
And we did it second :)
07:35
<asmodai>
annevk et al: would making math on wikipedia a user option also be a step in the right direction?
07:35
<rniwa>
Ms2ger: oh, Mozilla has already implemented it?
07:35
<Ms2ger>
Yes
07:35
<rniwa>
Ms2ger: nice!
07:35
<Ms2ger>
Ever since last week or so
07:36
<rniwa>
Ms2ger: cool. i wasn't aware of this :\
07:36
<Ms2ger>
You can still beat IE ;)
07:37
<arkos>
Ms2ger: you are right :)
07:37
<rniwa>
Ms2ger: oh well, arkos is new to webkit
07:38
<rniwa>
Ms2ger: and he has been single-handedly writing code to support microdata API as his first contribution to webkit
07:38
<rniwa>
Ms2ger: so we can't complain :)
07:38
<Ms2ger>
You're always welcome to join Mozilla too, of course :)
07:38
<rniwa>
Ms2ger: LOL
07:38
<Ms2ger>
We could use people like that :)
07:39
<annevk>
"WebGL generates a WebGLContextEvent event"
07:39
<annevk>
euh
07:39
<MikeSmith>
hsivonen: you're sure you're logging in with the right username? I mean, with the username for that host set in your .ssh/config or set with "ssh -l foo" on the command line?
07:39
<annevk>
asmodai: what does that mean?
07:39
<MikeSmith>
hsivonen: because if you don't have the right username, it won't tell you
07:40
<MikeSmith>
I think it will just give you the same unhelpful "Permission denied (publickey)." message
07:40
<annevk>
ooh
07:41
<annevk>
some of the event language in WebGL is quite good
07:45
<arkos>
Ms2ger, annevk, rniwa nice talking to you guys.. hopefully our implementation gets enabled soon...
07:46
<annevk>
oh Google won the Java fight?
07:46
<annevk>
arkos: yeah, good luck :)
07:46
<rniwa>
annevk: yeah we did :D
07:46
<annevk>
rniwa: missed that, cool
08:06
<rniwa>
Ms2ger: is PropertyNodeList a live node list?
08:07
<rniwa>
annevk, Ms2ger: it's not vacuously obvious from the spec :\
08:07
<rniwa>
i'd assume it's not live since it doesn't explicitly say it's live
08:09
<rniwa>
Hixie: ?
08:11
<annevk>
"The namedItem(name) method must return a PropertyNodeList object representing a live view of the HTMLPropertiesCollection object"
08:12
<rniwa>
annevk: does that mean PropertyNodeList itself is live?
08:12
<annevk>
it represents a live view
08:12
<rniwa>
annevk: i thought it just mean that HTMLPropertiesCollection itself is live.
08:12
<annevk>
not sure what else that could possibly mean
08:13
<rniwa>
annevk: oh yeah, i guess i agree with you on my second reading.
08:13
<rniwa>
guess i need more tea :\
08:13
<rniwa>
annevk: thanks for the response.
08:17
<annevk>
http://rogerandmike.com/post/24006177542/html5-the-next-big-thing-for-content "How far will pendulum go????"
08:17
<annevk>
what am I reading?
08:20
<Velmont>
hahaha, that's hilarious :D
08:20
<Velmont>
HTML 5 represents new life for the world wide web, but it will almost certainly not be a smooth transition from HTML 4.
08:21
<Velmont>
and this one: HTML 5 is still in its infancy. Important functionality – such as that needed for commerce – has not yet been enabled. Even though it is not ready to replace HTML 4 on wired PCs, HTML 5 enables new and wonderful experiences on mobile devices.
08:21
<annevk>
i am as high as kite
08:22
<Velmont>
I suspect most content creators will not rush into HTML 5 because it only supports a narrow set of use cases and platforms.
08:22
<MikeSmith>
unlock tantric HyperNet pendulum awareness now! with Roger and Mike!
08:24
MikeSmith
adds "HyperNet" and "pendulum" to the DB for http://logopoeia.com/wisdom/
08:25
<annevk>
"Adopt the rule of pseudo-atomic instability as your guide."
08:27
<jgraham>
I think you're being unfair. That was much better than most other examples of machine generated spam
08:41
<MikeSmith>
hahaha "the unarguable rule of bio-pendulum-pseudo-time instability follows directly from vibro-tantric law."
08:45
<rafaelw_>
hsivonen: yt?
08:46
<rniwa>
"(there is no standard HTML 5 for Android)" !?
08:47
<rafaelw_>
rniwa: holy moly: isn't it 2am there?
08:47
<rniwa>
rafaelw_: yeah.
08:47
<rafaelw_>
yikes =-).
08:47
<rniwa>
rafaelw_: are you in Europe or something?
08:47
<rafaelw_>
Israel.
08:48
<rafaelw_>
PST + 10
08:48
<rniwa>
rafaelw_: ah, that's right.
08:48
<rniwa>
rafaelw_: Tel-Aviv?
08:48
<rafaelw_>
yup. coming up on noon here.
08:48
<rniwa>
cool.
08:48
<hsivonen>
rafaelw_: yes
08:48
<rafaelw_>
hi there.
08:48
<rafaelw_>
curious where you're standing on Document.parse() at the moment.
08:49
<rafaelw_>
Hixie is clearly worried about encouraging innerHTML-like patterns. Do you share that worry?
08:50
<hsivonen>
rafaelw_: I can see Hixie's point. I also see that Document.parse() is polyfillable (by compiling the Validator.nu parser into JS using GWT, for example) while E4H isn't polyfillable
08:50
<annevk>
hsivonen: http://qfox.nl/weblog/247
08:51
<hsivonen>
rafaelw_: so I agree that what Hixie proposes would be better in principle, but I think it has political and practical downsides that will be a problem in terms of time to market and deployability
08:51
<rafaelw_>
Is there any reason to see them as mutually exclusive?
08:51
<hsivonen>
rafaelw_: nothing other than more total implementation work
08:52
<rafaelw_>
Document.parse() strikes me as fixing a practical current problem in a way which is consistent with the oddness of the current HTML parser.
08:52
<Ms2ger>
And bigger API surface, I guess
08:53
<rafaelw_>
E4H strikes me as a longer-term, but potentially larger impact feature -- which is akin to designing a new HTML parser.
08:53
<hsivonen>
rafaelw_: I agree on both counts
08:53
<rafaelw_>
I.e. Has behavior which is very different from the current parser.
08:53
<rafaelw_>
what about the script exectuability issue?
08:55
<hsivonen>
rafaelw_: does jQuery specifically make them executable or is that an accidental side effect of impl details?
08:55
<rafaelw_>
i don't happen to know the design history, but i'd be surprised if it wasn't intentional.
08:55
<hsivonen>
rafaelw_: I would prefer to make scripts executable but if the jQuery behavior is intentional, it's probably best to go with executability
08:55
<hsivonen>
*prefer to make *un*executable
08:55
<rafaelw_>
right.
08:55
<asmodai>
annevk: It was something we were discussing on #cldr yesterday
08:56
<hsivonen>
rafaelw_: so yeah, I guess I can live with making them executable
08:56
<asmodai>
annevk: in order to encourage uptake on MathML. I am not sure if I can get wikimedia/wikipedia crazy enough to switch 100% to presentation mathml and ditch the other stuff
08:56
<hsivonen>
rafaelw_: it will be a huge footgun when used with anything other than one HTML script element at a time
08:56
<rafaelw_>
i'll ask Yehuda on the thread to clarify. I strongly suspect it's intentional.
08:56
<asmodai>
annevk: So allowing people to turn on mathml usage might already help a bit
08:56
<asmodai>
annevk: via some user preference thing on the wiki
08:56
<annevk>
asmodai: ah yeah
08:57
<hsivonen>
rafaelw_: ok
08:57
<asmodai>
The Unicode folks are eager to adoptation of mathml as well, since it will allow more use of the math code blocks
08:57
<rafaelw_>
hsivonen: any idea when Document.parse() might land in Gecko?
08:58
<annevk>
Is parse() really the best we can come up? How many parser APIs do we need?
08:58
<hsivonen>
rafaelw_: not in June or July
08:58
<asmodai>
parse all the documents!
08:58
<annevk>
DOMParser / innerHTML / outerHTML / insertAdjacentHTML()
08:58
<jgraham>
annevk: Depends if you count normal document loading as an API :)
08:59
<Ms2ger>
createContextualFragment
08:59
<jgraham>
createContextualFragment
08:59
<jgraham>
dammit
08:59
<Ms2ger>
Yay, Gecko naming stuff
08:59
<annevk>
I'd rather we investigate this a bit more before we start shipping yet another one
08:59
<annevk>
it's already quite the mess
09:00
<rafaelw_>
annevk: Can you clarify what exactly you're objecting to.
09:00
<rafaelw_>
Is it just adding a different API call? New behavior?
09:00
<annevk>
adding a new API of which we are not even sure it's the best solution, but we're doing it for some short-term progress
09:01
<annevk>
at least that's the impression I get
09:01
<annevk>
and it's not even clear to me if we get short-term progress, because it will take a long time for IE to get there
09:02
<rafaelw_>
Well, I think Hixie has confused the issue a bit by raising the prospect of a fairly radical new approach.
09:02
<rafaelw_>
In my view the basic question is creating the ability for the *existing* html parser to be able to contruct dom from markup without a context element.
09:03
<rafaelw_>
There are two manifestations of this: (1) Imperative, e.g. Document.parse(), and (2) Declarative. e.g. <template>
09:04
<jgraham>
Ms2ger: (I find whenever you think "WTF were people at Netscape/Mozilla thinking" it helps to reread http://www.mozillazine.org/articles/article177.html Then everything becomes clear)
09:04
<rafaelw_>
Both are patterns that are already widely is in use and very poorly supported, resulting in lots of developer contortions and hacks.
09:04
<jgraham>
(+working on early gecko)
09:05
<rafaelw_>
If we want to essentially design a new HTML parser, I think that'd be grand, but it's a much bigger project whose motivations are fairly different.
09:05
<Ms2ger>
"Design patterns were an important part of our modeling processes."
09:05
<Ms2ger>
That's his fault?
09:05
<annevk>
it's not exactly a new HTML parser; it's a way to represent Node objects in JavaScript
09:06
<Ms2ger>
Where does that guy live?
09:06
<rafaelw_>
i think that's the motivation. i think the design is a new parser.
09:06
<rafaelw_>
in hixie's world, that parser lives in ECMAScript.
09:07
<rafaelw_>
at least conceptually: where parser == "a process for converting a character stream into a DOM structure"
09:07
<jgraham>
annevk: document.write into a DOM-created document
09:07
<annevk>
sure
09:07
<annevk>
jgraham: XMLHttpRequest + data URLs
09:07
<hsivonen>
Ms2ger: I think it would be unfair to blame it all on rickg, but as I understand it, the Patterns came to Netscape from Digital Style
09:08
<hsivonen>
Ms2ger: so blame the Digital Style team more broadly
09:09
<annevk>
rafaelw_: I can see your point from the perspective of accomplishing that task; but if you look at the use cases and how they are best addressed it becomes a little less clear I think
09:10
<hsivonen>
rafaelw_: I think this is mainly about getting DOM literals in JS in an expedient way that doesn't involve TC39 changing the language
09:10
<annevk>
rafaelw_: that combined with Document.parse() being unlike anything we have for HTML parsing thus far, I'd rather have some stronger agreement that it is the way to go
09:10
<hsivonen>
rafaelw_: might be worthwhile to at least ping TC39 before proceeding to rout around them
09:11
<hsivonen>
sad things happen when groups route around TC39
09:11
<hsivonen>
see arraybuffer endianness
09:11
<annevk>
TC39 will echo quasi
09:11
<rafaelw_>
annevk, hsivonen: you see adding Document.parse() as routing around TC39?
09:12
<hsivonen>
rafaelw_: yes
09:12
<jgraham>
Alterntaive point of view: sad things happen when we wait too long for TC39 to get their shit together - see arraybuffers
09:12
<rafaelw_>
how so?
09:12
<hsivonen>
rafaelw_: we wouldn't need Document.parse() for its main use case if TC39 gave us E4H
09:13
<jgraham>
(we should have got clueful people making a binary API several years before the web GL people finally needed one)
09:13
<hsivonen>
jgraham: indeed
09:13
<annevk>
othermaciej submitted proposals to no avail
09:14
<rafaelw_>
How bad is it add Document.parse() in a world where we eventually get E4H (or something like it)?
09:14
<hsivonen>
rafaelw_: not too bad, IMO, though it might lessen the chance of E4H happening eventually
09:14
<jgraham>
To me it doesn't seem that bad
09:15
<rafaelw_>
Why would it lessen the chance of E4H?
09:15
<hsivonen>
rafaelw_: less need for a clean solution if as "almost there" solution already exists
09:15
<jgraham>
We already have N ways of doing something nearly the same so N+1, with the 1 designed toi better fit the actual use cases doesn't seem like it can be much worse
09:15
<annevk>
given how we still try to remove cruft from the platform I'd say that redundant APIs are bad
09:16
<jgraham>
Plus I expect E4H to be harder than people expect
09:16
<hsivonen>
annevk: if <template> parsing happens with the same parser states, Document.parse() is super-cheap if <template> happens anyway
09:16
<annevk>
hsivonen: it's not cheap to just throw tons of APIs at developers and let them choose
09:16
<hsivonen>
though I intend to fight <template> happening the way currently proposed with wormholes to other DOMs
09:16
<rafaelw_>
annevk: Document.parse() can still be DocumentFragment.innerHTML (I think mainly Henri's preference that it be Document.parse()).
09:17
<rafaelw_>
It doesn't strike me as redudant at all. It seems like adding a clearly need missing bit of innerHTML.
09:17
<jgraham>
I also have a strong preference for .parse fwiw
09:17
<hsivonen>
rafaelw_: I indeed prefer Document.parse() over DocumentFragment.innerHTML
09:17
<rafaelw_>
i agree with the Document.parse() decision.
09:18
<rafaelw_>
i'm just pointing out that the new API call is making it look more redudant than it is. The feature really lives in the parser logic. Not in the API call.
09:18
<annevk>
there's a ton of parser logic that is not exposed
09:20
<jgraham>
I think the anti-cruft argument is pretty silly if platform libraries are having to implement the feature themselves but in a more unpleasant way
09:21
<jgraham>
That seems to be the case here
09:21
<annevk>
because we don't have a sane way to create a Node objects
09:21
<rafaelw_>
Also, it just seems wrong to me to avoid giving developers something that will clearly help them because we're worried that doing so creates complacence for doing something larger.
09:22
<rafaelw_>
FWIW, I see the valid of E4H or similar as totally orthogonal to parsing without a context element.
09:22
<rafaelw_>
s/valid/value
09:23
<annevk>
I don't see the problem with taking some time to find out what the actual options are
09:23
<rafaelw_>
do you mean seeing whether TC39 is open to E4H?
09:24
<jgraham>
The TC39 release cycle is so crazy-long that I am very skeptical of solutions that put them on the critical path
09:24
<annevk>
you do realize that it'll take at least two years and probably up to five before developers can use any solution here without a supporting library?
09:25
<annevk>
it's not like a few months will matter
09:25
<jgraham>
But the ES committee works in cycles of a few years
09:26
<annevk>
sure, but if they're behind it (or something else) that can be prototyped and shipped
09:26
<annevk>
just as browsers have always shipped JavaScript stuff before the standard was done
09:26
<rafaelw_>
FWIW, i think we should stop accommodating the slow-update-cycle UAs by thinking in terms of years. The web is going to loose that way.
09:26
<jgraham>
Usually what happens is that browsers ship one thing then the committee change it and everyone has to implement something else
09:27
<annevk>
rafaelw_: as long as IE has market share that's the reality, no?
09:27
<annevk>
jgraham: yeah we should stop catering to that nonsense...
09:27
<rafaelw_>
IE is moving slowly towards shorter half-life. we should be creating more not less pressure in this direction.
09:30
<annevk>
no disagreement there
09:31
<annevk>
I'd still like us to evaluate our options though before adding more API surface
09:31
<rafaelw_>
Can we find a way to make the "evaluating our options" finite?
09:32
<rafaelw_>
I'm worried that we're stacking a very real helpful proposal up against and huge unknown.
09:33
<rafaelw_>
Do we have any indication that the JS folks will be friendly to something like E4H? Surely this idea has been floated by Brenden or Dave Herman already in some form?
09:33
<annevk>
Last time they thought quasis were better
09:34
<rafaelw_>
And you think they'll react differently now?
09:34
<annevk>
but quasis don't have compile-time checking or a definition
09:34
<rafaelw_>
or can be convinced?
09:34
<annevk>
I don't know
09:35
<annevk>
if E4H works for browsers and developers we should just do that imo, irrespective of whether it receives TC39 blessing
09:37
<annevk>
rafaelw_: in one of those threads I pointed to previous discussion I believe; in the thread where Hixie made his proposal
09:42
<rniwa>
annevk, jgraham, hsivonen, rafaelw_: it appears to me that we should at least continue the discussion on the parsing algorithm for template element regardless of what we decide to do with Document.parse
09:44
<rafaelw_>
rniwa: couldn't agree more =-)
09:44
<rniwa>
From API perspective, template element avoids some of objection from Hixie and others in that it doesn't introduce new string-literal-to-DOM API to scripts.
09:44
<rniwa>
in fact, if we just add template element & avoid adding Document.parse, it'll encourage authors to use declarative model
09:44
<annevk>
yeah the only thing controversial with <template> seems to be what happens to the elements
09:44
<rniwa>
instead of imperative model they're currently stuck with.
09:45
<rniwa>
annevk: yeah. :\
09:45
<annevk>
controversial thing*
09:45
<rniwa>
children vs. fragment.
09:45
<rafaelw_>
annevk: yup.
09:45
<rafaelw_>
henri: any chance you're willing to be challenged on the children vs fragment issue here?
09:45
<rniwa>
annevk: i have increasingly convinced that putting it in fragment makes sense to avoid many problems
09:46
<rniwa>
but then what should template.innerHTML, etc... should do?
09:46
<rniwa>
e.g. what happens if you added children to a temple element?
09:46
<rafaelw_>
if <template> were to land, Document.parse() could be polyfilled in about 5 lines.
09:46
<rafaelw_>
and it doesn't remove any pressure around HTML literals in JS.
09:46
<rniwa>
rafaelw_: how so?
09:47
<rafaelw_>
Document.parse = function(markup) {
09:47
<rniwa>
rafaelw_: will you wrap markup in "<template>"?
09:47
<rafaelw_>
var t = document.createElement('template'):
09:47
<rafaelw_>
t.innerHTML = markup;
09:47
<annevk>
rniwa: fragment makes sense to me too and I think innerHTML and such should just operate on the normal DOM, not the fragment
09:47
<rafaelw_>
return t.cotent; }
09:47
<rniwa>
rafaelw_: there, you're assuming that innerHTML works on fragment.
09:47
<rafaelw_>
nope. i'm assuming innerHTML works on <template>
09:48
<rniwa>
rafaelw_: but as annevk just replied, a saner behavior might be to work on the real children.
09:48
<rniwa>
rafaelw_: oh oops, you're right but you're assming that it'll sync fragment on demand.
09:48
<jgraham>
innerHTML not working in the expected way on template would be insane
09:48
<annevk>
"the expected way" lol
09:49
<hsivonen>
jgraham: isn't that the current spec situation? stuff goes on the other side of the wormhole
09:49
<rafaelw_>
annevk: i'm not clear on what you are suggesting. what would this do?
09:49
<jgraham>
i.e. if <template>foo</template> != template.innerHTML = "foo" there will be rioting on the streets
09:49
<rniwa>
annevk: +1 to that LOL
09:49
<rafaelw_>
document.createElement('div').innerHTML = "<template><div>Hello</div></template>";
09:49
<rniwa>
jgraham: so you think that setting innerHTML should update the fragment as well?
09:49
<annevk>
jgraham: but that's kind of the point of <template>...
09:49
<annevk>
jgraham: that you can't see it's children
09:50
<rniwa>
jgraham: but then it's kind of weird in that
09:50
<rniwa>
jgraham: this innerHTML will replace fragment
09:50
<jgraham>
The invariant should be just what I said
09:50
<rniwa>
and don't insert "real" children :\
09:50
<annevk>
<template>foo</template> you want <template>.firstChild to be null
09:50
<annevk>
if innerHTML is suddenly magic, riot on some other set of streets
09:50
<rniwa>
annevk: i think jgraham is suggesting that we sitll do that but then update fragment.
09:51
<annevk>
rniwa: and getting innerHTML does what?
09:51
<rniwa>
annevk: which seems like a good idea at the beginning 'til we start thinking about appendChild
09:51
<rniwa>
jgraham: consider while (~) t.appendChild(~);
09:51
<rafaelw_>
I see the design goal of <template> is that it's contents are *not* in the document.. for all purposes *except* serialization.
09:51
<rniwa>
jgraham: in this case, every call to appendChild should either replace the fragment or add new child to fragment...
09:52
<jgraham>
Well I have no idea what should happen if you do appendChild and you are using magic documents
09:52
<annevk>
rafaelw_: why would you serialize it?
09:52
<jgraham>
Breaking that is marginally less surprising than breaking innerHTML though
09:52
<rniwa>
jgraham: agreed.
09:52
<annevk>
jgraham: define "breaking"
09:52
<rniwa>
jgraham: but we need to come up with some sane behavior there as well.
09:53
<jgraham>
annevk: I already did
09:53
<rniwa>
annevk: i.e. replace fragment.
09:53
<rafaelw_>
annevk: it's serialzed in the page which is sent to the client.
09:53
<rniwa>
annevk: or whatever the content template is.
09:53
<annevk>
jgraham: I think what you are suggesting is breaking innerHTML
09:53
<annevk>
jgraham: because it would be a special code path for <template>
09:53
<rniwa>
annevk: it doesn't, if we keep children of template element as real children
09:54
<rniwa>
annevk: so i think jgraham is indirectly pointing at keeping them as real children.
09:54
<jgraham>
annevk: Whether it needs a special codepath is pretty irrelevent
09:54
<annevk>
but that breaks getElementsByTagName() etc. and requires parent chain checks besides Windowness checks for <img>
09:54
<annevk>
rniwa: ^^
09:54
<rniwa>
annevk: right.
09:54
<rniwa>
annevk: the question is which breakage is saner :\
09:54
<jgraham>
It only needs a special codepath if parsing <template> in general needs a special codepath
09:55
<rniwa>
annevk: it's sort of a trade off here.
09:55
<rafaelw_>
annevk: can you define "breaks getElementsByTagName"
09:55
<annevk>
<template><div></div></template> you don't want to see that <div> during normal DOM traversal I think
09:55
<rniwa>
annevk: on one hand, putting template in a fragment will let us get away with problems in getElement(s)by*, querySelector, script loading, etc....
09:55
<rafaelw_>
i think that getElementsByTagName, querySelector, getElementById *have to* not match template contents.
09:55
<rniwa>
annevk: but on the other hand, it breaks innerHTML, appendChild, etc... on template element
09:56
<Ms2ger>
rafaelw_, otoh, that breaks XHTML
09:56
<rafaelw_>
we discussed the XHTML the W3C F2F
09:56
<annevk>
got to go
09:56
<rniwa>
annevk: ttyl/
09:56
<rafaelw_>
the consensus was that we need to leave it to XML to "fix" the breakage if they care to.
09:57
<rafaelw_>
Ms2ger: ^^
09:57
<rafaelw_>
I.e. the goal here is to create behavior which is fundamentally incompatible with the XML parser. If XML wants to add this to the parser, they can do that.
09:58
<rafaelw_>
bye anne. ;-)
09:58
<jgraham>
The goal seems to be to create behaviour that is fondamentally incompatible with the DOM :)
09:58
<jgraham>
*fundamentally
09:58
<Ms2ger>
Another question
09:58
<Ms2ger>
<template><div></div></template>
09:59
<Ms2ger>
What's div.parentNode?
09:59
<rafaelw_>
i know it seems that way, but what's being proposed is formally supporting exactly what *literally* every dynamic webapp is already doing.
09:59
<Ms2ger>
http://xkcd.com/725/
09:59
<jgraham>
I understand that there are use cases here
10:00
<jgraham>
But it seems to be non-trivial to solve them in a clean way at this level
10:00
<rafaelw_>
Ms2ger: ;-). I actually thought about that when i wrote the word "literally" and decided to use it.
10:01
<rafaelw_>
The number of webapps which construct DOM without some form of templating is effectively 0.
10:03
<jgraham>
I even wrote *literally* the worst templating system in the world once
10:03
<rniwa>
i think we need to decide whether we're putting contents of the template in a fragment or not.
10:03
<Ms2ger>
jgraham, oh, I didn't know you were involved with DOM1?
10:03
<rniwa>
almost everyone agrees that we want template element.
10:04
<jgraham>
Hah
10:04
<rniwa>
everyone is* agreeing*
10:04
<rniwa>
it's the matter of deciding what exactly template element is.
10:04
<Ms2ger>
Literally everyone? :)
10:04
<rniwa>
Ms2ger: no.
10:05
<rniwa>
Ms2ger: because there is always a non-zero probably that someone would come and disagree with us.
10:05
<rniwa>
Ms2ger: i would not risk myself being wrong by saying "literally" there.
10:05
<Ms2ger>
Smart man :)
10:05
<rniwa>
:)
10:05
<rniwa>
indeed i'm extremely risk adverse.
10:06
<rniwa>
averse*
10:06
Ms2ger
would still like an answer to his parentNode question
10:06
<rniwa>
Ms2ger: i think it'll be a document fragment
10:06
<Ms2ger>
?!
10:06
<jgraham>
Ms2ger: That seems to be the crux of the issue
10:06
<rniwa>
Ms2ger: if we decide to put contents of template element in a fragment
10:07
<rniwa>
Ms2ger: if we don't, and keep them as real children of template element, then it'l be the template element.
10:07
<rafaelw_>
ms2ger: the divs parent node would be the template element's "content" DocumentFragment.
10:07
<rniwa>
rafaelw_: if we decide to go with that route.
10:07
<Ms2ger>
Anyway, I object to anything where node.parentNode.childNodes doesn't include node
10:07
<rniwa>
Ms2ger: that works in both cases.
10:08
<jgraham>
I think that invariant holds
10:08
<rniwa>
Ms2ger: if parentNode is a document fragment, then the document fragment's childNodes will certainly include the node.
10:08
<Ms2ger>
jgraham, not in Gecko, and it's horrible
10:08
<jgraham>
In the fragment case the weirdness is that the <template> element has no children
10:08
<rniwa>
Ms2ger: !?
10:08
<Ms2ger>
XBL
10:08
<jgraham>
Ms2ger: I point, and I laugh
10:08
Ms2ger
patpats jgraham
10:09
<rniwa>
Ms2ger: i'd just say "scumbag XBL" and stop there.
10:09
<rafaelw_>
Wait. Surely you jest.
10:09
<Philip`>
I like the phrase "Security will be present by the beginning of the year or so." (from http://www.mozillazine.org/articles/article177.html)
10:09
<Ms2ger>
In our implementation? I don't think that'll work :)
10:09
<rniwa>
jgraham: yeah, and what should happen when you assign something to innerHTML
10:10
<rafaelw_>
"node.parentNode.childNodes doesn't include node" isn't true with DF's in gecko>
10:10
<rafaelw_>
?
10:10
<rniwa>
jgraham: or add or remove children to the template element :\
10:10
<Velmont>
Philip`: Yeah, that was weird, and funny
10:10
<jgraham>
rniwa: One could of course make appendChild and various other methods throw in the case that the parent is a template
10:10
<Ms2ger>
rafaelw_, dunno about DF's, but it can be that way if node is the root of an XBL tree
10:10
<Ms2ger>
Or something
10:11
<rniwa>
jgraham: i guess, that's an acceptable solution.
10:11
<rniwa>
jgraham: but then there are LOTs of APIs that do this :\
10:11
<rniwa>
jgraham: e.g. you can create a Range inside the template (not in its fragment)
10:11
<jgraham>
Well the other option is just to let it work, but be slightly weird
10:12
<rniwa>
jgraham: and call one of those fancy manipulation APIs
10:12
<jgraham>
True
10:12
<rniwa>
jgraham: it's also not entirely clear what should outerHTML should do :(
10:13
<rafaelw_>
What if we made <template> behave kind of like <script> and have it's contents be "refected" by a text node which is it's first child node.
10:13
<rafaelw_>
?
10:13
<rniwa>
scumbag DOM APIs. we should just kill all of them and start fresh.
10:13
<Ms2ger>
rniwa, dash?
10:13
<jgraham>
rafaelw_: I think I suggested that before and there were problems
10:13
<jgraham>
I'm not sure what they were though
10:13
<rniwa>
Ms2ger: i'd call it CleanDOM 1.0. there is no script and no css. pure semantic HTML. that's it.
10:14
<rniwa>
Ms2ger: in fact, there's not even DOM!
10:14
<Ms2ger>
It's XHTML2? :)
10:14
<rafaelw_>
yeah. you did. i didn't like it at the time, but given the worry about breaking the existing assumptions, it's starting to look more appealing.
10:15
<rniwa>
rafaelw_: what should happen if someone tried to add non-text node to template?
10:15
<Ms2ger>
Also
10:15
<rafaelw_>
hmm... but then there's the problem of sub-templates.
10:15
<rafaelw_>
<sigh>
10:15
<rniwa>
rafaelw_: yeah, i was about to say that :\
10:15
<Ms2ger>
We've just got replaceChild() and friends specced right, please don't mess with them :)
10:15
<rniwa>
rafaelw_: i think that was one big reason you didn't want the text-based template
10:16
<rniwa>
Ms2ger: are you sure it's spec'ed "right"? i bet there are few bugs, etc... hanging there :P
10:16
<Ms2ger>
rniwa, in WebKit? Yes ;)
10:16
<rafaelw_>
Ms2ger: doesn't lifting template contents into a documentfragment meet that requirement?
10:16
<rniwa>
Ms2ger: LOL
10:16
<Ms2ger>
rniwa, (seriously)
10:17
<Ms2ger>
rafaelw_, haven't thought much about it
10:17
<rniwa>
Ms2ger: i know. i'm painfully aware of that.
10:17
<rniwa>
Ms2ger: haven't gotten cycle to fix them :(
10:17
<Ms2ger>
rafaelw_, it seems weird, but maybe it's the best approach
10:17
<rniwa>
Ms2ger: maybe you can convince ojan to work on it :)
10:17
<Ms2ger>
rniwa, anything my tests don't catch? :)
10:17
<rafaelw_>
the current proposal is that it messes with parsing and serialization, but nothing else.
10:18
<Ms2ger>
That's even worse, I can't even punt that to annevk :(
10:18
<rniwa>
rafaelw_: i think we need to define what innerHTML, appendChild, etc... on template element should do.
10:18
<rniwa>
it appears that there are some tricky issues there.
10:19
<Ms2ger>
Hmm
10:19
rniwa
wonders if hsivonen is still around.
10:19
<Ms2ger>
el.innerHTML = '<template><div></div></template>'
10:19
<Ms2ger>
el.appendChild(document.createElement('template')).appendChild(document.createElement('div'))
10:20
<Velmont>
I kinda find it strange that something that is not concrete but an "idea" (a template) is in the HTML at all. It makes for this problem of having to hide it.
10:20
<rniwa>
Ms2ger: if we put the template's content in a fragment, then the latter won't "work".
10:20
<rniwa>
Ms2ger: well, i guess we can make it work if we spec appendChild to work on fragment instead.
10:20
<rniwa>
Ms2ger: but that's kind of weird :\
10:20
<Velmont>
<script>var mytmpl=<div class=whatever></div>;</script> / <template id=mytmpl><div class=whatever></div></template>
10:20
<Ms2ger>
rniwa, I'll murder you slowly and painfully if you do that :)
10:21
<rafaelw_>
i think it's desireable that the latter doesnt' "work".
10:21
<Ms2ger>
Velmont, hmm, I see what you did there :)
10:21
<rniwa>
Ms2ger: i don't think i'll suggest anything as insane as that :)
10:21
<rniwa>
rafaelw_: throws an exception?
10:21
<Velmont>
Ms2ger: .. hmm, what did I do`? :P
10:21
<Ms2ger>
E4H? :)
10:21
<Velmont>
yeah!
10:22
<rniwa>
i've started to think that throwing exceptions as jgraham suggested might be the sanest solution
10:22
<rniwa>
if we go with the fragment approach.
10:22
Ms2ger
broke something when updating testharness.js
10:22
<rniwa>
rafaelw_, Ms2ger: but then we still have to deal with innerHTML, and innerHTMl and appendChild behaving differently is also kind of weird.
10:22
<rafaelw_>
i'm not sure that makes sense.
10:22
<jgraham>
Ms2ger: Updating in which direction?
10:22
<rafaelw_>
scripts don't throw if you append element children.
10:22
<jgraham>
(push or pull)
10:22
<Velmont>
jgraham: possibly the wrong one...
10:22
<Ms2ger>
jgraham, importing the new version
10:23
<jgraham>
Ms2ger: OK
10:23
<Ms2ger>
pull from w3.org, push to m.o
10:23
<rniwa>
rafaelw_: so what happens when you append children via appendChild to a template element?
10:23
<rniwa>
rafaelw_: will it just silently fail?
10:23
<Ms2ger>
rafaelw_, rniwa, img elements don't throw either
10:23
<Ms2ger>
Just put them in the DOM?
10:23
<rafaelw_>
probably the same thing.
10:23
<Velmont>
Ms2ger: I put big warnings when I updated operas version, -- but noone bugged me about it. So went fine for us, I believe.
10:23
<rafaelw_>
they append and live as children, but that just doesn't accomplish anything very interesting.
10:24
<Ms2ger>
Velmont, might be some of the changes to threport.js I sneaked in
10:24
<rniwa>
Ms2ger, rafaelw_: so document.createElement('template').appendChild(e) will insert e as the "real
10:24
<rafaelw_>
yup
10:24
<rniwa>
" child of the template element?
10:24
<Ms2ger>
.childNodes will be [e]
10:24
<rafaelw_>
yes.
10:24
<rniwa>
ok
10:24
<rniwa>
but then it's weird that innerHTML works on fragment then.
10:25
<rafaelw_>
i think script is the precedent here.
10:25
<rafaelw_>
yes. but again the "weirdness" *is* the design goal.
10:25
<Ms2ger>
innerHTML on fragment?
10:25
<rniwa>
Ms2ger: innerHTMl on template
10:25
<jgraham>
BTW pliniss wants to update testharnessreport.js on the W3C server to extract metadata from tests that you add with syntax like test(function() {}, "My foo test", {help:"http://spec/link";})
10:25
<jgraham>
Does that seem OK to others?
10:26
<Ms2ger>
*Linss
10:26
<rniwa>
i've started to think that if we eventually want Document.parse, etc...
10:26
<jgraham>
Oops
10:26
<Ms2ger>
But that seems correct
10:26
<rniwa>
then template.innerHTML should probably work like tempalte.appendChild as well
10:26
<jgraham>
plinss
10:26
<Ms2ger>
s/correct/sane/
10:26
<rniwa>
meaning that it doesn't do anything interesting.
10:26
<rafaelw_>
rniwa: what would
10:26
<rniwa>
because if we expose parse on DocumentFragment, for example,
10:26
<Ms2ger>
I think that special-casing template.innerHTML would be weird
10:27
<rafaelw_>
myDiv.innerHTML = "<template><div>Foo</div></template>"
10:27
<jgraham>
Good, doog. Maybe I will put his patch somewhere it can get proper review
10:27
<rafaelw_>
do?
10:27
<rniwa>
then we can just do template.content.parse(~)
10:27
<jgraham>
WTF
10:27
<Ms2ger>
Doog?
10:27
<jgraham>
Did I just type good backwards?
10:27
<Velmont>
jgraham: hmm. yea. Not doing test(function() {}, { desc: 'My foo test', help: 'http://spec'; }) though?
10:27
<Ms2ger>
You did
10:27
<jgraham>
That is...
10:27
<Ms2ger>
Velmont, eh, more typing :)
10:27
<rniwa>
rafaelw_: that should work. it'll create template with content fragment generated with "<div>foo</div">
10:28
<Velmont>
Ms2ger: I'm just asking the question man! :P
10:28
<rniwa>
rafaelw_: i'm talking about document.createElement('template').innerHTML = ~
10:28
<jgraham>
Velmont: Since titles are non-optional (sort of) that doesn't seem like a big win
10:28
<rniwa>
and suggesting that it should behave like document.createElement('template').appendChild(~)
10:28
<Velmont>
jgraham: Yeah.
10:28
<rniwa>
in that it'll just add it to the real DOM, and not to the content fragment it has.
10:28
<jgraham>
(although I have found myself writing things like async_test(undefined, {timeout:4000}) when I wanted to use document.title as the test title
10:28
<jgraham>
)
10:29
<rafaelw_>
hmm... I gotta go, but i'll look forward to hearing why. =-).
10:29
<rafaelw_>
bye all.
10:29
<jgraham>
bye
10:29
<rniwa>
rafaelw_: bye.
10:29
<Ms2ger>
See you
10:29
<Velmont>
jgraham: Exposing all the variables then?
10:29
<Ms2ger>
jgraham, though, how much metadata does he want to put there?
10:30
<rniwa>
Ms2ger, jgraham: i'm increasingly convinced that if we keep innerHTML, appendChild, etc... to be regular DOM API and let them mutate "real" DOM
10:30
<rniwa>
then fragment approach might be quite sane.
10:30
<jgraham>
Ms2ger: I think he wants it to be possible to put all the things that the CSS WG already use
10:30
<Velmont>
(the full object). -- Although that kinda punts the standardization issue to somewhere else.
10:31
<jgraham>
Let me put the patch somewhere
10:31
Ms2ger
isn't entirely sure what Velmont is saying
10:31
jgraham
neither
10:31
<Velmont>
oh man
10:32
<Velmont>
Ms2ger: If the full object is exposed to testharnessreport.js you could write test(..., { ohmanfancyproprietarystuff: 'infoz' }) and the report could use that information. But I guess we'd want to have people use the same properties for common stuff that we all really want.
10:32
<Velmont>
And not call it like operas_special_spec_link='http://the-spec/bla';
10:33
<Velmont>
But I guess it's all theorethical, because the web won't use it, mostly us few selected test writers :P
10:34
<rniwa>
good night guys ;)
10:34
<Ms2ger>
gn
10:34
<Velmont>
Hm. Doesn't make sense, just ignore my last sentences :P
10:34
<Ms2ger>
OK :)
10:44
<jgraham>
https://github.com/jgraham/testharness.js/commit/dc0ded17117ac14705a1f9aa0f6466b8aae3c845
10:52
<MikeSmith>
jgraham: is that something you think is going to be generally useful, or is yet another thing that only the CSS WG is ever likely to actually use?
10:53
<jgraham>
MikeSmith: I have no idea. I mean, my experience is that test metadata sounds like a great idea and actually doesn't work very well
10:53
<jgraham>
But maybe my experience is wrong
10:54
<MikeSmith>
I guess it doesn't hurt to have it as an option for anybody to make use of it
10:54
<MikeSmith>
as long at it doesn't creep into becoming a requirement at least
10:54
<jgraham>
That is basically my feeling
10:55
<jgraham>
I would rather people spend time writing tests than spend time trying to work out what all the required metadata is, and what the right values are
11:03
<annevk>
<template> is basically XML Data Islands
11:04
<annevk>
but Opera did it first of course
11:04
<MikeSmith>
jgraham: I see you got a open pull request from tobie there to add a readme file
11:05
<MikeSmith>
Opera Awesome Islands
11:05
<Ms2ger>
Duplicating the docs? :/
11:05
<jgraham>
MikeSmith: Yeah I guess I should fix that
11:06
<MikeSmith>
would be good to have some kind of readme
11:06
<jgraham>
Going from git to hg is a bit of a pain :(
11:06
<MikeSmith>
ah yeah
11:06
<MikeSmith>
Ms2ger: there's docs?
11:06
<Ms2ger>
In testharness.js
11:06
<Ms2ger>
That's what he copied
11:06
<MikeSmith>
oh
11:06
<MikeSmith>
hmm
11:07
<jgraham>
Right, I am not that sure about duplicating the docs
11:07
<MikeSmith>
that's not so good
11:07
<MikeSmith>
I don't think the docs should be duplicating
11:07
<MikeSmith>
the readme can just say "docs are in the source of testharness.js"
11:28
<jgraham>
Time to add a readme file: 2 minutes. Time to try and work out how to remove the one line change that accidentially made it into the local commit at the same time: 15 minutes. Mercurial: where mistakes should be punished by making you learn an entire new revision control system to fix them.
11:29
<Ms2ger>
hg revert foo/bar
11:29
<jgraham>
That adds an extra commit
11:30
<Ms2ger>
Oh, why'd you commit before checking if it was right?
11:31
<jgraham>
Because in git you only commit the things that you asked to commit. In hg it commits all changes.
11:31
<Ms2ger>
Yeah, that's really annoying in git :)
11:31
<jgraham>
Well you can always use -a
11:32
<Ms2ger>
Right
11:32
<jgraham>
Also, if you make a mistake and want to fix it you can use the same tools as you use for other operations
11:32
<Ms2ger>
Every time I'm forced to use git, I end up doing commit, cursing, and commit -a
11:33
<Ms2ger>
Fortunately that isn't often :)
11:36
<MikeSmith>
jgraham: "asseertions"
11:36
<MikeSmith>
anyway, thanks for adding it
11:37
<jgraham>
They're like assertions but eith more eeeee!
11:37
<MikeSmith>
hah
11:37
<jgraham>
eith is also like with but with more eeeee!
11:37
<MikeSmith>
a-seer-tions
11:44
Ms2ger
puts e cowboy hat on MikeeeSmith's head
12:03
<AryehGregor>
jgraham, I think you can do hg qimport tip tmp; hg qpop; $EDITOR .hg/patches/tmp; hg qpush; hg qfinish tip
12:03
<AryehGregor>
Or something.
12:04
<AryehGregor>
No, that's not right.
12:04
<AryehGregor>
hg qimport tip -n tmp; hg qpop; $EDITOR .hg/patches/tmp; hg qpush; hg qfinish tmp
12:04
<AryehGregor>
Something like that.
12:04
<AryehGregor>
Which, yes, is ludicrous and broken.
12:04
<AryehGregor>
It's hg, what do you expect.
12:04
<AryehGregor>
To be fair, git's commit -a is weird. svn also defaults to it.
12:05
<AryehGregor>
hg rollback works here, too.
12:05
<AryehGregor>
That's probably the most sensible, if you haven't done anything else in between.
12:06
<jgraham>
Yeah, hg rollback would have worked in this case
12:06
<jgraham>
But yeah, I ended up using mq, which is sort of absurd
13:09
<annevk>
WebKit has so many CORS bugs...
13:10
<annevk>
e.g. http://trac.webkit.org/browser/trunk/Source/WebCore/loader/CrossOriginAccessControl.cpp#L142 has no checks for duplicate Access-Control-Allow-Origin headers
13:10
<annevk>
then a little further on it does some kind of origin-based check rather than a string equality check
13:12
<jgraham>
annevk: Is there a testsuite?
13:14
<annevk>
yeah
13:15
<jgraham>
Sucks if they are ignoring it
13:53
<MikeSmith>
"Moving the Stable Web Forward"
13:55
<smaug____>
Stable o_O
14:00
<karlcow>
You need a lot of horses power for these browsers these days
14:14
<Velmont>
jgraham: I'm bitten by those hg bugs/annoyances all the time as well.
14:17
<Ms2ger>
"features" is the word you're looking for :)
14:21
<jgraham>
Hmm, so gecko and webkit don't seem to execute scripts in documents create by DOMImplementation.createHTMLDocument()
14:21
<Ms2ger>
I'll believe that
14:22
<jgraham>
Well your spec doesn't seem to agree with your beliefs :)
14:22
<Ms2ger>
I'll believe that too :)
14:24
<Ms2ger>
Actually
14:24
<Ms2ger>
jgraham, surely this falls under the "no defaultView" condition?
14:25
<jgraham>
ooh, maybe
14:25
<jgraham>
Where's that?
14:26
<Ms2ger>
http://www.whatwg.org/specs/web-apps/current-work/multipage/webappapis.html#concept-n-script
14:27
<jgraham>
Yes, that makes sense
14:27
<jgraham>
So this should parse as if scripting is disabled also
16:20
<scott_gonzalez>
TabAtkins: I haven't been following <template> too closely. What's the confusion about qSA?
16:22
<Ms2ger>
<!doctype html><template><div></div></template>
16:22
<Ms2ger>
What's document.querySelectorAll("div")?
16:22
<scott_gonzalez>
empty set
16:22
<scott_gonzalez>
That is definitely what's expected by developers.
16:22
<Ms2ger>
By literally all developers?
16:23
<scott_gonzalez>
I want to say "yes", but I obviously do not have empirical data on that.
16:23
<scott_gonzalez>
Everyone uses <script type="x"> or <textarea> or whatever to ensure that behavior today.
16:24
<scott_gonzalez>
If it's not expected, then why use <template>?
16:24
<scott_gonzalez>
<div style="display: none;" id="my-tempalte">
16:25
<scott_gonzalez>
document.parse( document.getElementById( "my-template" ) )
16:26
<Ms2ger>
You're parsing an element..?
16:27
<scott_gonzalez>
sorry, .innerHTML
16:27
<scott_gonzalez>
Or I gues just clone it.
16:27
<scott_gonzalez>
The point is that everyone today is making sure their template contents are not actually part of the DOM.
16:28
<scott_gonzalez>
If anyone has some weird case where they want it to be, why would they use <template>?
16:28
<Hixie>
TabAtkins: ok, i added the definition of :hover to the HTML spec.
16:29
<Ms2ger>
Anyway, I'm probably convinced that it shouldn't match, but I wouldn't say everyone definitely agrees with me :)
17:23
<[tm]>
public-html is going to be a historical gem
17:24
<[tm]>
who was it earlier here taking about abnormal psychology?
17:30
<TabAtkins>
rafaelw_: I got bored reading scrollback, so this may have been discussed after I stopped reading, but the goal of the "<template> contents are shoved into a separate document" is solely so that stray queries against the doc don't accidentally return their contents.
17:30
<TabAtkins>
For all other purposes, ideally they'd be treated like normal contents in the normal DOM.
17:31
<TabAtkins>
If we gain the correct qSA behavior for free, but have to manually handle a bunch of manipulation APIs like .innerHTML, it may not be worth it, and we should swap and just manually handle qSA and friends.
17:32
<TabAtkins>
Where "manually" means some form of "generically, for all things that query against the document looking for nodes".
17:40
<Hixie>
TabAtkins: the only reason i am aware of for parsing into another doc's docfrag is to neuter the content
17:42
<TabAtkins>
What do you mean by "parsing into another doc's docfrag"?
17:42
<Hixie>
another Document's DocumentFragment
17:43
<TabAtkins>
It's the "parsing into" that I'm unclear about. Which APIs are you talking about?
17:43
<Hixie>
<template> parsing
17:43
<Hixie>
no api
17:44
<TabAtkins>
I still don't know what you're talking about. ;_;
17:44
<TabAtkins>
You're using words in combinations that I'm not quite sure about.
17:44
<Hixie>
heh
17:44
<Hixie>
sorry :-)
17:44
<Hixie>
when you have an HTML doc
17:44
<Hixie>
with a <template>
17:44
<Hixie>
the contents of that element are parsed by the HTML parser into a separate document's documentfragment object
17:44
<Hixie>
instead of into the document of the parser
17:45
<Hixie>
the goal of this is to neuter the dom
17:45
<Hixie>
of the template
17:45
<TabAtkins>
Yeah.
17:45
<Hixie>
so not "solely so that stray queries against the doc don't accidentally return their contents" :-)
17:46
<TabAtkins>
By "neuter" you presumably mean preventing image loads, etc.?
17:46
<Hixie>
right
17:46
<TabAtkins>
That doens't require a new doc though, afaict.
17:46
<Hixie>
well, i mean, we could always spec new magic
17:46
<Hixie>
but this is pretty magical stuff already so personally i'd rather just reuse what we have already
17:47
<TabAtkins>
Oh, we already have neutered documents?
17:47
<Hixie>
sure, e.g. createDocument(), XMLHttpRequest docs
17:47
<TabAtkins>
Hm, okay.
17:56
<[tm]>
if loonie number two says, "loonie number one is not batshit insane, you are", does that cancel out the looniness?
17:56
<TabAtkins>
No, it squares it.
17:56
<TabAtkins>
Also, what's the thread with all the looniness?
18:01
<[tm]>
TabAtkins: public-html-stridency
18:02
<TabAtkins>
...that's not a real email thread.
18:13
<rniwa>
Hixie: there was some discussion about what should happen when you call appendChild, removeChild, etc... on the template element itself
18:13
<rniwa>
(not it's content fragment)
18:13
<rniwa>
Hixie: or assign/retreive values to/from innerHTML of the template element.
18:16
<TabAtkins>
Yeah, DOM manipulation on the <template> seems like it should work, particularly .innerHTML.
18:16
<TabAtkins>
Though I wouldn't be *too* sad if it didn't (and you had to descend into its doc first), it just seems weird.
18:20
<jgraham>
I would be very upset if innerHTML doesn't work but am pretty unbothered what happens with appendChild and friends
18:20
<jgraham>
(you can already do things like append children to a void element which makes equally little sense)
18:25
<rniwa>
TabAtkins, jgraham: on the other hand, innerHTML and appendChild behaving differently is also confusing
18:25
<TabAtkins>
Yeah.
18:25
<rniwa>
i would be personally more annoyed with that than innerHTML not replacing the content fragment.
18:25
<rniwa>
if we added innerHTML on the content fragment, we can just do
18:26
<rniwa>
templateElement.content.innerHTML = ~
18:26
<rniwa>
jgraham: not sure if you're okay with that idea.
18:26
<Ms2ger>
Are we back there? :)
18:26
<rniwa>
Ms2ger: all the way!
18:31
<jgraham>
I wonder if you could just make <template> an ElementProxy or something that forwarded all method calls to template.content
18:31
<jgraham>
(with some exceptions of course)
18:32
<TabAtkins>
That makes sense to me.
18:34
<hober>
sicking: i've attempted to add some signal to the issue-204 thread; if you find the time, I'd be very grateful for a followup to http://lists.w3.org/Archives/Public/public-html/2012Jun/0066.html
18:35
<sicking>
hober: sorry, won't have time for a bit. Last day before vacation today and i have a lot to finish up before heading out :(
18:35
<sicking>
like packing :)
18:36
<Ms2ger>
That doesn't make sense to me :)
18:37
<Ms2ger>
hober, you know, if you have a finite amount of signal and an infinite amount of noise, the s:n ratio remains zero :)
18:37
<hober>
sicking: that's fine :)
18:37
<hober>
Ms2ger: indeed.
19:01
<Velmont>
hober: I liked the summary, made me not feel guilty for only reading the headlines :]
19:15
<TabAtkins>
Anyone ever been to the Dublin Web Summit?
19:15
<TabAtkins>
Got invited to speak there, wondering if it's worth a trip to Europe.
19:15
<TabAtkins>
Then again, that'll be my first time to Ireland, which is pretty attractive all by itself.
19:19
<jgraham>
No idea about the conference, but Ireland is worth a visit (irrespective of your taste for Guinness)
19:19
<TabAtkins>
Gradually making myself like the taste of stouts.
19:19
<TabAtkins>
(I have a problem with bitter flavors that I'm training myself out of.)
19:19
<Ms2ger>
Oh, ojan?
19:20
<ojan>
i'm here
19:20
<ojan>
what's up?
19:20
<Ms2ger>
rniwa volunteered you to fix some of his bugs ;)
19:20
<ojan>
lol...not likely :)
19:20
<ojan>
Ms2ger: which bugs?
19:21
<rniwa>
ojan: appendChild, etc....
19:21
<rniwa>
ojan: we don't match the spec exactly
19:21
<ojan>
i'm certainly happy to review patches fixing bugs in that area :)
19:22
<Ms2ger>
Well played
19:22
<Ms2ger>
You know this game, sir
19:24
<rniwa>
ojan: LOL.
19:24
<rniwa>
we've got to find someone who's motivated enough to fix these :\
19:24
<rniwa>
ojan: maybe we can find some friendly Motorola contributor to do it.
19:24
<Ms2ger>
Hah
19:24
<rniwa>
ojan: they're big on fixing compatibility problems :D
19:24
<Ms2ger>
MD first
19:25
<zewt>
TabAtkins: i've never cared for beer, and i have a basic issue with the idea of drinks that i have to teach myself to like
19:25
<ojan>
seriously though...i do want to see us fix these issues
19:25
<TabAtkins>
zewt: That's a silly position, unless you've never started liking anything at all that you disliked as a child.
19:25
<ojan>
i just have too much on my plate to fix everythign i want to see fixed :)
19:25
<zewt>
pretty sure my dislike for beer doesn't come from not liking it as a child :)
19:25
<ojan>
oh...we have a new eng who might want to do this....
19:26
<ojan>
Ms2ger, rniwa: are there bugs filed?
19:26
<TabAtkins>
For example, sharp chedder or a good blue cheese are hard to like initially, but very delicious once you train yourself.
19:26
<rniwa>
ojan: maybe.
19:26
<TabAtkins>
Beer was the last of the alcoholic trinity that I was able to enjoy, though.
19:26
<rniwa>
ojan: one thing we need to do is to figure out figure out all the bugs in our code first.
19:26
<TabAtkins>
Once you get over the hump, there are a *lot* of delicious ones.
19:26
<rniwa>
ojan: i don't think bugs filed for all of them.
19:27
<Ms2ger>
ojan, I've got tests! ;)
19:28
<ojan>
Ms2ger, rniwa: well...if you CC me on bugs, i'll run them by the new guy and see if he wants to take a stab
19:28
<zewt>
ojan: heh, there's no better way to learn the way around a codebase than fixing bugs
19:29
<Ms2ger>
ojan, and even better, rniwa can make them run on your bots :)
19:30
<rniwa>
Ms2ger: sounds like a good idea :)
19:30
<rniwa>
Ms2ger: we're still discussing about how to import W3C tests into our repository
19:30
<rniwa>
Ms2ger: and we haven't had a good resolution on it :\
19:31
Ms2ger
pulls up Chrome
19:35
<Ms2ger>
Inserting an element before a doctype
19:35
<Ms2ger>
Known?
19:37
<Ms2ger>
"Add inputmode attribute support, as per XHTML Basic 1.1"
19:45
<Ms2ger>
rniwa, what does Node::inDocument() mean?
19:46
<rniwa>
Ms2ger: means that the node is still attached to the document.
19:46
<rniwa>
Ms2ger: Node::document() returns the owner document
19:46
<Ms2ger>
Mm
19:47
<Ms2ger>
And it's always true for documents?
19:47
<rniwa>
Ms2ger: think so
19:48
<rniwa>
Ms2ger: see ConstructionType
19:48
<rniwa>
Ms2ger: in Node.h
19:48
<rniwa>
Ms2ger: CreateDocument = CreateContainer | InDocumentFlag
19:49
<Ms2ger>
Whoa, you have an implementation of Notation
19:50
<jgraham>
Notation?
19:50
<rniwa>
Ms2ger: yeah...
19:51
<Ms2ger>
jgraham, http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-5431D1B9
19:51
<jgraham>
Oh My
19:51
<Ms2ger>
The file claims it's never instantiated, though
19:54
<Ms2ger>
rniwa, HTML DOM?
19:54
<rniwa>
jgraham: i know, right?
19:54
<rniwa>
Ms2ger: i don't even know who added that code.
19:55
<rniwa>
Ms2ger: it prepares my involvement to webkit
19:55
<Ms2ger>
No, for the insertBefore bugs
20:03
<rniwa>
JQUERY HAS ANSWERED
20:03
<rniwa>
SCRIPTING IS INTENTIONAL :D
20:06
<hober>
Velmont: :)
20:12
<Ms2ger>
Heh
20:23
<Ms2ger>
ojan, rniwa, enjoy :)
21:17
<Hixie>
rniwa: i think it would be exactly the kind of crazy confusing behaviour the Web is famous for for things like appendChild and innerHTML to do the "useful" thing instead of being consistent with what they do everywhere else
21:23
<jgraham>
Hixie: No more so than the HTML parser doing the "useful" thing
21:30
<Hixie>
except we don't really have an alternative for the parser
21:30
<Hixie>
plus the parser has plenty of precedent for doing different things for different tags
21:30
<rniwa>
Hixie: i agree with you too.
21:31
<rniwa>
Hixie: i think it's probably saner for those APIs not to work on content fragment
21:39
<annevk>
so we need at least 3 specifications to define :hover?
21:39
<annevk>
brilliant
21:40
<annevk>
no implementor is going to find that out :/
21:40
<zewt>
show all three specs on the same page; hover an icon to pick which to see
21:42
<annevk>
the most important spec of those, hit testing, doesn't exist of course
21:43
<Hixie>
annevk: i don't want to put it in html, but since they won't put it in selectors... (same with :active and the others)
21:47
<annevk>
my cynical opinion of non-tree selectors defined by the CSS WG is that it's syntax plus some fluff words to give a rough hint of how things are supposed to work without actually defining how they work
21:47
<annevk>
which seems rather pointless
21:49
<Hixie>
yeah i don't really understand the reluctance
21:51
<annevk>
oh I do, it's the idea that CSS is unrelated to everything else and therefore the specifications must be alien of that too
21:53
<hober>
it's crazy
21:53
<annevk>
yes
21:54
<gsnedders>
How long till someone writes a "CSS applied to DOM" spec?
21:54
<Hixie>
annevk: that's what i don't understand
21:56
<annevk>
Hixie: it's the mindset of some relatively influential people within the CSS WG
21:56
<annevk>
Hixie: I don't think it makes sense, but they seem kind of fixed on that
21:56
<TabAtkins>
Uh, what?
21:57
<annevk>
Hixie: I gave up arguing on this though
21:57
<annevk>
(and then later left the WG entirely)
21:58
<TabAtkins>
CSS defines how :hover works generically. HTML defines a special additional case that causes :hover to match, based on stuff that only exists in HTML.
21:58
<TabAtkins>
Don't bullshit, anne. ^_^
21:59
<annevk>
that's exactly what I was just saying...
21:59
<annevk>
well plus that hit testing is not defined
21:59
<annevk>
anyway, bedtime
22:00
<TabAtkins>
I'd love to define hit-testing, but I don't know what actually needs to be defined.
22:00
<TabAtkins>
Like, at what level are we missing stuff?
22:03
<TabAtkins>
Hixie: The reluctance to put @label-related stuff into Selectors is that CSS applies to more than HTML, so if there are things that are specific to the host language, they should be defined by the host language.
22:04
<TabAtkins>
And, as long as the host spec is being actively editted, like HTML is, that's fine.
22:04
<TabAtkins>
If that wasn't true, we'd include it in the CSS spec just to have it defined somewhere.
22:05
<TabAtkins>
But seriously, if someone can explain to me what's actually needed for hit-testing, I'll write the spec for it.
22:10
<rniwa>
TabAtkins: the problem with hit-testing is that a lot of it will be necessarily platform dependent
22:10
<rniwa>
TabAtkins: e.g. hit testing for editing can't be spec'ed one way or other because each platform uses different conventions with respect to bidiretional text for example.
22:11
<TabAtkins>
Is it? I mean, you have a coordinate, and a formatted page. Defining which element that coordinate hits shouldn't be difficult, I would assume.
22:11
<Hixie>
TabAtkins: i agree with anne that there's no point being generic. selectors should just give up and realise there is only one host language really.
22:11
<dglazkov>
YO
22:11
<rniwa>
TabAtkins: it is, unfortunately.
22:11
<TabAtkins>
Hixie: But there isn't. SVG is a valid second host language.
22:11
<Hixie>
TabAtkins: it's the same language.
22:11
<TabAtkins>
rniwa: Okay, then I don't understand. ^_^ I'll need some more details at some point.
22:11
<rniwa>
TabAtkins: hit-testing on element might work
22:11
<Hixie>
TabAtkins: "html+svg+math+xml+css+dom+js+..."
22:11
<rniwa>
TabAtkins: but definitely not when you have text
22:12
<rniwa>
TabAtkins: presumably, you want to spec hit-testing on text as well right?
22:12
<rniwa>
it's kind of odd to have a spec that only specifies hit-testing on elements without text :\
22:12
<TabAtkins>
rniwa: For the purposes of CSS, no. I dunno if it's useful to specify text hit-testing.
22:12
<rniwa>
TabAtkins: ok.
22:12
shepazu
writes all his web pages in MathML with inline HTML and SVG
22:12
<rniwa>
TabAtkins: how about things like first-lettter?
22:13
<TabAtkins>
rniwa: ::first-letter is exactly the same as any other element for this purpose.
22:13
<rniwa>
TabAtkins: and how about inline elements that are intersparsed because of UBA?
22:14
<TabAtkins>
rniwa: Their boxes still have definite positions given by the layout algorithm already.
22:14
<TabAtkins>
(iirc, it's somewhat handwavey on that point, though)
22:14
<rniwa>
TabAtkins: hm... i guess.
22:14
<rniwa>
TabAtkins: oh yeah, i guess it works as long as you don't define what happens to selection
22:14
<TabAtkins>
By the time you're doing hit-testing, you've already done layout and positioning, and just have a bunch of elements with geometry.
22:15
<TabAtkins>
Yeah, doing selection requires specifying it on text instead of elements.
22:15
<rniwa>
okay, that makes sense :)
22:15
<rniwa>
when I hear the word hit-testing, I automatically assume it involves text
22:15
<rniwa>
because that's what browsers do.
22:15
<jamesr_>
defining hit-testing with transforms would be great
22:16
<TabAtkins>
The two algorithms are pretty disjoint - you'd first hit-test against geometry to see which element was hit, then do it against text to see where in the element's text was hit.
22:16
<jamesr_>
that's a non-trivial, non-interoperable thing completely unrelated to text
22:16
<rniwa>
jamesr: yeah, but that'll be hard to spec & implement :\
22:16
<TabAtkins>
jamesr_: Interesting that it's non-trivial. The definition is pretty trivial when you work directly with geometry.
22:16
<rniwa>
TabAtkins: not in webkit but you could create a conceptual boundary like that, yes
22:17
<TabAtkins>
rniwa: Yeah, I have no idea what sort of division would be most useful for browsers.
22:17
<rniwa>
TabAtkins: i think it's okay as long as the spec isn't algorithmic
22:17
<TabAtkins>
rniwa: Surely hit-testing for :hover and mousein/out events and such doesn't care about text?
22:18
<Hixie>
well, if you have inlines they involve text, right?
22:18
<Hixie>
their position i mean
22:18
<TabAtkins>
Hixie: No, they involve the layout boxes generated by the text.
22:18
<TabAtkins>
The geometry of the text itself is irrelevant.
22:18
<Hixie>
i guess i don't really understand the question
22:18
<TabAtkins>
Me too, I think.
22:19
<Hixie>
seems like the geometry of the text is what affects where the inlines will end up, but *shrug*
22:19
<TabAtkins>
See: "I don't know what actually needs to be defined".
22:19
<Hixie>
we'll have to ask anne tomorrow :-)
22:19
<TabAtkins>
Geometry of the text is completely UA specific.
22:19
<TabAtkins>
Based on the text layout engine.
22:20
<rniwa>
define what you all mean by "geometry of text"
22:20
<rniwa>
anyways, CSSOM appears to expose CaretPosition or something
22:21
<rniwa>
that is potentially text related
22:21
<jamesr_>
TabAtkins, intersection! subdivision! not-rectangularity
22:21
<Hixie>
surely the TrueType spec defines what the text geometry needs to be
22:21
<jamesr_>
TabAtkins, 3d transforms are non-interoperable today
22:21
<jamesr_>
(or last i checked)
22:23
<TabAtkins>
jamesr_: Bah, that's all efficiency. Conceptually it's: take a bunch of elements, get their hittable geometry, transform as appropriate, sort by descending z-order, then find the first that contains the given point.
22:23
<jamesr_>
sort what by descending z-order? there is no global sort order for elements
22:23
<TabAtkins>
Hixie: Tell that to the engines and their slightly non-interop text behavior for bunches of things.
22:23
<TabAtkins>
Yes there is.
22:23
<jamesr_>
only if you subdivide
22:24
<TabAtkins>
Oh, with 3d transforms involved, yeah.
22:24
<jamesr_>
right. http://greggman.com/downloads/examples/intersecting-elements-3d-css.html
22:24
<Hixie>
TabAtkins: "slightly" doesn't mean there's no interop, it just means interop is defined to be within certain error margins.
22:24
<Hixie>
TabAtkins: that's pretty common on the web
22:25
<jamesr_>
without 3d it's pretty simple and probably fairly easy to spec
22:25
<TabAtkins>
Hixie: I'm not going to be the one to define that, particularly with things like synthetic bolding and the like.
22:25
<TabAtkins>
I'm willing to say "lay out the text, and give us the bounding box".
22:25
<Hixie>
TabAtkins: clearly i'm not volunteering for that either :-)
22:25
<TabAtkins>
jamesr_: Yeah, should be.
22:26
<jamesr_>
interestingly, i found out that in IE some invisible elements are invisible to hit-testing
22:26
<TabAtkins>
Hm? You mean like visibility:hidden?
22:26
<TabAtkins>
Or like "color:transparent; background:transparent;"?
22:26
<jamesr_>
setting background-color: grey changed whether an element got clicks or not
22:26
<jamesr_>
latter
22:26
<TabAtkins>
lolwut
22:27
<TabAtkins>
I assume they're optimizing away the draw, and it accidentally skips the "add to hit-test structure" too.
22:27
<jamesr_>
i was wondering if it was a clickjack defense
22:27
<TabAtkins>
Ooh, maybe.
22:27
<jamesr_>
behavior was different for <div> vs <canvas>
22:29
<Hixie>
IE has done this for ages
22:29
<Hixie>
i wrote a spec for it once (as best i could)
22:29
<Hixie>
it was terrifyingly complicated
22:30
<smaug____>
yeah, it is IEism from IE4 or so
22:30
<TabAtkins>
Bleh.
22:35
<smaug____>
TabAtkins: FYI, https://bugzilla.mozilla.org/show_bug.cgi?id=102695
22:50
<TabAtkins>
smaug____: Thanks!
23:02
<jamesr_>
Hixie, any idea where that spec you wrote is these days?
23:03
<jamesr_>
i'm morbidly curious