00:10
<ap>
Hixie: is splitting text nodes during parsing something the HTML spec would be concerned about? WebKit stopped doing that while implementing HTML5, but looks like it was quite bad for performance
00:10
<ap>
so we may have to reintroduce that
00:12
<Hixie>
why is it bad for perf?
00:13
<othermaciej>
extra allocation and copying, I would presume
00:13
<othermaciej>
though I'm not sure what benchmark ap is looking at that convinces him it's an issue
00:13
<Hixie>
why would one long string need more allocation and copying than more shorter strings?
00:14
<ap>
Hixie: search and replace algorithms that create new nodes hit this (think about an algorithm that finds all e-mails with a regexp, and replaces them with <a> links)
00:15
<ap>
Hixie: it's not about WebKit own performance, but about performance of scripts and other clients
00:16
<Hixie>
i don't understand why the number of DOM nodes needs to have any correlation to the number of allocations in the background, nor why editing fewer larger strings needs to be slower than more editing smaller strings.
00:16
<ap>
Hixie: yeah, I need to explain in more detail
00:16
<Hixie>
just implement the DOM string as an interface on top of a string system that uses whatever is optimal for the platform
00:17
<Hixie>
e.g. if someone tries to splice something into the middle of a string, you can just have the DOM node be stored as two strings and an edit point
00:17
<Hixie>
no need to move the original string at all
00:17
<Hixie>
etc
00:18
<ap>
Hixie: say, you're processing a string line aaa&lt;ian⊙hc>bbb, and need to replace it with aaa<a href="mailto:ian⊙hc">ian⊙hc</a>bbb
00:19
<ap>
Hixie: you have to split the text, and copy "bbb" into a new node
00:19
<ap>
Hixie: the larger nodes are, the more time it takes
00:19
<Hixie>
only if your implementation of text nodes is naive
00:20
<Hixie>
if you split the dom text nodes so that you have adjacent nodes in the dom, all you're going to do is break implementations that don't expect it
00:20
<ap>
Hixie: I can add to that that the strings are round tripped to a client via an API
00:20
<Hixie>
s/implementations/pages/
00:21
<ap>
Hixie: given that both Gecko and WebKit used to split, those pages were already broken
00:21
<Hixie>
so e.g. if the dom nodes are [aaa&lt;ap@web] and [kit.org>bbb], pages will likely miss it entirely
00:21
<ap>
Hixie: you are talking about a pretty serious amount of sophistication for a CharacterData implementation here
00:22
<Hixie>
sure
00:22
<Hixie>
i'd rather browsers be sophisticated that rely on web page authors to be sophisticated :-)
00:22
<Hixie>
or as others would say, the "priority of constituencies" puts authors ahead of browsers
00:23
<ap>
Hixie: my priority here is to prevent real applications from freezing due to this change
00:24
<ap>
Hixie: I'm only working on a fix, and wanted to touch bas first, but it's pretty unlikely that we'll keep apps freezing until the desired level of sophistication is reached
00:25
<Hixie>
thanks for the heads-up
00:25
<othermaciej>
ap: is there a web app that has an N^2 problem with growing text nodes?
00:26
<othermaciej>
giant run of plaintext I would guess?
00:26
<ap>
othermaciej: <rdar://problem/9013049>
00:26
<ap>
othermaciej: in that case, it's also about memory use
00:28
<othermaciej>
ap: I shall comment internally, given the nature of that bug
01:31
<TabAtkins_>
Hixie: I started using <xmp> today in Lists. It makes my life easier.
01:33
<aho>
what's xmp? :l
01:34
<TabAtkins_>
Like <pre>, but you don't need to escape anything inside of it.
01:34
<aho>
:o
01:34
<TabAtkins_>
So <xmp>To bold something, type <b>.</xmp> actually says what you'd expect.
01:35
<aho>
can't find it in the html5 specs... or well... anywhere
01:35
<TabAtkins_>
It's in the "obsolete elements" section right now.
01:35
<aho>
only found some old blog post which says it's deprecated
01:36
<aho>
hm
01:36
<TabAtkins_>
Webkit, at least, actually supports <xmp> properly. It's quite helpful when writing HTML examples
01:36
<aho>
on my blog i'm using some input filter to get this kind of effect
01:37
<aho>
i always thought that this was a tad strange
01:37
<TabAtkins_>
For yourself, or for comments?
01:37
<aho>
myself
01:37
<TabAtkins_>
(This does *not* protect you against code injection from comments.)
01:37
<TabAtkins_>
Ok, yeah.
01:37
<TabAtkins_>
I write my blog in markdown, so the code blocks in markdown automatically know to escape their contents when serializing to HTML.
01:38
<aho>
well, i kinda like it and i always wanted something like that for my other technical documentation
01:38
<aho>
right now i always search/replace < and >, but that's somewhat annoying
01:38
<aho>
needless to say that it also makes the markup kinda ugly
01:38
<TabAtkins_>
You don't need to replace >, but you *do* need to replace &.
01:39
<TabAtkins_>
(> is safe everywhere except in unquoted attribute values)
01:39
<aho>
i replace <, &, and > (for symmetry) :>
01:40
<aho>
is xmp something from html 3.x?
01:40
<aho>
ah... 2.0 it seems
01:41
<Philip`>
I don't think there's any HTML spec in which it wasn't already deprecated
01:41
<aho>
also <plaintext> and <listing>... weird :)
01:41
<oojacoboo>
does anyone know if the pseudo class :focus will allow styling of other elements based on that event or if it's only binded to the styling of that particular element?
01:42
<aho>
there is still no way to specifiy the programming language of a <code> block, right?
01:42
<TabAtkins_>
oojacoboo: I don't understand what you mean.
01:42
<TabAtkins_>
aho: No way in HTML, yeah.
01:43
<oojacoboo>
TabAtkins_: this is my selector that doesn't work... form.schweet li.help-tip input:focus + a.tipper
01:43
<TabAtkins_>
(Various javascript syntax-highlighting scripts recommend ways to mark it up.)
01:43
<oojacoboo>
here is one that does... form.schweet li.help-tip:hover a.tipper
01:44
<TabAtkins_>
Okay. There's nothing wrong with the former. As long as the input is focused, and the rest of the structure is right, then it will work.
01:44
<oojacoboo>
TabAtkins_: it doesn't :/
01:44
<TabAtkins_>
oojacoboo: I'd have to see your code. There's nothing wrong with the selector, so you're doing something else wrong.
01:44
<oojacoboo>
it's the most awkward thing I've seen
01:45
<oojacoboo>
I wish I could get you the code, it's a massive application
01:45
<aho>
ye, most of them use classes for that, but that's not quite right... i mean... there is zero semantic weight behind it. some micro format bs would work, i guess. but i'd prefer some regular attribute for that. i mean, <code> *is* for source code in *some* language
01:45
<TabAtkins_>
aho: Use data-src-lang or something.
01:46
<aho>
right now, i'd use data-lang, yes ;)
01:47
<aho>
Although there is no formal way to indicate the language of computer code being marked up, authors who wish to mark code elements with the language used, e.g. so that syntax highlighting scripts can use the right rules, may do so by adding a class prefixed with "language-" to the element.
01:47
<aho>
meep :>
01:47
<oojacoboo>
TabAtkins_: am I wrong in assuming that the cursor doesn't have to be over the input for :focus to be triggered?
01:47
<oojacoboo>
I thought the cursor sitting in an input kept the :focus event triggered
01:47
<TabAtkins_>
oojacoboo: Focus, for an input, is when the caret is in the input.
01:48
<TabAtkins_>
It has nothing to do with the mouse cursor.
01:48
<oojacoboo>
strange...
01:48
<TabAtkins_>
Why is it strange? That's what it means to "focus" an input.
01:48
<aho>
there can be only one element with focus... if an element got focus it will receive keyboard input
01:48
<TabAtkins_>
Yes.
01:49
<oojacoboo>
the behavior I am seeing is very strange, that event handling is as expected
01:49
<aho>
typically <tab> can be used to focus the next element and <shift>+<tab> jumps backwards
01:49
<oojacoboo>
aho: right
01:50
<aho>
clicking on some element also gives it focus
01:50
<oojacoboo>
yea, I actually know how it works, just not experiencing it
01:50
<TabAtkins_>
oojacoboo: Can you get :focus to work on its own, like "input:focus { outline: thick solid red; }" ?
01:50
<oojacoboo>
TabAtkins_: yes
01:51
<oojacoboo>
that much is handled correctly
01:51
<oojacoboo>
background-color, color, etc
01:52
<TabAtkins_>
oojacoboo: http://software.hixie.ch/utilities/js/live-dom-viewer/saved/865
01:52
<aho>
input:focus+label works in ff3.6... i just tried that
01:53
<aho>
(completely useless, but yes, that works) :>
01:53
<oojacoboo>
trying to see if something else is the culprit here
02:01
<oojacoboo>
TabAtkins_: no clue, it seems to be working fine in the testcases where I try to replicate, clearly something else is going on... thanks for your help, if I find something I'll report back
02:01
<TabAtkins_>
No problem.
02:01
<TabAtkins_>
Unrelated: A virus so big it gets viruses: http://arstechnica.com/science/news/2011/03/a-virus-so-large-it-gets-viruses.ars?utm_source=twitterfeed&utm_medium=twitter&utm_campaign=rss
02:11
<aho>
would be nice if there would be something like focus, which bubbles up like hover :>
02:12
<aho>
input:focus+label <- e.g. that kind of thing would be useful if i could write it the other way around
02:12
<TabAtkins_>
label:has-sibling(input:focus), someday...
02:12
<aho>
but with some focus bubbling thingy i could do that via the wrapper
02:13
<aho>
.whatever:focus-bubble-voodoo>label :>
02:15
<aho>
putting the label after the text fields would work of course, but that makes positioning a nightmare
02:15
<aho>
and of course you'd end up with pure nonsense if you look at it without css
02:20
<aho>
input:focus^label (adjacent previous sibling, lol)
02:20
<aho>
well, would be nice to have
02:20
<aho>
it's also kinda funny how css ran out of special chars :>
02:23
<oojacoboo>
aho that'd be awesome
02:24
<zewt>
input☺focus
02:24
<aho>
input(ノ ゜Д゜)ノ 彡 ┻━┻focus
02:24
<aho>
rage table flip combinator
02:25
<zewt>
input工工工エエエエエエェェェェェェ(゚Д゚)ェェェェェェエエエエエエ工工工focus
02:26
<aho>
:)
02:28
<aho>
well, there aren't too many "regular special characters" left and even most of those which are currently used don't make any sense whatsoever
02:29
<zewt>
can use longer tokens where it's not ambiguous
02:29
<aho>
yea, :whatever(...) will always work, but that's kinda awful :>
02:30
<aho>
input:focus:previous-adjacent-sibling(label){... uh hum...}
02:30
<zewt>
a::b->c@@d
02:31
<zewt>
as long as it doesn't devolve into the gnu regex absurdities like [:digit:] or whatever, heh
02:31
<aho>
[href$=".pdf"]
02:31
<aho>
:>
02:33
<aho>
but to be honest, i only use a very small subset of css selectors/combinators for the things i currently build (with some architecture n stuff)
02:37
<oojacoboo>
aho: honestly, you rarely need the special ones
02:37
<oojacoboo>
I've built a very advanced application that uses a lot of css, and very rarely need special selectors
02:39
<aho>
i do virtually everything with the child combinator
02:39
<oojacoboo>
what do you mean?
02:39
<aho>
the descendant one is only used for recursion :>
02:39
<oojacoboo>
.this < .that
02:39
<aho>
>
02:39
<oojacoboo>
gotcha
02:40
<aho>
everything is a sub tree which can be plugged in any leaf of any other sub tree
02:40
<aho>
works great so far
02:41
<oojacoboo>
you can't always go up the DOM though
02:41
<oojacoboo>
esp when you need pseudo classes
02:42
<aho>
you cant go up or backwards with css
02:42
<aho>
only down and forwards
02:42
<oojacoboo>
yea, but what I mean is, you can't always target a parent
02:42
<oojacoboo>
or use that parent rather, in the selection
02:42
<aho>
(well, strictly speaking it's the other way around since selectors are evaluated from right to left) :>
02:42
<aho>
of course i can
02:43
<oojacoboo>
how can I do this then...
02:43
<aho>
the markup is created that way from the very beginning
02:43
<aho>
first structure, then markup/css
02:43
<oojacoboo>
li:focus a.tipper {} where I have... <li><input /><a></a></li>
02:43
<aho>
and not arbitrary markup which i then try to beat into submission via css :>
02:44
<oojacoboo>
aho: of course, that's why I am saying I almost never have an issue
02:44
<oojacoboo>
so long as you have control over the DOM, you are almost always ok
02:45
<oojacoboo>
in that example I want to do something like... li(li a) < input:focus {}
02:46
<oojacoboo>
obv that doesnt' make sense, but pass the event on the input to style down from the <li>
02:46
<aho>
li isn't focusable by default
02:47
<aho>
<li tabindex="0" ...> makes it focusable
02:47
<aho>
but that's all kinds of ugly :>
02:47
<oojacoboo>
really??
02:48
<oojacoboo>
is that legit
02:48
<zewt>
iirc not consistently supported
02:49
<aho>
well, focus doesnt bubble up anyways
02:49
<oojacoboo>
right
02:49
<aho>
so, if some input inside that li got focus... then this one got the focus any nothing else gets it :>
02:49
<aho>
*and
02:50
<aho>
that's why i said it would be nice to have something like focus which bubbles up like hover :>
02:50
<oojacoboo>
mmm yea, just saying it'd be nice to be able to have it bubble or, or hack that somehow
02:50
<oojacoboo>
li < input:focus {}
02:51
<oojacoboo>
you'd get something sorta like that, but how could you apply that to children of the li
02:51
<zewt>
people have complained about focus events not bubbling since forever, heh
02:52
<oojacoboo>
obv not enough people ;)
02:54
<zewt>
oh it's mouseover/mouseout bubbling that i'm thinking of
08:14
<annevk>
http://www.isolani.co.uk/blog/standards/MicrosoftsAntiIe6Rhetoric
08:51
<annevk>
I pulled bug before the comment: http://html5.org/tools/web-apps-tracker
08:51
<annevk>
Renamed "R" to "SVN" and "B" to "Bug"
08:51
<annevk>
better?
12:41
<hsivonen>
Hixie: FYI: https://bugzilla.mozilla.org/show_bug.cgi?id=638842
14:01
<foolip_>
gsnedders, you there?
14:18
<gsnedders>
foolip_: Vaguely.
14:18
<foolip_>
gsnedders, I was going to ask how the spec section ids are generated, but then I found secid.py
14:34
<foolip_>
gsnedders, although, now it looks like secid.py isn't actually used in anolis2, did I find the wrong code?
14:35
<foolip_>
maybe the code is just invoked in some more roundabout way than actually importing secid and calling secid.Process...
14:51
<kukman>
There is some bug in Selections in Opera
14:51
<kukman>
http://jsfiddle.net/pEqeu/2/
14:51
<kukman>
and, if you click mouse anywhere else, space between numbers will be still selected
17:23
<annevk>
Could also name the SVN column HTML
17:23
<annevk>
currently at HTML5944
21:37
<Yuhong>
Making HTML XML-valid then omit the xmlns because of a hate for namespaces? Huh?
21:37
<Yuhong>
http://tantek.com/2010/302/b1/xhtml-dead-long-live-xml-valid-html5
21:38
<zewt>
generally i tend not to take anyone seriously who uses the world "fail" in all caps
21:50
<aho>
personally, i kinda like STOP EVERYTHING error handling :>
21:51
<aho>
i mean... gee... we are able to produce all kinds of well-formed formats. there is nothing magical about html which makes it impossible
21:52
<Dashiva>
aho: Why do you hate your users?
21:53
<aho>
a broken image wont work
21:53
<aho>
a broken archive wont work
21:53
<aho>
a broken css file wont work
21:53
<aho>
a broken js file wont work
21:53
<Dashiva>
Sure they do
21:54
<aho>
about as well as broken xml, yes
21:54
<Dashiva>
You use broken css files and images every day
21:55
<Dashiva>
Same with JS files, for that matter
21:55
<aho>
we're talking about non recoverable errors
21:55
<zewt>
"not strictly correct" != "broken"; if it works it's, by definition, not broken. heh
21:55
<aho>
not things like ASI
21:56
<aho>
"the image ... contains errors and cannot be displayed" :>
21:56
<Dashiva>
zewt: Except that's how XML defines broken
21:56
<aho>
well, try writing some junk into the header of a jpg file
21:56
<aho>
see how that works
21:56
<aho>
:P
21:57
<zewt>
we're speaking english, not XML :P
21:57
<zewt>
aho: JPEGs aren't human-writable, so they can be a lot less forgiving
21:58
<aho>
how about obj (wavefront) then?
21:58
<aho>
technically it's human readable, too
21:58
<zewt>
don't know it
21:58
<aho>
it's a text based model format
21:59
<aho>
needless to say that things will go horribly wrong if you put some random junk data into one of those obj files :>
21:59
<zewt>
even readers for binary formats generally have to be forgiving of certain errors, when buggy software puts weird files in the wild; eg. reading AVIs is a serious pain
22:00
<aho>
well, that's what html5 is kinda doing... it tries to specify this error handling
22:00
<aho>
beforehand the result was just random
22:00
<aho>
that's not any good, really :)
22:00
<aho>
so yea, it should be either very strict and if it isn't the result should be predictable
22:01
<aho>
the latter is of course a lot more complicated
23:33
<aho>
there really should be a global vendor prefix registry which is maintained by browser vendors
23:33
<aho>
the current state is somewhat troublesome
23:34
<paul_irish>
how so
23:34
<paul_irish>
like when things go unprefixed.. and what existing prefixed props are supported by each?
23:34
<aho>
there are hundreds of prefixes and figuring out which one is still needed is pretty time consuming
23:34
<aho>
yes
23:35
<paul_irish>
hundreds of prefixes? i thought there were only 4 practical ones.. and then like ~14 that are in some spec somewhere.
23:35
<aho>
like -moz-opacity was required for firefox <0.9 and it's completely ignored since 3.5
23:36
<Peter->
I got history info on http://peter.sh/experiments/vendor-prefixed-css-property-overview/ which I plan to do things with
23:36
<paul_irish>
mozilla and google are (and will be) documenting that on the MDC
23:36
<Peter->
the primary problem is that gecko and webkit can be automated, whereas Opera and Microsoft cannot
23:36
<Peter->
(I did e-mail them)
23:37
<aho>
http://code.google.com/p/cssmin/source/browse/tags/version-2.0/cssmin.php
23:37
<aho>
line 386 and up
23:37
<gsnedders>
Peter-: Automated in what way?
23:38
<Peter->
Both Gecko as WebKit maintain a single file in which all properties are available
23:38
<aho>
where is that file?
23:38
<aho>
havent seen it on mdc
23:38
<Peter->
I fetch them every three hours, parse the files into individual properties and update my db
23:38
<Peter->
it also feeds the rss feed
23:39
<Peter->
http://hg.mozilla.org/mozilla-central/raw-file/tip/layout/style/nsCSSPropList.h
23:39
<Peter->
http://trac.webkit.org/export/0/trunk/Source/WebCore/css/CSSPropertyNames.in
23:39
<gsnedders>
Right, so it's just a bi-product of them being open-source.
23:39
<aho>
ahm... ok... pulling it out of the source directly
23:39
<aho>
hoped there was some json file or even xml or whatever
23:39
<Peter->
Opera doesn't maintain a single (or conveniently accessible) list. Microsoft has a few pages on MSDN which list all, but usually with a 3/4 month delay
23:40
<Peter->
I do have a json
23:40
<aho>
linky? :)
23:41
<Peter->
http://peter.sh/data/vendor-prefixed-css.php
23:41
<paul_irish>
hero!
23:41
<aho>
:D
23:43
<Peter->
I have code (and data) for such lists on all properties (including non-prefixed ones) per browser version somewhere too, but I *really* need to finish that sometime soon
23:44
<aho>
would be cool if that would end up in some official place (i.e. some place which can be actually found by anyone)
23:44
<paul_irish>
what were you searching for to attempt to find it?
23:45
<paul_irish>
'List CSS Style Properties' ?
23:46
<gsnedders>
Peter-: FWIW, publishing a complete list of properties supported for any Presto version should be trivial
23:48
<aho>
paul_irish, me? i look most of them up on mdc and i crosschecked that IE stuff with msdn. that's about it.
23:48
<paul_irish>
k
23:48
<aho>
didn't know where else to look
23:49
<aho>
gsnedders, would be awesome :)
23:49
<Peter->
gsnedders, I requested it late last year but never got a reply. The presto docs are complete, but the properties are listed all over the place
23:49
<Peter->
that makes it hard to automate
23:50
<gsnedders>
Peter-: I can quite trivially send you a .txt file with one property per line
23:50
<aho>
soo... only microsoft is missing then eh? :)
23:50
<Peter->
gsnedders, that'd be great
23:50
<gsnedders>
Peter-: Do you want multiple versions or just latest?
23:51
<Peter->
gsnedders, just the latest will do. My e-mail address is peter⊙lc
23:51
<Peter->
gsnedders, thank you!
23:53
<aho>
Peter-, got some twitter account? (would like to be up to date on this heh) :>
23:54
<Peter->
aho, I'm @beverloo. I don't really have an ETA, but it surely is high on my list :)
23:54
<aho>
twitter stalkers++
23:54
<smaug____>
why does <progress> have .form?
23:55
<aho>
ah yea, twiter already told me several times to stalk you, too :)
23:56
<Peter->
Cool :-). I'm off to bed for now, night
23:56
<aho>
nn
23:57
<smaug____>
ah, hmm, nm
23:58
<smaug____>
er, no, I don't still get it