00:01
<boblet>
and browser support for :not is… :p
00:02
<boblet>
will attempt to rephrase more persuasively and email to the list. thanks for the feedback
00:03
<Hixie>
:-)
00:03
<Hixie>
isn't :not pretty widely supported by now?
00:03
<Hixie>
it was in like acid2 wasn't it?
00:03
<jamesr>
:not? no
00:04
<Hixie>
who on earth doesn't support it?
00:04
<Hixie>
i guess it was only acid3
00:06
<jamesr>
:not() in css3-selectors is defined as only taking simple selectors, div.bq is not a simple selector
00:06
<jamesr>
dunno who supports non-simple selectors in :not() these days
00:06
<Hixie>
oh, right
00:06
<Hixie>
it'd just be :not(.bq) > blockquote { }
01:20
<Philip`>
Is Gmail now saying that every email sent by a Gmail user to the WHATWG list is phishing?
01:20
<Philip`>
(as a change from its old approach of saying every email from @google.com was phishing)
01:24
<zewt>
yeah i just started seeing that today
01:24
<zewt>
not every mails, but enough to be problematic
01:24
<zewt>
(every mails? english is hard)
01:30
<Philip`>
(every mail)
01:30
<Philip`>
(english are hard)
01:31
<Philip`>
((Not the latter))
01:32
<zewt>
(i was puzzling at what strange series of edits I must have made to land on "every mails", heh)
01:33
Philip`
realises he is half asleep, and should go the rest of the way
01:33
<jamesr>
it's pretty hyperactive
01:34
<jamesr>
i'm sure someone is tuning it
01:34
<zewt>
gmail suddenly started cramming way too much info in every from: section, too
02:29
<karlcow>
http://blog.stateless.co/post/6246070973/how-offline-web-apps-should-work
03:05
<roc>
karlcow: I believe a big problem with that proposal is that it doesn't allow for safe updates. How does a Web author ensure that if a user visits a new version of the Web app, manages to download half of the resources and then goes offline, they still have a usable version of the app for offline use?
03:12
<roc>
I'm a bit worried about the increasing use of Function attributes instead of real DOM event listeners
03:12
<karlcow>
roc: in which ways localStorage prevent a partial update? (question, because I do not know)
03:13
<roc>
localStorage a) sucked and b) is nothing to do with this really
03:13
<karlcow>
ooops
03:13
<roc>
the feature he's talking about is the HTML5 "appcache"
03:13
<karlcow>
I meant the appcache
03:13
<karlcow>
23:22 here
03:14
<roc>
I was talking to you at 4am my time last night, so deal with it :-)
03:14
<karlcow>
heh
03:14
<karlcow>
but you are a roc(k)
03:14
<roc>
in my head, anyway
03:14
<roc>
appcache is specifically designed to ensure that you always get a consistent version
03:14
<roc>
it ensures that app resources are always loaded from the cache, not the network
03:15
<roc>
when the manifest changes, it reloads all the resources in the background, while servicing requests from the old version of the app
03:15
<karlcow>
I see
03:15
<roc>
when all the resources for the new version have downloaded, it atomically switches over
03:15
<roc>
that's one reason you need a manifest
03:16
<roc>
There may be ways to improve the appcache --- I'd be glad if there are --- but that guy hasn't quite thought through the problem enough
03:22
<karlcow>
hmm krijn server has hiccup
03:45
<karlcow>
http://ariya.blogspot.com/2011/06/your-webkit-port-is-special-just-like.html
04:08
<Hixie>
according to http://caniuse.com/#search=column css3 column support is pretty widespread
04:08
<Hixie>
but when i try to use it i find a bunch of stuff isn't implemented
04:08
<Hixie>
e.g. column-span
04:08
<Hixie>
what's the story?
04:08
<Hixie>
spec is fiction, or caniuse is fiction?
04:09
<benschwarz>
Hixie, I'm not sure. But even the 'best' support for css columns is pretty lax. Subtle differences between browsers makes it tricky to use too
04:09
<Hixie>
are there any rants about this online i could look at?
04:12
<benschwarz>
Hixie, nothing that comes to mind
04:12
<Hixie>
k
04:13
<benschwarz>
in actuality, I don't think a lot of people are using them right now
04:13
<benschwarz>
columns of text, for the most part, don't really work on screen. better in print
04:20
<MikeSmith>
Hixie: I think you have to use vendor prefixes for the column stuff still
04:21
<roc>
we don't support column-span
04:21
<roc>
and we require vendor prefix
04:21
<MikeSmith>
Hixie: e.g., http://platform.html5.org/style.css
04:21
<Hixie>
yeah caniuse mentions the prefix
04:21
<Hixie>
roc: is it planned? or is the spec in the weeds?
04:21
<roc>
the spec's OK
04:22
<roc>
we need to check our implementation
04:22
<Hixie>
k
04:22
<roc>
and implement column-span, which is not so easy
04:22
<Hixie>
talking of css specs, anyone know how realistic http://dev.w3.org/csswg/css3-background/ is?
04:23
<Hixie>
it looks quite... featureful
04:25
<roc>
it's mostly supported by most browsers
04:32
<karlcow>
the best support for columns is currently in opera, though with -o-
04:33
<Hixie>
in what sense is it better than webkit or gecko's support?
04:33
<Hixie>
it doesn't seem to support span either
04:33
<Hixie>
nor honour -o-column-width?
04:34
<Hixie>
what version should i be using?
04:40
<MikeSmith>
Opera seems to support span, afaict
04:40
<Hixie>
what version?
04:40
<Hixie>
i couldn't get it to work at all
04:40
<MikeSmith>
11.11 and Opera.next
04:41
<Hixie>
i'm on 11.50
04:41
<MikeSmith>
Hixie: I'm using it on http://platform.html5.org/
04:42
<MikeSmith>
Opera also support break-* properties for columns
04:43
<MikeSmith>
e.g., break-inside: avoid and break-after: avoid
04:43
<Hixie>
what am i doing wrong? this works in webkit and gecko but not opera for me http://software.hixie.ch/utilities/js/live-dom-viewer/saved/1053
04:43
<Hixie>
i'm on mac, opera 11.50
04:43
<MikeSmith>
Hixie: span works in my Opera 11.50 on Mac
04:43
MikeSmith
looks
04:44
<MikeSmith>
Hixie: just do column-count for Opera
04:44
<MikeSmith>
you don't need the vendor prefix
04:45
<Hixie>
oh i thought karl said i had to use -o-
04:45
<Hixie>
k
04:45
<Hixie>
ah, yes, that works
04:45
<MikeSmith>
cool
04:47
<Hixie>
wtf now i can't get -span to work in opera either
04:47
<Hixie>
yet it works in your doc
04:48
<Hixie>
hm, it works in this case
04:49
<Hixie>
weird
04:50
<Hixie>
it works if i use <h1> but not if i use <span>?
04:50
<Hixie>
ah, it only applies to block-level elements
04:50
<Hixie>
i assumed it made them block-level
05:37
<Hixie>
hm, webkit does -span as well
05:45
<zewt>
weirdo layout hack in gmail's mail index header, wonder when they started doing that ... looks really busted when you scroll around and it visibly changes modes
07:17
hsivonen
wonders what WOW-playing Opera users think of the download progress bar WOW quip
07:33
<zcorpan>
searching for "opera wow" on twitter didn't bring up much about WoW
07:37
<krijn>
karlcow: Yeah, I know, router and/or network cable to the second floor is broken. Will try to fix it tomorrow
07:43
<zcorpan>
hsivonen: http://www.sitepoint.com/forums/html-xhtml-52/link-anchor-doesnt-seem-working-ff4-ff5-766794.html "Someone also pointed out that in about:config, setting "html5.parser.enable" to "false", makes this go away."
07:43
zcorpan
doesn't know what the bug # is
08:05
<zcorpan>
boblet: what do you mean with "excludes footer"?
08:07
<zcorpan>
boblet: "Content inside a blockquote must be quoted from another source" is a conformance requirement. so if you put content inside blockquote that is not from another source, it makes your document non-conforming
08:08
<zcorpan>
AryehGregor: blockquote is sectioning root
08:09
<zcorpan>
maybe i should reply to teh email instead
08:09
<boblet>
zcorpan: that should have been stated not felt huh
08:10
<boblet>
(took me a while to find where I’d written that :)
08:10
<zcorpan>
boblet: where did i state that?
08:10
<boblet>
however spec for footer says it’s allowed in sectioning root elements, and blockquote is a sectioning root element
08:10
<zcorpan>
indeed, i don't recall stating that blockquote must not contain footer
08:11
<boblet>
I meant in that while footer is able to be quoted in blockquote, it’s not able to be used as a footer for blockquote
08:11
<MikeSmith>
zcorpan: that is, not allowed to contain the attribution, only the quote itself
08:12
<zcorpan>
yeah ok
08:12
<boblet>
I’ve been thinking more about it, and am writing an email about the use cases the current spec makes difficult or excludes
08:13
<boblet>
will look forward to your feedback on it :) hopefully tomorrow…
08:13
<boblet>
biab
08:46
<asmodai>
Any of my regular contacts in here interested in testing Google+?
08:46
<annevk>
I am
08:48
<matjas>
AryehGregor: can you chime in here? https://bugzilla.mozilla.org/show_bug.cgi?id=389348#c6
08:48
<annevk>
it seems I'm in already
08:48
<annevk>
thanks arve!
08:50
<asmodai>
lol
08:51
<asmodai>
Step out for 4 mins to talk to a colleague and annevk already gets invited, haha
08:51
<david_carlisle>
hsivonen: how many extra names does IE have, are they listed somewhere?
08:54
<hsivonen>
david_carlisle: my vague recollection is that there are more than 5 but fewer than 20.
08:55
<hsivonen>
david_carlisle: the one that I remember is called &pdf; but that ungooglable, so I have trouble finding a list
08:55
<david_carlisle>
hsivonen: grmble, hopefully we'll decide not to do anything, then i can go back to sleep
08:56
<annevk>
we already decided that last time this came up
08:56
<annevk>
not sure what new information there is
08:56
<hsivonen>
annevk: yes we did, but I don't recall the rationale.
08:56
<hsivonen>
annevk: had I recalled the rationale, I'd have WONTFIXed the bug already
08:56
<annevk>
IE has entities for bidirectional characters
08:57
<hsivonen>
annevk: also, I'm not sure I agreed with the rationale last time
08:57
<hsivonen>
still, I don't like flipflopping on stuff like this forever
08:58
<annevk>
http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2008-March/014125.html
08:58
<annevk>
"
08:58
<annevk>
I'm very skeptical about introducing entities for the codes that are
08:58
<annevk>
redundant with dir="" and <bdo> (namely, lre, lro, pdf, rle, rlo).
08:58
<annevk>
I don't know enough about the others to have an educated opinion. I can
08:58
<annevk>
set up a search to examine the data in more detail."
08:59
<annevk>
david_carlisle, in that email you can also find a list, just search for "pdf"
08:59
<hsivonen>
annevk: dir="" and <bdo> don't work inside the title attribute
08:59
<david_carlisle>
annevk: thanks for the link
09:05
<zcorpan>
Hixie: do you look at bugs in their order of priority?
09:38
<asmodai>
hah, awesome: http://grantgalitz.org/get_the_hell_out/LegendOfZelda_Links_Awakening/
09:40
<zcorpan>
i love that game
09:43
<matjas>
is it possible to disable rich text in contenteditable? /inb4 “just use <textarea>”
09:45
<zcorpan>
seems it doesn't have the select glitch
10:32
<hsivonen>
zcorpan: thanks for the sitepoint link
10:32
<hsivonen>
zcorpan: I have no idea what's going on but I trust bz's guess: https://bugzilla.mozilla.org/show_bug.cgi?id=668213#c5
10:43
<bdc>
PM `matjas`
11:45
<annevk>
Ms2ger, any chance I can get commit access to specification-data?
11:45
<annevk>
Ms2ger, I am going to try to do Progress Events with Anolis to see if I can make it work, but I need to add some references
11:46
<annevk>
Ms2ger, currently it does not even have XHR
11:46
<Ms2ger>
I thought you had access already, fixed now
11:46
<Ms2ger>
Btw, you noticed anolis can create those files for you?
11:47
<annevk>
I saw something about it creating the index for terms and such, but not sure how it works
11:50
<Ms2ger>
anolis --dump-xrefs=data/xrefs/dom/xhr.json Overview.src.html /tmp/whatever would update xhr.json
11:50
<Ms2ger>
(You probably need a stub with the URL first)
11:52
<annevk>
interesting
12:06
<annevk>
Ms2ger, I updated references.json with an XHR entry but I still get
12:06
<annevk>
"SyntaxError: Specification not found: xhr."
12:07
<annevk>
does specs.data also need an update?
12:07
<annevk>
hmm
12:07
<Ms2ger>
specs.json is for cross-spec cross-references, references.json is for the references section
12:17
<annevk>
the error reporting is not so great
12:17
<annevk>
lots of times make just says nothing and I get an empty Overview.html
12:17
<zcorpan>
so http://people.opera.com/miket/2011/6/viewer.html is kinda broken if the user uses teh reload button after viewing an image
12:18
<Ms2ger>
It should print an exception at least
12:18
<Ms2ger>
But patches very welcome ;)
12:19
<zcorpan>
would it be worth it to work around this misuse of the api so that if you reload a page that has used pushState, and the new page doesn't have an event listener for popstate, when you navigate back the browser uses the previous page (the one that used pushState) instead of staying on the current one
12:19
<annevk>
I think there are no exceptions for missing reference entries
12:19
<annevk>
it just fails silently
12:20
<annevk>
or maybe once it has thrown an exception it won't throw it again the next time you run make
12:21
<Ms2ger>
Strange, there is "raise SyntaxError, "Reference not defined: %s." % ref" in the code
12:29
<annevk>
http://dev.w3.org/2006/webapi/progress/ now uses Anolis
12:29
<annevk>
I guess I should check in my changes to specification-data
12:30
<Ms2ger>
Please do
12:31
<annevk>
where can you put a global hg file with username info and such?
12:32
<Ms2ger>
~/.hgrc
12:33
<annevk>
https://bitbucket.org/ms2ger/specification-data/changeset/8390f4084a7a
12:33
<Ms2ger>
Lovely
12:40
<hsivonen>
how does Roboform integrate into Opera versions that didn't support extensions?
12:40
<hsivonen>
it claims compat with Opera 7 through 11
12:40
<hsivonen>
does it do some tricky native code injection without API support from Opera?
12:45
<annevk>
Ms2ger, can you use Anolis from Python easily?
12:48
<Ms2ger>
Depends on what you call easily, I guess
12:48
<Ms2ger>
I'd look at http://hg.hoppipolla.co.uk/hgwebdir.cgi/aquarium/file/ebf539280b86/aquarium.py#l74
12:57
<annevk>
I need to do some pre-processing for XMLHttpRequest
12:57
<annevk>
either that needs to move to the Makefile or the Makefile needs to move to Python
12:57
<annevk>
or I guess I can create a bash script that combines them...
13:01
<Ms2ger>
Oh, right
13:02
<annevk>
that last option is prolly the easiest
13:07
<Ms2ger>
annevk, maybe something like this would work? http://pastebin.com/XAMfTyCS
13:10
<annevk>
I actually want to generate both copies at the same time
13:10
<annevk>
but I guess that's a step in that direction
13:10
<annevk>
Ms2ger, how do I do http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#ref-httpverbsec ?
13:11
<Ms2ger>
Wait for me to implement it, I'm afraid
13:11
Ms2ger
looks
13:12
<annevk>
I sort of like that for XML too
13:12
<annevk>
because you never want XML without XMLNS
13:12
<annevk>
at least not for specifications that matter, afaict
13:22
Ms2ger
tests
13:24
<Ms2ger>
annevk, { "HTTPVERBSEC": [{first link}, {second link}, {third link}] } should work if you update anolis
13:25
<annevk>
sweet
13:25
<annevk>
I'm adding a bunch of missing references first
13:29
<Ms2ger>
Looks like Vlad doesn't edit Typed Arrays anymore
13:29
<annevk>
Ms2ger, you mean after "href" and "title" right?
13:29
<zcorpan>
seems like some users don't want to update firefox because add-ons and other things break - http://www.sitepoint.com/forums/4908549-post15.html (search for "Actually, two reasons:")
13:30
<annevk>
Ms2ger, I will update that right away
13:33
<Ms2ger>
annevk, http://pastebin.com/C9VbyrWK
13:37
<annevk>
thanks
13:50
<annevk>
matjas, even though whitespace is not allowed it can still be made to work
13:51
<annevk>
matjas, so you should escape it appropriately on http://mothereffingcssescapes.com/ I think besides giving a warning
13:52
<hsivonen>
so IE10 PP2 has msRequestAnimationFrame
13:52
<hsivonen>
what's the Opera situation with that one?
13:52
<annevk>
we don't
13:53
<hsivonen>
sucks for Web authors (again) that this stuff isn't frozen and unprefixed faster
13:56
<Rik`>
hsivonen: the first shipped implementation is only 3 months old
13:57
<hsivonen>
Rik`: it's not like there's so many design decisions here
13:58
<Rik`>
hsivonen: the webkit guys proposed a second argument to determine if the element is displayed
13:58
<hsivonen>
I wonder if MS is interested in supporting MathML. they have pretty cool other layout goodies in 10PP2
13:58
<hsivonen>
Rik`: that kind of change would have been backwards-compatible even if the method had been unprefixed already
14:00
<matjas>
annevk: done, thanks!
14:00
<hsivonen>
in cases like these, prefixing mainly serves to disadvantage browsers that authors didn't bother to support at a given point in time
14:00
<hsivonen>
for example, if Opera adds an o-prefixed version, it will suck that code written for moz and webkit prefixes will go to a fallback setTimout path
14:01
<hsivonen>
even worse if a new engine wanted to break into the market
14:02
<hsivonen>
also, the point of prefixing is defeated if authors anticipate the o-prefixed and unprefixed versions to behave like the existing impls and write code anticipating that
14:04
<Rik`>
yes but the alternative is "first to implement choose the API"
14:05
<gsnedders>
hsivonen: And what we do now is often end up as the first to drop the prefix, which hurts too
14:05
<hsivonen>
Rik`: that happens anyway if Web authors write code that anticipates the unprefixed version working like the first prefixed version
14:07
<matjas>
annevk: wait, not done. Line breaks won’t work when simply escaped through \. Unicoads here I come!!1
14:07
<Rik`>
hsivonen: no, people who used the unprefixed version of the webkit gradients will not see it working
14:07
<hsivonen>
Rik`: when someone with paul_irish's visibility has blogged http://paulirish.com/2011/requestanimationframe-for-smart-animating/ , it's game over for incompatible changes unless browsers are willing to break cool new legacy content
14:08
<david_carlisle>
hsivonen: I wonder about that too:-)
14:09
<smaug____>
browser vendors should always be willing to break prefixed APIs
14:10
<hsivonen>
smaug____: note that copy-pasteable boilerplate in that post anticipates the future existence of compatible unprefixed version, o-prefixed version and ms-prefixed version
14:10
<hsivonen>
so far, guessing that an ms-prefixed version with the same behavior will emerge has paid off!
14:11
<hsivonen>
it will be interesiting to see what happens with flexbox
14:11
<hsivonen>
I changed prefixes to -ms- on code that worked in Gecko and WebKit using -moz- and -webkit- and got different results
14:12
<hsivonen>
(yes, I'm aware that TabAtkins has made actual spec changes after -moz- and -webkit- flexbox impls were made)
14:12
<annevk>
Ms2ger, so I'm trying to populate a newly generated progress-events.json but it does not work
14:23
<hsivonen>
fwiw, I'll be away from the internets next week, so even if someone sorts out the incomplete registrations at http://wiki.whatwg.org/wiki/MetaExtensions , deployment on Validator.nu will have to way until the 11th of July
14:27
<annevk>
Ms2ger, we should change <var> so that it never xrefs
14:31
<hsivonen>
looks like the link that the Webtrends regs should have had is http://product.webtrends.com/WRC/7.0/Documents/TechRef.pdf
14:53
<annevk>
converting XHR is a little more work than expected :/
14:53
<annevk>
it was a feature people have requested for ages though so hopefully it is worth it
15:26
<TabAtkins>
hsivonen: IE10 will have old flexbox behavior. Webkit is switching to new flexbox behavior.
15:27
<TabAtkins>
Of course, both -moz and -webkit flexbox were sufficiently different/buggy that you couldn't just spam the prefixes and get the same result in non-trivial cases.
15:31
<annevk>
Ms2ger, anolis seems to strip _ from terms
15:32
<annevk>
Ms2ger, this creates problems for e.g. SYNTAX_ERR which becomes syntaxerr but is syntax_err in xrefs
15:34
<annevk>
I could hack Anolis but I have no commit rights
15:39
<annevk>
Ms2ger, I have a fix
15:39
<smaug____>
TabAtkins: just curious, any estimate whether the new flexbox model will be stable, or will it be changed again in few months?
15:39
<annevk>
-non_alphanumeric_spaces = re.compile(r"[^a-zA-Z0-9 \-]+")
15:39
<annevk>
+non_alphanumeric_spaces = re.compile(r"[^a-zA-Z0-9 \-\_]+")
15:39
<annevk>
Ms2ger, ^^ in the xref files
15:40
<smaug____>
so, what is the reason for <command> element?
15:42
<TabAtkins>
smaug____: The underlying model is stable, though I'm re-adding the multiline feature today or next week. Syntax may still be tweaked, but that's it.
15:45
<smaug____>
I guess there is only one reason for <command>; to have icon with checkbox or radiobutton
15:45
<smaug____>
kind of weak reason
15:47
<AryehGregor>
boblet, zcorpan: Oops. I should have read the spec before I commented. :)
15:48
<AryehGregor>
(on blockquote as sectioning root)
15:50
<AryehGregor>
matjas, I'll look.
16:01
<hsivonen>
TabAtkins: apparently the cases I've used (or, well, that Paul Rouget has used and that I've copied) have been simple enough to have the same flex stuff with -moz- and -webkit-
16:04
<paul_irish>
hsivonen: btw i hear ya on rAF.. i wrote that post as a way to gather feedback on the spec primarily.. secondarily i wanted to share a shim that was a bit smarter than existing ones that were circulating. it does put vendors in weird place though as the script assumes certain behavior.. :/
16:04
<paul_irish>
Few devs understand that the existence of a prefix means By Using this You are entering into a Contract where things may break and it is Your Fault if they do. :)
16:05
<paul_irish>
and then i'd also suggest many things stay prefixed too long anyhow, so that implication loses its authority over time
16:06
<paul_irish>
not sure what the right solution is.. but i do get the vibe most devs dont know where/how to submit the community feedback that is desired and implied by the prefix
16:20
<hsivonen>
paul_irish: I think the right solution is to allocate more people-time paid by browser vendors to spec writing
16:20
<hsivonen>
paul_irish: to get specs in order sooner
16:21
<paul_irish>
+1
16:21
<TabAtkins>
+1
16:21
TabAtkins
could use some more spec writers to help out.
16:28
<smaug____>
not only spec writers, but also spec reviewers
16:30
<MikeSmith>
speaking of spec review, would be nice to get more implementor feedback on the Notifications spec
16:31
<MikeSmith>
we had estimated we could take that to LC this month
16:31
<MikeSmith>
or maybe even it was CR
16:31
<annevk>
John should fix the things Hixie raised I guess
16:32
<MikeSmith>
need to ping him I guess
16:35
<MikeSmith>
whoah, Alastair left Bocoup
17:14
<TabAtkins>
Hm. Is multipage partially broken? Looks like http://www.whatwg.org/specs/web-apps/current-work/complete/rendering.html is coming through as an empty doc.
17:40
<annevk>
Ms2ger, if you are still there, need to allow / too
17:41
<annevk>
-non_alphanumeric_spaces = re.compile(r"[^a-zA-Z0-9 \-]+")
17:41
<annevk>
+non_alphanumeric_spaces = re.compile(r"[^a-zA-Z0-9 \-\_\/]+")
17:41
<annevk>
Ms2ger, ^^ is the new diff
17:45
<AnselmBradford>
Does anyone know the current status of the keygen element support in IE? Is this post still the current sentiment of MS? http://blog.whatwg.org/this-week-in-html5-episode-35 e.g. no intention of support in IE?
17:49
<AryehGregor>
AnselmBradford, that's the last I heard, yeah.
17:49
<AryehGregor>
Everyone seems to agree keygen stinks.
17:49
<AryehGregor>
But no one cares enough to replace it.
17:51
<AnselmBradford>
AryehGregor: thanks, seemed to be the sentiment I was reading
17:51
<AnselmBradford>
just wanted to double-check
17:52
<AnselmBradford>
you reckon it will be replaced anytime soon? Or who knows...
17:53
<TabAtkins>
AnselmBradford: It'll be replaced when someone cares enough to. ^_^ Which no one does currently, so...
17:53
<AnselmBradford>
TabAtkins: heh, fair enough
18:26
<annevk>
http://dev.w3.org/2006/webapi/XMLHttpRequest-2/ and http://dev.w3.org/2006/webapi/XMLHttpRequest/ use Anolis as well now
20:26
<smaug____>
ahaa, accessKey handling is underspecified
20:26
smaug____
needs to review and file a bug
21:01
<Hixie>
annevk-cloud: yt?
21:01
<Hixie>
oh hm nm
21:02
<Hixie>
annevk-cloud: should http://dvcs.w3.org/hg/from-origin/raw-file/tip/Overview.html just be merged into the Fetch algorithm?
21:15
<Hixie>
i'm going to start making web pages which, isntead of using native controls or canvas or svg or whatever, draw everything pixel by pixel using one radio button per pixel and CSS to set the radio button pixels' colours
21:15
<Hixie>
i demand that we add accessibility apis to support this authoring model!
21:15
<Hixie>
why do you all hate accessibility! you're makign it imposssible for me to write accessible web pages using radio buttons for pixels!
21:22
<The_8472>
Hixie, i prefer my "canvas fallback through 1x1px table cells" approach
21:23
<Hixie>
dude authors would never use table cells for this kind of thing, it's clear that that's bad for accessibility. they will use radio buttons like me! which is why we should have a radio button pixel accessibility api!
21:24
<The_8472>
we could... embed radio buttons in table cells for maximum compatibility AND accessability?
21:29
<Hixie>
TabAtkins: if you could get some traction on http://code.google.com/p/chromium/issues/detail?id=80911&q=bzbarsky&colspec=ID%20Stars%20Pri%20Area%20Feature%20Type%20Status%20Summary%20Modified%20Owner%20Mstone%20OS that'd be fantastic; the difference is masking some potential issues with wf2 api changes
21:29
<jamesr>
google.com had table cell bitmaps for icons at one point briefly
21:29
<jamesr>
with judicious use of rowspan/colspan to cut down on the # of cells
21:29
<Hixie>
the shopping cart guys did that
21:29
<Hixie>
i had words
21:29
<jamesr>
yeah
21:29
<Hixie>
(not that they listened, but still)
21:29
<jamesr>
i think it was only live for a few days
21:29
<hober>
Hixie: :)
21:30
<The_8472>
<jamesr> with judicious use of rowspan/colspan to cut down on the # of cells <- "let's implement something atrociously slow and horrible. and then optimize it a bit. it'll be perfectly fine!"
21:30
<zewt>
heh
21:30
<zewt>
the firmware update on my old wifi router actually uses a form submit button ... as a progress bar
21:30
<zewt>
o_O
21:31
<jamesr>
The_8472: i think the motivation was mainly to inline the image (to avoid another request) and support browsers that didn't handle data: urls
21:31
<The_8472>
oh. static images. i was thinking of animating stuff with tables!
21:38
<jamesr>
hah
21:38
<jamesr>
you could probably do something decent with paletted tables
21:49
<Ms2ger>
annevk-cloud, I'll look at it tomorrow if I don't forget
22:58
<jamesr>
is anyone here following jason weber's setImmediate proposal discussions closely?
22:58
<jamesr>
i feel like i have a different set of assumptions going in and i'm not exactly sure what they are
23:06
<Hixie>
jamesr: http://www.w3.org/mid/CAD73md+Zp8J2bbdgTqPnK7FYW9A8ZHAEttz_6-H16g6sPKumUA⊙mgc is the crux of the matter as far as i can tell
23:06
<jamesr>
well, yeah
23:07
<jamesr>
that's definitely an issue
23:07
<TabAtkins>
So, hm. How many of the use-cases for setImmediate can be solved by Workers?
23:07
<Hixie>
jamesr: i don't understand what the proposal achieves other than that, and as you imply, it doesn't even achieve that
23:07
<TabAtkins>
After all, you can just infinite-loop a Worker and go about your business.
23:08
<Hixie>
presumably this is for things that update the dom?
23:08
<Hixie>
but then why not use settimeout-0
23:08
<zewt>
(well, workers still have the problem of not being able to receive events during a processing loop; maybe I should give that thread a kick at some point...)
23:09
<jamesr>
zewt: true
23:09
<jamesr>
we could unclamp settimeout() in workers
23:10
<jamesr>
or rely on authors setting the timer early, like in my example code
23:10
<TabAtkins>
Hixie: You can just send a message to something in the page that'll update the dom for you.
23:10
<TabAtkins>
jamesr: No need to setTimeout at all in workers.
23:10
<jamesr>
TabAtkins: you do in order to process incoming messages
23:10
<Hixie>
TabAtkins: not if the work to update the dom is the expensive work
23:10
<jamesr>
or window.postMessage() yourself to yield
23:10
<zewt>
my proposal was to add a way to explicitly, synchronously receive a message from a MessagePort in workers; don't remember where that left off (just trailed off, iirc)
23:10
<jamesr>
which is equivalent to setImmediate
23:11
<TabAtkins>
jamesr: Ah, yes, recieving messages woudl require that. If you're just sending them, you don't.
23:11
<TabAtkins>
But yeah, unclamping in a Worker would work, since the primary use-case for the clamp is "keep the UI thread from being hung".
23:11
<jamesr>
it's more to keep really dumb pages from spinning 100%
23:11
<jamesr>
with an unclamped setTimeout() you can still service UI stuff
23:12
<TabAtkins>
Hixie: But it'll get done in separate invocations of the message handler, right?
23:12
<zewt>
jamesr: iirc, an objection to that was that it may be hard to actually guarantee the message loop spins fully when a 0ms timer is looping
23:12
<zewt>
(don't remember clearly, discussion was a while ago)
23:12
<jamesr>
smells like QoI
23:12
<zewt>
er, the event loop
23:12
<Hixie>
TabAtkins: oh, i see what you're saying
23:13
<Hixie>
TabAtkins: yeah, you could do that. it's a bit non-intuitive.
23:13
<jamesr>
the event loop impl in chrome is very carefully designed not to starve any task source (both the HTML-defined ones and the implementation-internal ones)
23:13
<Hixie>
TabAtkins: think of a case where you need to crawl a 5MB document and search for text nodes containing some text
23:13
<Hixie>
TabAtkins: can't really do that in a worker, and you need to yield
23:13
<TabAtkins>
jamesr: Oh, if that's the major use-case, then setImmediate does nothing. If someone was spinning the CPU with setTimeout(0), there's absolutely no reason they wouldn't spin it with setImmediate too.
23:13
<Hixie>
TabAtkins: (settimeout 0 seems fine for that in practice, to me)
23:13
<TabAtkins>
Hixie: That's true, and yes.
23:13
<jamesr>
TabAtkins: that's my primary objection
23:14
<Hixie>
anyway i don't really see the point of setImmediate()
23:14
<Hixie>
it'll never be possible to keep it unclamped
23:14
<Hixie>
at which point, it's the same as setTimeout()
23:14
<Hixie>
so...
23:14
<TabAtkins>
jamesr: I assumed the big reason was the whole "starving everybody else of events" thing, and because solving that with setTimout(0) can increase your running time by a non-trivial amount if you dont' split up the work large enough.
23:15
<zewt>
TabAtkins: there's an argument against that on that page: setTimeout(0) has never actually spun, since implementations have always clamped it (long before that was specced), and at least some people using setTimeout(0) are depending on that (probably without being aware of it)
23:15
<jamesr>
TabAtkins: then split your work better
23:15
<zewt>
TabAtkins: i certainly wouldn't argue that *some* people wouldn't spin stupidly with setImmediate, of course
23:15
<jamesr>
zewt: that's just not true, though. mozilla was unclamped, they noticed that pages were using 100% CPU, and they clamped
23:15
<zewt>
jamesr: because of people only testing in IE, is my first guess
23:16
<jamesr>
in chrome we had an unclamped setTimeout for a while (before release)
23:16
<jamesr>
couldn't go with it, of course, because too many pages spun the CPU too badly
23:16
<TabAtkins>
jamesr: Indeed. Your code snippet was simple. If it's a big problem, we can solve *that* case directly.
23:16
<jamesr>
people's macbook pros were setting their jeans on fire
23:16
<zewt>
(the set of people who would only test in IE and the set of people who would use a setTimeout(0) busy loop probably has a lot of overlap)
23:16
<TabAtkins>
With, like, a "yieldIfTooMuchTimeIsPassing()" function.
23:16
<Hixie>
well you wouldn't want a continuation
23:17
<Hixie>
(well, you would, but vendors wouldn't)
23:17
<TabAtkins>
"yieldIfTooMuchTimeHasPassedSinceTheLastTimeICalledThisFunction()"
23:17
<Hixie>
but the same principle applies
23:17
<Hixie>
hasTooMuchTimeElaphsed()
23:17
<TabAtkins>
Hixie: I certainly do. And at least some of us webkit people do.
23:17
<Hixie>
really?
23:17
<Hixie>
dude the moment browser vendors add continuations to the platform, i'm speccing features left right and center to use them
23:18
<TabAtkins>
Yeah. It's even in our Traceur thing.
23:18
<TabAtkins>
We support an "async" keyword that does simple continuations.
23:18
<Hixie>
all the async apis can go away if we have real continuations
23:18
<zewt>
what's the vendor objection to them? just too hard to handle when calling scripts from lots of different exit points?
23:18
<jamesr>
continuations are cool but they're a language level thing
23:18
<jamesr>
dunno if you can just slip them in without a lot of careful design
23:18
<TabAtkins>
Hixie: Indeed, continuations are ridiculously more usable than callbacks.
23:18
<Hixie>
anyway my assumption is that they're not coming any time soon
23:19
<Hixie>
but if that assumption is wrong, i look forward to being proven so :-)
23:19
<TabAtkins>
jamesr: You end up having to duplicate all the async methods into being task-based, but it's not too intrusive.
23:20
<TabAtkins>
Hixie: Tasks-via-continuations are just an inversation of iterator functions, which everyone wants to support (and FF already does).
23:20
<TabAtkins>
s/inversation/inversion/
23:20
<TabAtkins>
It's basically the same "convert the code into a state machine" transformation.
23:21
<Hixie>
i thought iterator functions were very tied to specific objects
23:22
<TabAtkins>
Just to make sure we're talkinga bout the same thing, I'm referring to Python-like functions that use "yield" to return values.
23:22
<Hixie>
yeah
23:22
<Hixie>
you can't just yield from a random function though, you can only yield from one that's known to be an iterator, right?
23:22
<TabAtkins>
Ok, then yeah, it's the same thing but inverted. When you use an iterator function, the function is converted to a state machine. When you use a task, *you're* converted to a state machine.
23:23
<jamesr>
TabAtkins: your mom is converted to a state machine
23:23
<TabAtkins>
And you magically transform into producing tasks as well.
23:23
<Hixie>
so what happens if you're in the middle of processing a sync event or one of these new mutation callbacks, and you call yield()?
23:23
<Hixie>
that sounds insanely painful
23:23
<TabAtkins>
I won't think about Jonas's mutation callbacks, because they're not good.
23:24
<TabAtkins>
I dunno how sync events are handled. What's an example?
23:24
<Hixie>
ok, you're in the middle of a signalling channel callback, and you call yield()
23:24
<Hixie>
does the whole PeerConnection C++ implementation get "converted to a state machine"?
23:24
<zewt>
Hixie: well, there's how Python does it: if you use the yield keyword, then calling the function returns a generator object; which implies that you can only yield if the caller is expecting it, or the rest of the function just won't be executed
23:25
<zewt>
so the exit points that actually support yielding is controllable and not everything necessarily needs to
23:25
<TabAtkins>
Hixie: Dunno how PeerConnection works either.
23:25
<Hixie>
zewt: right, but that yields to the caller. here we're talking about yielding to the event loop. whole different kettle of fish.
23:26
<jamesr>
i think having continuations is nice but it doesn't really reduce the complexity of re-entrancy by that much
23:26
<zewt>
right, but the callback or event could specify whether it supports it
23:26
<TabAtkins>
But the function that uses the async keyword (to magically make an async event look sync in the code) gets transformed to returning a task instead of its normal return value.
23:26
<zewt>
(not sure just how that would work with events)
23:26
<TabAtkins>
And it returns that task as soon as the first "async" is hit.
23:26
<zewt>
tab: yeah, that sounds directly analogous to Python's model
23:26
<TabAtkins>
If the caller doesn't know how to handle tasks, it'll get hurt.
23:27
<TabAtkins>
But everything on the UA level *should* know how to do so.
23:27
<Hixie>
TabAtkins: oh so you're not just yielding to the event loop, you're just yielding to the parent, who then has to yield as well, etc
23:27
<TabAtkins>
Yes.
23:27
<Hixie>
oh well that's not so interesting
23:27
<Hixie>
that's just a generator
23:27
<zewt>
i think lua's model allows yielding all the way out, but it has a full coroutine system for that
23:27
<TabAtkins>
It still lets you write straight-line, callback-less code in many situations that would otherwise be messy.
23:28
<Hixie>
TabAtkins: not really. you have to have your entire callchain expect you to be yielding, it's not much better than having the whole chain use callbacks.
23:28
<TabAtkins>
Hixie: Not quite. Actually implementing it with a generator involves more fiddliness.
23:28
<Hixie>
in other news, i just did a revamp of http://www.whatwg.org/specs/web-apps/current-work/complete.html#rendering to be organised by element, not property
23:29
<zewt>
Hixie: from my experience with Python, i disagree; having to yield up the call chain is annoying, but *way* better than callbacks or a direct state machine
23:29
<Hixie>
can y'all give it a quick sanity check?
23:29
<Hixie>
(in particular if anyone can reorder the stylesheet at the top of 15.2.5 Phrasing content to make more sense, let me know)
23:29
<Hixie>
(i couldn't come up with a good organisation for it)
23:30
<The_8472>
callbacks and coroutines are nearly the same if you do callbacks with closures and the closure syntax is so thin that you could just as well continue the method...
23:31
<jamesr>
Hixie: wait, 'expected' is a MUST-level requirement?
23:32
<jamesr>
i never realized that (i think i always have skipped to the individual entries and skipped the intro text)
23:32
<Hixie>
jamesr: it's a kind-of-must-requirement for certain classes of UAs
23:34
<The_8472>
iow: if you want to slap a "standards-compliant" label on your UA?
23:34
<zewt>
the: it's a significant difference in readability; being able to write algorithms linearly is, IMO, one of the major advantages of doing stuff in workers instead of with callbacks
23:35
<Hixie>
The_8472: you don't have to implement the rendering rules in general
23:35
<Hixie>
The_8472: you do if you want to be a mainstream browser ("user agent designated as supporting the suggested default rendering")
23:36
<The_8472>
that's very weasel-y language
23:36
<Hixie>
suggestions welcome on making it clearer
23:36
<Hixie>
TabAtkins: what's the opposite of "replaced element"?
23:36
<zewt>
(of course, on the same token I'd rather be able to offload more things into workers than worry about new ways to do complex tasks in the UI thread)
23:36
<Hixie>
TabAtkins: (in css)
23:36
<TabAtkins>
non-replaced element.
23:36
<Hixie>
bummer
23:36
<Hixie>
i was hoping for something more puthy
23:36
<Hixie>
pithy
23:36
<TabAtkins>
We rarely have to talk about that.
23:37
<TabAtkins>
Usually it's just general rules for all elements, and then exceptions for replaced.
23:37
<Hixie>
i have a section on replaced elements, following a section on everything else
23:37
<Hixie>
looking for a heading for that first section
23:37
<The_8472>
zewt, problem with workers is that none of the core components (DOM/layout/javascript) have been designed with multithreading in mind. that's why the webworker api is so useless
23:37
<TabAtkins>
Hixie: Got some suggestion on how to fix 15.2.5 to be more readable. How you want the feedback?
23:38
<Hixie>
TabAtkins: whatever works for you
23:38
<zewt>
the: they've been designed with multithreading explicitly not in mind, which isn't quite the same thing
23:38
<TabAtkins>
I'll email, then.
23:38
<Hixie>
k, send it straight to ian⊙hc
23:38
<zewt>
(not quite the right way of putting it, but I think you know what I mean)
23:39
<Hixie>
TabAtkins: eta? (just trying to work out if i should check it in now and handle the feedback async, or if i should check google+ then handle your feedback :-) )
23:39
<The_8472>
yeah. the point was is that those design decisions (intentional or not) are what has lead to the web workers being so restricted
23:39
<TabAtkins>
Hixie: 5 min or less
23:39
<Hixie>
cool
23:40
<zewt>
the: yeah; some of those will hopefully eventually be relaxed, some will probably never be (eg. multithreaded access to the same DOM tree)
23:42
<The_8472>
snapshotting
23:42
<The_8472>
snapshot the dom tree, work on a read-only copy
23:42
<The_8472>
could be "good enough" for some things
23:43
<TabAtkins>
Hixie: Sent. Just some slight reordering, and some redundancy added to make things group better.
23:43
<zewt>
maybe, sounds complex, though
23:43
<The_8472>
e.g. to collect all the data you need to generate a fragment, read the layout properties without risking layout reflows and then attach the generated fragment to the live dom
23:43
<zewt>
(how do you snapshot a WebGL context?)
23:43
<The_8472>
texture
23:44
<The_8472>
you'd need a "get me the live equivalent of this dom node" call of course
23:44
<Hixie>
TabAtkins: thanks
23:44
<nlogax>
STM DOM? :)
23:45
<Hixie>
TabAtkins: you think redundancy is ok? i've been avoiding it like the plague in this section for some reason
23:45
<TabAtkins>
Yes.
23:45
<Hixie>
k
23:45
<TabAtkins>
I always feel icky when I remove redundancy from my stylesheet just for the sake of removing redundancy.
23:45
<TabAtkins>
Selectors should communicate useful information, especially when grouped together.
23:46
<Hixie>
(by redundancy i meant multiple rules applying the same property with the same value to the same element; is that what you meant?)
23:46
<Hixie>
(i don't see any)
23:47
<Hixie>
i think you meant multiple rules giving the same property/value pair
23:47
<Hixie>
which seems ok
23:47
<TabAtkins>
No, I meant splitting up a selector into multiple decl blocks.
23:47
<TabAtkins>
Yeah.
23:47
<Hixie>
looks good
23:48
<Hixie>
regenning
23:48
The_8472
uses sass at work. the generated CSS can grow to humungous proportions if you don't pay attention... but it makes things so much easier
23:49
<The_8472>
tweak a few variables and the whole color scheme changes. gradients, text, borders... everything
23:50
<The_8472>
can only be a decade until we have that in browsers too :(
23:50
<TabAtkins>
I'm working on it.