00:00 | <heycam> | jamesr, oh, they should surround the text |
00:00 | <sephr> | why does DOMSettableTokenList exist then? |
00:00 | <sephr> | I don't see anything that uses it |
00:00 | <AryehGregor> | jamesr, on the flip side, it's kind of a pain sometimes to author specs in text/html, like when you forget </ol> and half your document gets silently indented and you don't notice for a week. |
00:00 | <TabAtkins> | jamesr: <p>I'm text in a paragraph</p> |
00:01 | <AryehGregor> | I kind of wish there were some middle ground. |
00:01 | <TabAtkins> | AryehGregor: It's called "use a validator occasionally". |
00:01 | <AryehGregor> | sephr, go here (warning, might freeze your browser for a while) <http://www.whatwg.org/specs/web-apps/current-work/#domsettabletokenlist>, then click on "DOMSettableTokenList" for a list of references in the spec. |
00:01 | <jamesr> | AryehGregor: yeah, if the source is html then hopefully the makefile runs a validator for you |
00:01 | <AryehGregor> | TabAtkins, peculiar idea. |
00:02 | <AryehGregor> | Is there an easily-accessible command-line HTML5 validator around? |
00:02 | <sephr> | AryehGregor: didn't help much |
00:02 | <sephr> | still se o use of DOMSettableTokenList |
00:03 | <sephr> | see no* |
00:03 | <AryehGregor> | sephr, I see a bunch. itemRef, itemProp, dropzone, sizes, . . . |
00:03 | <sephr> | huh? |
00:03 | <sephr> | maybe I didn't click the right stuff |
00:03 | <alus> | I have a question about cookies, specifically the domain attribute. is this a reasonable place to ask? |
00:04 | <sephr> | oh thanks AryehGregor |
00:04 | <AryehGregor> | alus, sure. |
00:04 | <sephr> | doesn't make sense to have class and rel lists be non-string-settable though |
00:05 | <alus> | the browser already has a cookie I set without specifying "domain". the browser says it's for "foo.com". I tried to set a new cookie for "foo.com", but the browser stored it for ".foo.com". when I visit foo.com it send in the first cookie not the new one |
00:05 | <alus> | is this expected behavior? it happens in FF3 and Chrome11 |
00:05 | <sephr> | AryehGregor: any insight as to why class and rel lists don't use settable? |
00:05 | <sephr> | it's not like you couldn't .add() stuff anyways |
00:06 | <alus> | is there any way to store a cookie for "foo.com" by specifying a domain attribute? |
00:06 | <aho> | w/o www it's wildcarded |
00:06 | <AryehGregor> | sephr, I don't know. My first guess is it's just what existing browsers did before the spec was written, or the spec was written before DOMSettableTokenList, or some similarly prosaic reason. |
00:06 | <AryehGregor> | I don't know if they can easily be changed. |
00:06 | <sephr> | well it'd only be adding a property and not affecting anything else |
00:07 | <aho> | e.g. you can use www.example.com (with cookies for that domain) and put your static files on static.example.com |
00:07 | <AryehGregor> | Maybe sites are relying on the existing behavior. |
00:07 | <AryehGregor> | I.e., the site might break if assigning a string to the attribute actually worked. |
00:07 | <sephr> | it wouldn't change the existing behavior |
00:07 | <AryehGregor> | Oh. |
00:07 | <AryehGregor> | I see. |
00:07 | <aho> | if you don't use www, then cookies will be always sent - even if you request stuff from subdomains |
00:07 | <sephr> | nobody references .value in any of their code |
00:07 | <AryehGregor> | Yeah, that's a good point. |
00:07 | <alus> | aho: that doesn't seem to be true |
00:07 | <AryehGregor> | I don't know, then. |
00:07 | <AryehGregor> | For classList, you could just use className, right? |
00:07 | <AryehGregor> | And there's a similar attribute for rel? |
00:07 | <sephr> | yeah, but that's slow |
00:07 | <sephr> | .rel |
00:08 | <sephr> | would you mind raising this issue on whatever mailing list is appropriate? |
00:08 | <AryehGregor> | You can provide spec feedback in the little box. |
00:08 | <AryehGregor> | That will file a bug and CC public-html. |
00:08 | <AryehGregor> | Why is it slower than setting value? |
00:08 | <alus> | aho: if I don't set a domain, it seems to be set for "foo.com" which is *not* sent for subdomains. if I manually set a domain of "foo.com" it's stored for ".foo.com" which *is* sent for subdomains |
00:09 | <AryehGregor> | Surely .classList.value and .className are logically identical. |
00:09 | <sephr> | it's slower because it has to remove and apply all of the attributes every time you cahnge it |
00:09 | <sephr> | AryehGregor: yes they're the same |
00:09 | <jamesr> | hmm, somehow the auth failed and it made mercurial get into an infinite loop in urllib. impressive |
00:09 | <AryehGregor> | So does setting .value, no? |
00:09 | <sephr> | I was talking about the normal API using .add/etc. |
00:09 | <sephr> | I'm just wondering why .value doesn't even exist |
00:09 | <sephr> | it's just weird |
00:09 | <AryehGregor> | jamesr, yeah, Mercurial is fun like that. It also sometimes dies with Python stack traces. |
00:10 | <jamesr> | they set the http error listener to retry the connection with no bounds check. new stack frame every time it 401s. very nice |
00:10 | <AryehGregor> | Oh, so you mean why doesn't DOMTokenList have a .value attribute to start with? |
00:10 | <sephr> | AryehGregor: say you want to pass a DOMSettableTokenList to a function and not an element itself |
00:10 | <sephr> | yeah |
00:10 | <AryehGregor> | That's a good question, I dunno. |
00:10 | <AryehGregor> | It's kind of weird. |
00:10 | <AryehGregor> | Definitely feel free to give feedback in the little box, I'd be interested in hearing the question. |
00:10 | <AryehGregor> | Or maybe Hixie can tell us right now. |
00:10 | <Hixie> | sup |
00:10 | <AryehGregor> | Hixie, why does DOMSettableTokenList even exist? Why not just add the .value property to DOMTokenList? |
00:11 | <Hixie> | i didn't want there to be two attributes that exposed .className |
00:12 | <AryehGregor> | Surely it's less confusing to just use the same interface for everything, though, even if it's redundant? |
00:12 | <sephr> | Hixie: yeah, but what if I just want to pass DOMTokenLists? |
00:12 | <sephr> | I shouldn't have to pass elements just for those few special cases |
00:12 | <AryehGregor> | It's not like it would require extra spec or implementation work to support .value here. |
00:12 | <sephr> | where there's already a property |
00:12 | <AryehGregor> | It would make the spec shorter, actually. |
00:13 | <Hixie> | AryehGregor: i think people won't think of them as the "same interface", they'll think of them as "the way to change X" and "the way to change Y" |
00:13 | <Hixie> | sephr: why would you pass a DOMTokenList? |
00:13 | <AryehGregor> | I think the status quo is considerably more confusing. |
00:13 | <sephr> | hypothetical |
00:14 | <sephr> | possibly some fancy js lib |
00:14 | <Hixie> | sephr: i try not to fix hypothetical problems :-) |
00:14 | <sephr> | well still it's just so much uneeded abstraction |
00:14 | <Hixie> | AryehGregor: we need some way to determine which is more confusing, i guess |
00:14 | <Hixie> | the design was to avoid redundancy, which i try hard to avoid because it always seems to cause more confusion than it solves |
00:14 | <AryehGregor> | Hixie, alternatively, we can just go with the way that's simpler to spec and implement, which is having only one interface. |
00:14 | <AryehGregor> | I generally agree that redundancy is bad. |
00:15 | <Hixie> | the way that's simpler to spec is the way it's specced now |
00:15 | <Hixie> | since to have what we have now requires no change |
00:15 | <Hixie> | and to have anything else requires a change |
00:15 | <AryehGregor> | Well, okay, yes. |
00:15 | <Hixie> | simpler to implement is a different matter, but not as important as what is best far authors |
00:15 | <Hixie> | for |
00:16 | <Hixie> | without solid data, i don't know how to make the call one way or the other |
00:16 | <sephr> | Hixie: for example, say I want to change various DOMTokenList type properties of various elements given a string supplied by a lib user. I shouldn't have to make special exceptions for "classList", etc. |
00:16 | <AryehGregor> | sephr, you need to be more concrete. |
00:16 | <AryehGregor> | Also, you need to explain why add() and remove() don't work. |
00:16 | <sephr> | just did |
00:17 | <sephr> | an API being supplied with a string representation |
00:17 | <Hixie> | sephr: why would you ever want to do the same thing to classList as to itemProp? |
00:17 | <AryehGregor> | Why would such an API even exist? |
00:17 | <AryehGregor> | You need to give a realistic and specific use-case, not a hypothetical. |
00:17 | <AryehGregor> | Preferably it should be something that you or someone demonstrably wants to do. |
00:17 | <sephr> | for the same reason jquery has methods for setting attributes |
00:17 | <AryehGregor> | Otherwise, it's not worth the effort to think about. |
00:18 | <sephr> | just convenience |
00:18 | <AryehGregor> | Does jQuery treat tokenlists differently than everything else? |
00:18 | <sephr> | it might if it was easy to |
00:18 | <AryehGregor> | Hypothetical convenience is not worth the effort to spec and implement a change. |
00:18 | <sephr> | eh, ok |
00:18 | <sephr> | Hixie: you can close http://www.w3.org/Bugs/Public/show_bug.cgi?id=12585 |
00:18 | <AryehGregor> | There are always going to be more important things to do. |
00:19 | <Hixie> | sephr: feel free to close it :-) |
00:20 | <sephr> | how? |
00:20 | <sephr> | are new users allowed to close any random bugs? |
00:20 | <Hixie> | should be able to |
00:20 | <AryehGregor> | Anyone with an account can. |
00:20 | <sephr> | ok sure |
00:23 | <sephr> | hmm |
00:23 | <sephr> | not getting the email |
00:23 | <sephr> | not even in any spam filters |
00:23 | <sephr> | oh nvm got it |
00:28 | <jamesr> | heycam: ok, got some stuff up |
00:28 | <jamesr> | hmm, i didn't mean to include the native animation stuff |
00:28 | <heycam> | yeah if the meat of the spec isn't referencing those definitions, let's leave them out for now |
00:29 | <jamesr> | i have definitions without references. oopsie |
00:44 | <heycam> | I guess w3c-test.org is an automatic checkout of some repos on dvcs.w3.org? (is w3c-test.org a W3C machine?) |
00:52 | <Philip`> | heycam: http://w3c-test.org/ says "W3C would like to thank Microsoft who donated the server that allows us to run this service." |
00:53 | <Philip`> | It's automatic except (if I remember correctly) for manual verification of added PHP scripts |
00:55 | <heycam> | Philip`, thanks. the non-w3.org domain just looks a bit weird to me. |
00:57 | <heycam> | jamesr, also the "getting the next sample time" has lots its definition |
00:57 | <Philip`> | heycam: http://lists.w3.org/Archives/Public/public-html-testsuite/2010Nov/0046.html |
00:57 | <heycam> | but that probably only made sense when the native animation stuff was in there |
00:57 | <jamesr> | yeah it did |
00:57 | <heycam> | yes it does, sorry |
00:58 | jamesr | looks |
00:58 | <heycam> | it needs some definition though |
00:58 | <heycam> | Philip`, ah, makes sense |
00:58 | <jamesr> | i'm sort of hoping we can define a uniformly monotonic clock on document and define this in terms of that |
00:59 | <jamesr> | i think a DOMTimeStamp that's since the unix epoch but that is not directly comparable to Date.now() is going to be bug city |
00:59 | <heycam> | yes I agree |
00:59 | <jamesr> | there was also some text in your draft about the time between ticks being between 16 and 1000 ms |
01:00 | <heycam> | in WebKit you suspend callbacks altogether in background tabs, is that right? |
01:00 | <heycam> | ("script-based animations" is also referenced with no definition) |
01:00 | <llrcombs> | heycam: I don't believe so |
01:00 | <jamesr> | the "MUST be in the future" text in your people.mozilla.org draft is also tricky to resolve with Date.now() |
01:00 | <jamesr> | heycam: we do |
01:00 | <jamesr> | llrcombs: no? |
01:01 | <llrcombs> | example: Chrome web notifications show up when the tab's in the bg |
01:01 | <llrcombs> | or did you mean Safari/WK Nightlies? |
01:01 | <jamesr> | we're talking about webkitRequestAnimationFrame |
01:01 | <jamesr> | currently those callbacks are completely suspended in background tabs |
01:01 | <Hixie> | hsivonen: yt? |
01:01 | <jamesr> | or minimized or whatnot |
01:01 | <llrcombs> | oh, I just saw "suspend callbacks" |
01:01 | <llrcombs> | d |
01:01 | <llrcombs> | 'oh |
01:01 | <llrcombs> | ignore that |
01:01 | <jamesr> | and setTimeout/setInterval timers are clamped to 1s |
01:01 | <Hixie> | any xslt people here? |
01:01 | <llrcombs> | sorry about that |
01:02 | <jamesr> | no worries |
01:02 | <Hixie> | http://www.w3.org/Bugs/Public/show_bug.cgi?id=11090#c3 seems really surprising to me |
01:02 | <heycam> | whether callbacks are suspended entirely or just run very slowly might be something to discuss on the list |
01:03 | <heycam> | but I don't mind if the [16,1000] range is missing from the document at the moment |
01:06 | <jamesr> | i think the microsoft guys are keen to define the scheduling in terms of vblanks |
01:06 | <jamesr> | i don't know where they plan to find a normative reference for that |
01:07 | <heycam> | mm |
01:07 | <othermaciej> | what's a vblank? |
01:08 | <heycam> | the time when the electron gun is moving its focus from the bottom right of the screen to the top left? maybe not a relevant concept any more. :) |
01:09 | <heycam> | but the MS guys want callbacks to be run with their animation frame time set to the next 60Hz (or whatever) screen refresh |
01:09 | <jamesr> | LCDs still have to copy the pixels from somewhere to screen |
01:09 | <jamesr> | and if you manipulate the place it copies from while it's doing the copy you get tearing |
01:10 | <othermaciej> | on LCDs it is indeed desirable to update timed with the screen refresh |
01:11 | <heycam> | so as well as that, they would like the callback frequency to drop down to 30Hz if it can't keep up with 60Hz |
01:11 | <heycam> | rather than having a rate that hovers around, not aligned well with the actual screen refresh rate |
01:11 | <jamesr> | that's what many game engines do |
01:13 | <heycam> | I think it's a reasonable use case |
01:17 | <stevela> | problem occurs when you can definitely keep up with 30hz. When do you decide to go back to 60hz? Game engines will clamp at one or the other as moving back and forth is a worse artifact than just settling at 30hz. |
01:17 | <heycam> | yeah |
01:17 | <heycam> | you would want some sort of hysteresis so that you don't flip back and forth often |
01:18 | <stevela> | Probably want to have the app request a refresh based and the ability to find out what the current vsync interval is. |
01:19 | <stevela> | Which of course ratholes due to multiple monitors and moving between them (or spanning them). |
01:36 | <TabAtkins> | Hehe: "What's wrong with this declaration (assuming all classes and namespaces are correct)? |
01:36 | <TabAtkins> | scoped_ptr<::ppapi::shared_impl::FunctionGroupBase> function_proxies_[INTERFACE_ID_COUNT];" |
01:36 | <TabAtkins> | Answer: "<:: is the I Ching trigram for mountain. The angle bracket represents elevation and the two broken lines represent earth. I'd refuse to compile this too -- very inauspicious." |
01:37 | <Hixie> | mountain is more like |:: on its side, no? |
01:37 | <Hixie> | :-P |
01:37 | <Hixie> | (U+2636) |
01:38 | <TabAtkins> | Yeah, I noted that too, but hey, it was close enough to be funny. |
01:38 | <jamesr> | <:: is a really tall mountain |
01:39 | <jamesr> | imagine if html had trigraphs |
01:39 | <Hixie> | C's trigraphs are bad enough |
01:40 | <Hixie> | let's not go there |
01:40 | <heycam> | ??! -- the incredulity operator |
01:40 | <jamesr> | trigraphs are what breaks "scoped_ptr<::namespace.." |
01:40 | <TabAtkins> | HTML has a quadgraph - <!-- |
01:41 | <Hixie> | no, digraphs are what breaks the above |
01:41 | <jamesr> | that's a digraph? |
01:41 | <Hixie> | <: |
01:41 | <Hixie> | means [ in C |
01:41 | <jamesr> | >:{ |
01:41 | <heycam> | huh, I never knew about those two character diagraphs |
01:47 | <jcranmer> | you can disable digraphs in most C compilers, IIRC |
02:23 | <jamesr> | do people use the [, arguments] part of window.setTimeout()/window.setInterval() often? |
02:28 | <ryanseddon> | it;s not supported in all browsers |
02:28 | <ryanseddon> | so pretty much use at own risk |
02:28 | <jamesr> | which browsers do not support it? http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#timers specifies it |
02:29 | <ryanseddon> | IE |
02:29 | <ryanseddon> | not sure baout 9 or 10 |
02:29 | <jamesr> | ok, that's useful to know |
02:29 | <ben_alman> | wat |
02:29 | <ben_alman> | using optional arguments in setInterval / setTimout would be super cool but it's fail-sauce in IE |
02:30 | <ben_alman> | so you kinda avoid it when having to write x-browser code |
02:30 | <jamesr> | so people would use it if they could, most likely |
02:30 | <ben_alman> | and have to use a closure or partial application |
02:30 | <ben_alman> | jamesr, +1 |
02:30 | <ben_alman> | BUT |
02:30 | <ben_alman> | keep in mind that even if you use opt args |
02:30 | <ben_alman> | mozilla has there extra lateness arg |
02:30 | <ben_alman> | which totally messes everything up |
02:30 | <ben_alman> | http://benalman.com/news/2009/07/the-mysterious-firefox-settime/ |
02:31 | <jamesr> | yeah they interfere with adding additional arguments later |
02:31 | <ben_alman> | afaict, setTimeout and setInterval are hopelessly fucked |
02:31 | <ryanseddon> | long live rAF |
02:31 | <ben_alman> | but you could totally use Function#bind |
02:31 | <paul_irish> | :) |
02:31 | <jamesr> | they are pretty bad but we're doing something sort of similar with requestAnimationFrame and i'm trying to figure out which parts to take |
02:31 | <ben_alman> | setTimeout(fn.bind(null, arg1, arg2), 1000) |
02:32 | <jamesr> | one guy is saying that he'd like the optional args part of settimeout |
02:32 | <ben_alman> | i dunno |
02:32 | <ben_alman> | i like passing the extra args from a sugar pov |
02:32 | <jamesr> | ben_alman: isn't that just setTimeout(function() {blahblah(arg1, arg2);}, 1000); ? |
02:32 | <ben_alman> | jamesr, pretty much, but isn't that pretty much the same thing as args @ the end? |
02:33 | <jamesr> | well it works in IE presumably |
02:33 | <ben_alman> | polyfill Fn#bind and it works everywhere regardless of Moz or IE, right? |
02:33 | <ryanseddon> | yep |
02:33 | <ben_alman> | because the lateness arg and the IE borked-ness would become a non-issue |
02:34 | <ben_alman> | i've created jQuery plugins (etc) that have optional args @ the end |
02:34 | <ben_alman> | which is nice |
02:34 | <ben_alman> | for sure |
02:34 | <ben_alman> | but because of setTimeout / setInterval it's tough to say "we're making it like these" since they have x-browser issues |
02:37 | <ben_alman> | ok, time to roll |
06:04 | <ben_h> | ! |
06:37 | <Hixie> | a number of people replying to the survey on the licenses seem to lack understanding of how the w3c patent policy works, which is odd |
06:37 | <jamesr> | people on the internet do not understand things as well as they think they do? why does that seem odd to you? |
06:38 | <Hixie> | because the people who don't understand it seem to have strong views on the matter and should know better |
06:39 | <jamesr> | has the w3 ever sued anyone over copyright violation? |
06:39 | <Hixie> | not to me knolwedge |
06:39 | <Hixie> | but it has a chilling effect |
06:42 | <hsivonen> | When I got a copyright warning from the W3C, I sure felt chilled until the warning was retracted a few minutes later. |
06:42 | <Hixie> | right |
06:42 | <Hixie> | oh hey, hsivonen is here |
06:42 | <Hixie> | hsivonen: see the xslt bug |
06:43 | <Hixie> | hsivonen: let me know if it's ok |
06:43 | <jamesr> | yeah it's disappointing |
06:43 | <Hixie> | hsivonen: it's not normative, the task of defining it sufficiently to get the effect you want normatively seemed a bit daunting |
06:43 | <hsivonen> | Hixie: the diff looked OK. A bit worrying that it prescribed one thing I consider a bug in Firefox, but since we aren't planning to fix that bug, I'm OK with it. |
06:43 | <Hixie> | happy to change it, especially since it's just descriptive and not normative |
06:44 | <hsivonen> | Hixie: nah. let's leave it like that |
06:44 | <Hixie> | k |
06:44 | <hsivonen> | as descriptive it's now entirely accurate |
06:45 | <hsivonen> | Hixie: thanks |
06:45 | <hsivonen> | I hope the next implementor appreciates the note |
06:45 | <Hixie> | np |
06:45 | <Hixie> | yeah, hope so |
06:45 | <hsivonen> | I sure wish it had been in the spec when I implemented |
06:45 | <Hixie> | yeah, sorry about that. xslt isn't on my radar. |
06:52 | <tw2113> | about what you're looking for? |
06:52 | <tw2113> | wrong room, my bad |
09:44 | <smaug____> | when is anne coming back? |
09:44 | smaug____ | hopes someone will specify caretRangeFromPoint properly |
09:45 | <jgraham> | smaug____: s/someone/anne/? |
09:45 | <jgraham> | End of the month, I think |
09:45 | <smaug____> | jgraham: ok, thanks |
09:46 | <smaug____> | jgraham: well, it is "anne's" spec, where it is currently specified |
09:47 | <smaug____> | er |
09:47 | <smaug____> | aha |
09:47 | <smaug____> | it has been replaced in the latest editor's draft |
09:47 | smaug____ | accidentally looked at WD |
09:48 | <jgraham> | smaug____: You lose 10 W3C points |
09:48 | smaug____ | blames bug reported |
09:48 | <smaug____> | reporter |
09:49 | <jgraham> | Oh, anne is actually back a bit later than I thought |
09:49 | <jgraham> | But anyway |
13:29 | <sgentle> | hiya |
13:29 | <Philip`> | Hello |
13:33 | <sgentle> | would this be a good place to ask obscure questions about the different browser implementations of canvas global compositing? :D |
13:33 | <Philip`> | Yes :-) |
13:33 | <sgentle> | I was hoping you'd say that :D |
13:34 | <sgentle> | alright, so my use case is I have a canvas that I'd like to apply an 'eraser tool' style effect to |
13:34 | <sgentle> | there's stuff under the canvas, so I can't just draw white over it, I need to draw transparent |
13:34 | <sgentle> | aka the 'copy' composite operation |
13:35 | <sgentle> | in webkit browsers that works fine, because they restrict the scope of the operation to the area being drawn |
13:36 | <Philip`> | Yeah, WebKit doesn't match the spec |
13:37 | <sgentle> | *nod* and the spec seems to say the right thing to do is for the scope to be the clipping area |
13:37 | <Philip`> | Yep |
13:37 | <sgentle> | which is cool, except... is there a way to do what I want to do using the spec-compliant way? |
13:38 | <Philip`> | How are you drawing your tool? |
13:38 | <Philip`> | If it's an outline that you fill() then you could clip() to it first and then clear, I think |
13:39 | <sgentle> | yeah, I'm trying that at the moment |
13:39 | <sgentle> | but the spec says when you clip() it intersects with the old clipping area |
13:39 | <Philip`> | Why is that a problem? |
13:40 | <Philip`> | (You can save()/restore() to fix the clipping region afterwards) |
13:40 | <sgentle> | oh right |
13:41 | <sgentle> | ...you keep anticpating what I'm typing, is that a special whatwg power? :) |
13:41 | <Philip`> | Telepathy is an experimental feature in HTML6 |
13:43 | <Philip`> | I don't think there's any way to clear non-rectangular shapes other than via clipping, or manually with get/putImageData |
13:44 | <Philip`> | but hopefully clipping is powerful enough for most needs |
13:48 | <sgentle> | aww, look at that, works perfectly now |
13:49 | <sgentle> | thanks so much |
13:51 | <sgentle> | dunno why, I just skipped over "save" and "restore" thinking they were about image data... even though I already new about get/putImageData |
13:59 | <Philip`> | sgentle: They're about pretty much everything *except* image data |
18:42 | <hij1nx> | does anyone know of an html5 parser in c++? |
18:42 | <jcranmer> | gecko's HTML parser? |
18:42 | <AryehGregor> | hij1nx, Mozilla uses one. |
18:42 | <AryehGregor> | Grr, Chrome just lost all my open tabs on upgrade and restart. >:( |
18:43 | <jcranmer> | (well, technicaly it's written in Java, converted to C++ automatically, and then hand-tweaked for better performance) |
18:43 | <jcranmer> | but I digress |
18:43 | <AryehGregor> | And I see no way to get them back. Oh well. |
18:44 | <hij1nx> | AryehGregor: curious about dependencies |
18:44 | <AryehGregor> | hij1nx, no idea, sorry. |
18:44 | <hij1nx> | AryehGregor: =) |
18:45 | <hij1nx> | jcranmer: from what i understand, there are deps on jsc |
18:46 | <hij1nx> | jcranmer: sorry, i read gecko and thought webcore ;) |
18:49 | <Ms2ger> | hij1nx, hsivonen has at least thought about releasing a C++ HTML parser, IIRC |
18:49 | <hij1nx> | Ms2ger: i just found this in a google search... http://www.netsurf-browser.org/projects/hubbub/ |
18:50 | <hsivonen> | indeed, it's planned and ok'ed by Mozilla. I just need to take a break from Gecko work to do it. |
18:51 | <hij1nx> | does anyone have any opinion on this? (http://www.netsurf-browser.org/projects/hubbub/) |
18:52 | <hsivonen> | jcranmer: it's not really "hand-tweaked for better performance" after the translation, FWIW |
18:52 | <jcranmer> | hsivonen: I thought there were a few patches applied only to the C++ end |
18:52 | <jcranmer> | I could be recalling wrong |
18:53 | <jcranmer> | gecko is not my main cup of tea |
18:53 | <hsivonen> | jcranmer: there are some minor differences between Java and C++ but they are baked into the translator, so there's no patching of the translator output |
18:53 | <jcranmer> | ah |
18:54 | <jcranmer> | same basic idea |
18:54 | <hsivonen> | the main differences are: |
18:54 | <hsivonen> | 1) the named character data layout is generated separately so that tables aren't translated from the Java tables |
18:55 | <hsivonen> | 2) in the near future, the C++ version will have two copies of the tokenizer loop: one with error reporting and one without |
18:55 | <hsivonen> | (the goto stuff turned out to be slower than the switchiness, so I threw it away) |
18:56 | <jcranmer> | I'm not surprised |
18:57 | <jcranmer> | switch statements are probably more aggressively optimized than gotos |
18:57 | <hsivonen> | I suppose so |
18:57 | <jcranmer> | on the basis that people actually use switch statements |
18:57 | <hsivonen> | :-) |
19:15 | <TabAtkins> | othermaciej: Doesn't the fact that Ian's diff is different from Rich's qualify as an objection from Ian? |
19:15 | <othermaciej> | TabAtkins: I prefer not to make assumptions |
19:16 | <Orbixx> | Just had an interesting idea. |
19:16 | <othermaciej> | of anyone (Ian, you, or anyone else) thinks Rich's diff is inconsistent with the decision or contains changes not actually required by the decision, they can say so |
19:16 | <Orbixx> | It's debatably redundant, due to TLS, but here it goes. |
19:17 | <AryehGregor> | TabAtkins, logically it shouldn't imply that. Maybe he thinks that there are multiple legitimate ways to read the decision. |
19:17 | <Orbixx> | An option for <input> for password fields, where a hash type can be specified in the tag so that the browser hashes the password before sending it to the webserver. |
19:18 | <TabAtkins> | Orbixx: If the attacker can snoop, they can probably MITM you as well and just alter the page in-flight to the user to not have the hash, and then alter the response back to the server to have the hashed data. |
19:18 | <AryehGregor> | Orbixx, can be done pretty easily in JavaScript. Is it really widely enough done that there's a need for a declarative feature? |
19:19 | <AryehGregor> | TabAtkins, it works against passive MITMs, which is a valid use-case. |
19:19 | <AryehGregor> | Passive MITM is often less risky or easier than active MITM. |
19:19 | <hij1nx> | is anyone familiar with libDOM? |
19:19 | <Orbixx> | TabAtkins: Assume the network is secure against active MITM. |
19:19 | <Orbixx> | Which established networks are. |
19:20 | <Orbixx> | You know, and other unlikely stuff. |
19:20 | <AryehGregor> | Orbixx, usually if you can do passive MITM, you can do active too. |
19:20 | <AryehGregor> | If you can read the packets, you're presumably intercepting them somehow and can change them. |
19:20 | <AryehGregor> | Maybe not in some Wi-Fi scenarios, not sure about that. |
19:21 | <Orbixx> | Mmm, that's true. |
19:21 | <TabAtkins> | In many open wifi scenarious, you can alternately just broadcast yourself as a hotspot and act as a MITM proxy. |
19:21 | <AryehGregor> | Right, but you're always much more likely to be detected if you tamper with anything, so passive-only MITM is still a valid use-case. |
19:21 | <AryehGregor> | I just don't think it's important enough to justify a declarative feature for something that's trivial to do from script. |
19:21 | <Orbixx> | Hmm. |
19:21 | <AryehGregor> | vBulletin does this from script, for example. |
19:22 | <Orbixx> | Okay, assume this isn't intended to combat MITM. |
19:22 | <Orbixx> | What about... |
19:22 | <AryehGregor> | Special markup is only a good idea if it would be very widely useful. |
19:22 | <Orbixx> | Assume HTTPS, but it's to protect against |
19:22 | <Orbixx> | Wait, nevermind. |
19:22 | <Orbixx> | That's also stupid. |
19:22 | <Orbixx> | :D |
19:22 | <Orbixx> | Oh well. |
19:22 | <AryehGregor> | Sounds like you're starting with a feature and then trying to think of uses. That's not a good way to go about things. |
19:22 | <Orbixx> | Just a thought. |
19:22 | <AryehGregor> | Start with "I want to do X but the existing ways all have problems". |
19:22 | <AryehGregor> | A concrete use-case. |
19:22 | <Orbixx> | Yeah, fair comment. |
19:23 | <AryehGregor> | People are not usually interesting in writing specifications and code for features that aren't demonstrably useful in real life. |
19:23 | <Orbixx> | It's very rare I actually come up with an idea, so I'm not used to the critical thinking that comes with it :P |
19:23 | <AryehGregor> | No problem. |
19:23 | <AryehGregor> | I've thought of the same feature, I think. |
19:24 | <Orbixx> | Kind of why I came here, I expected exactly what I got. |
19:24 | <Orbixx> | Criticism that would tell me why it's a stupid idea :P |
19:24 | <AryehGregor> | Happy to oblige. :) |
19:26 | <Orbixx> | Got a little bit excited about contributing to HTML specification for a brief moment. |
19:26 | <Orbixx> | I'll return with yet another brilliant yet flawed concept soon, no doubt. |
19:29 | <AryehGregor> | Looking forward to it! |
20:05 | <AryehGregor> | If you had the markup <ol><li>foo<br>bar<li>baz</ol>, and selected "foo" and ran an "indent" command, what would you expect to happen? |
20:06 | <AryehGregor> | I'm observing six different behaviors in six different programs. |
20:06 | <TabAtkins> | I expect another list to be created. |
20:06 | <TabAtkins> | Dunno whether I'd expect ol or ul. |
20:06 | <Ms2ger> | Wrap it in a blockquote? :) |
20:07 | <AryehGregor> | TabAtkins, like <ol><li><ol><li>foo</ol>bar<li>baz</ol> or something? |
20:07 | <Hixie> | set a class on it and have a style rule added that adds some padding? :-) |
20:07 | <AryehGregor> | Ms2ger, correct for Firefox with styleWithCSS true! |
20:07 | <TabAtkins> | AryehGregor: I guess. Is there a more targetted "make a list" command than "indent"? |
20:07 | <AryehGregor> | TabAtkins, yes, there are also insertOrderedList and insertHorizontalList. |
20:07 | <AryehGregor> | Those tend to toggle the list, if there's one already. |
20:07 | <TabAtkins> | Oh, hmm then. |
20:08 | <AryehGregor> | (the six different behaviors in six different programs are actually because Gecko and OpenOffice.org both exhibit two different behaviors depending on which commands you use) |
20:08 | <Ms2ger> | AryehGregor, hey, that was best practice in '96 ;) |
20:08 | <AryehGregor> | Ms2ger, well, it's also what most browsers do for indent outside of lists. |
20:08 | <AryehGregor> | Since you haven't selected the whole <li>, Gecko seems to just ignore the fact that you're in a list. |
20:09 | <TabAtkins> | If indention is usually done by blockquote, I guess just keep with the blockquoting. |
20:09 | <AryehGregor> | But normally, indenting inside a list nests a list, like <ol><li>foo<li>bar<li>baz</ol> -> <ol><li>foo<ol><li>bar</ol><li>baz</ol> (if "bar" is selected). |
20:10 | <AryehGregor> | Anyway, I'm not really trying to collect data here, I was just amused by the wild discrepancies. |
20:10 | <TabAtkins> | Mapping GUI idioms to semantic code is hard. |
20:10 | <AryehGregor> | I don't care about the semantics, I'm only looking at the visible output. |
20:11 | <AryehGregor> | This is a WYSIWYG API, after all. |
20:11 | <AryehGregor> | There are six different behaviors just in the visible output. |
20:11 | <AryehGregor> | (I mean, I care about semantics somewhat, but the API really is entirely presentational by design, so producing semantic markup is not a possible design goal) |
20:12 | <AryehGregor> | (Of course I care about semantics in general, just not much in the case of execCommand()) |
20:12 | <Hixie> | AryehGregor: 6 for 6 is pretty bad. i did once have 4 different behaviours for 3 browsers, though (iirc that was a quirks mode thing) |
20:12 | <erlehmann> | urgs |
20:12 | <AryehGregor> | Hixie, if I didn't test IE or Opera in this case, I'd have six behaviors for four programs. :) |
20:13 | <Ms2ger> | Hixie, I thought it was a version thing |
20:13 | <TabAtkins> | At least you know that you can spec anything you want. That's some nice freedom there. |
20:13 | <Hixie> | oh, yeah, i've definitely had it for multiple versions of the same browser, too |
20:13 | <Hixie> | TabAtkins: indeed |
20:13 | <AryehGregor> | (IE and Opera agree with Firefox's non-CSS mode, which is roughly <ol><ol><li>foo<br>bar</ol><li>baz</ol>) |
20:13 | <TabAtkins> | Hell, you can spec an entirely new behavior and only be inconsistent with 16% more implementations than otherwise. |
20:13 | <AryehGregor> | Yeah, I'm trying to work out a mental model for lists that makes sense for users. |
20:14 | <AryehGregor> | And apply it consistently. |
20:14 | <Ms2ger> | glwt |
20:14 | <TabAtkins> | Wait, what? <ol> as a direct child of <ol>? |
20:14 | <AryehGregor> | Yes. |
20:14 | <TabAtkins> | Awesome. |
20:14 | <AryehGregor> | Every browser will do that in some case here, I think. |
20:15 | <Ms2ger> | TabAtkins, obviously, you don't want the bullet ;) |
20:15 | <AryehGregor> | It's the only logical way to get a visual effect like "\t\ta. foo\n\t1. bar". |
20:15 | <AryehGregor> | So it's the natural thing to do if the user does indent on something like <ol><li>foo</ol>. |
20:15 | <AryehGregor> | Just do <ol><ol><li>foo</ol></ol>. |
20:15 | <AryehGregor> | Of course, such a list makes no semantic sense, so is deservedly invalid. |
20:18 | <AryehGregor> | This testing is time-consuming. |
21:00 | <TabAtkins> | Wait, what? "you are challenging the purpose of ARIA itself, and related, WCAG |
21:00 | <TabAtkins> | standards. These are required by U.S. law, and their absence is an active |
21:00 | <TabAtkins> | attempt at stifling competition. |
21:01 | <AryehGregor> | Have I remarked before that Change Proposal-mediated arbitration is probably the only way to make progress in the HTMLWG on a11y issues? |
21:01 | <TabAtkins> | Not in my company. |
21:02 | <AryehGregor> | Ooh, ooh, I got something that has different behavior in every one of the programs. |
21:02 | <AryehGregor> | One behavior per program. |
21:03 | <AryehGregor> | In <ol><li>foo<li>bar<ol><li>baz</ol><li>quz</ol>, select "bar" and click the unordered list button (or do insertUnorderedList for browsers). |
21:06 | <Ms2ger> | "progress" |
21:07 | AryehGregor | thinks Opera is correct on that one, given the constraints browsers face |
21:07 | <AryehGregor> | Word and OO seem to not mind having one list with some items bulleted and some numbered. |
21:42 | <bckenny> | hihihihi |
21:42 | <bckenny> | whoops, sorry about that |
22:05 | <TabAtkins> | Hixie, I really wish you'd not just do whatever the trolls ask to the W3C spec. |
22:10 | <karlcow> | TabAtkins, everyone can be the troll of someone else. Welcome to the new Class struggle |
22:10 | <TabAtkins> | Don't try and pull that relativism line on me. ^_^ |
22:11 | <karlcow> | TabAtkins, I'm not trying. I'm asserting (for once) |
22:11 | <TabAtkins> | Okay, then don't assert that relativism line. |
22:12 | <karlcow> | fascism ;) |
22:12 | <TabAtkins> | I... don't understand the reference. Also, did you just Godwin yourself? |
22:13 | <karlcow> | you mention godwin, not me and you asked me to "do not" |
22:13 | <TabAtkins> | I'm even more confused now. |
22:14 | <karlcow> | I can see that. |
22:14 | <TabAtkins> | Sigh. |
22:15 | karlcow | was just saying that many of the schisms in HTMLWG are due to conflicts driven by school of thoughts, ideas of society, and generations. |
22:15 | <karlcow> | not trolls |
22:15 | <Ms2ger`> | karlcow, I wish I could believe you |
22:17 | <TabAtkins> | I don't care about the differences in thought - those are natural and fine. I care about the trollish behavior, starting with the Decision Process that Shelley got instituted, which has now successfully made it too expensive to care what happens to the spec for most of the useful people. |
22:17 | <karlcow> | I have, for example, stopped participating mostly in discussions about html5, because people categorize others as trolls, or pickup your own $preferredexclusion mode. |
22:18 | AryehGregor | more or less agrees with karlcow |
22:18 | <AryehGregor> | I don't think anyone is trolling in the HTMLWG, as a matter of course. |
22:18 | <AryehGregor> | Anyone who thinks otherwise is erroneously assuming bad faith. |
22:18 | <AryehGregor> | All the active participants are genuinely trying to improve the spec. |
22:18 | <AryehGregor> | Trolling would be if they just wanted to annoy people, and didn't care about the spec. |
22:19 | <Philip`> | What if they care about the spec *and* want to annoy people? |
22:19 | <TabAtkins> | I consider active use of the Decision Process to be trolling, basically. ^_^ |
22:19 | <karlcow> | Philip`: I still have to meet this person then. |
22:19 | <AryehGregor> | TabAtkins, that amounts to using the term "troll" to refer to anyone you disagree with. |
22:19 | <AryehGregor> | Which is common usage, but not very productive. |
22:20 | <TabAtkins> | AryehGregor: Certainly not. That implies that I disagree with every issue ever raised via the Decision Process. |
22:20 | <AryehGregor> | Or that you disagree with the idea of using the Decision Process regardless of the issue's merits. |
22:21 | <TabAtkins> | Bingo. |
22:23 | <TabAtkins> | (I happen to disagree with *most* of the issues that have been through the Decision Process, but certainly not all. I still disapprove of the use of the DP on the issues I agree with.) |
22:32 | <zcorpan> | Hixie: do all elements now have ids of the form the-foo-element? |
22:32 | <Ms2ger`> | Should be that way |
22:32 | <zcorpan> | yay |
22:33 | zcorpan | fixes html-elements |
22:37 | <zcorpan> | ah, need to wait for ben to regen developers.whatwg.org |
22:42 | <zcorpan> | Hixie: fwiw and as someone who maintains links to elements in the spec, the id change is really good. not having to scrape the spec to know what the id is for an element is a huge win |
22:42 | <zcorpan> | although i also maintain links to attributes |
22:43 | <Hixie> | TabAtkins: object to it and the chairs will require me to revert it |
22:43 | <TabAtkins> | I did now. |
22:43 | <Hixie> | zcorpan: cool |
22:44 | <Hixie> | zcorpan: file a bug saying which attributes need updating like jirka did for the elements and i'll fix them too :-) |
22:48 | <zcorpan> | oops. i accidentally all the attribute links in html-elements |
22:48 | <Ms2ger`> | ALL of them? |
22:49 | <benschwarz> | zcorpan: Regenerated |
22:49 | <benschwarz> | Deployed. |
22:49 | <zcorpan> | Ms2ger`: yep |
22:49 | <zcorpan> | benschwarz: cool |
22:52 | <zcorpan> | hmm, the html element is still the-html-element-0 |
22:52 | <zcorpan> | jirka's list was not complete |
22:53 | <zcorpan> | Hixie: can't you set an explicit id for all elements so they're guaranteed to be stable? |
22:54 | <Hixie> | i can, but it's a pain |
22:54 | <Hixie> | <html> has an explicit id now though |
22:54 | <Hixie> | it was in his list |
22:54 | <zcorpan> | oh |
22:56 | <zcorpan> | ah yep, maybe the redeployment of developers.whatwg.org hadn't reached me yet. or i had it cached. or something |
22:57 | <zcorpan> | but body is still broken |
22:58 | <Hixie> | you have to reload developers.whatwg.org |
22:58 | <Hixie> | because it has appcache |
22:59 | <Hixie> | fixing body |
23:00 | <benschwarz> | zcorpan, Hixie — https://github.com/benschwarz/developers.whatwg.org/commit/894f834a99628f82f7435639ba223a5e0b224858 |
23:00 | <benschwarz> | (also deployed) |
23:01 | <zcorpan> | Hixie: video is also broken |
23:01 | <Hixie> | i fixed video, didn't i? |
23:02 | Hixie | loosk |
23:02 | <zcorpan> | uh |
23:02 | <zcorpan> | yep video is in the diff |
23:02 | <Hixie> | yup |
23:02 | <zcorpan> | developers.whatwg.org refusing to update for me again |
23:02 | <Hixie> | didn't it take? |
23:02 | <Hixie> | zcorpan: you have to wait for your browser to update the appcache |
23:02 | <Hixie> | zcorpan: then reload |
23:03 | <zcorpan> | or wait, i wasn't even looking at developers.whatwg.org |
23:06 | <zcorpan> | hmm. when reloading http://developers.whatwg.org/video.html a few times i get four "whatwg" logos and four "in this section" buttons |
23:07 | <Hixie> | o_O |
23:09 | <zcorpan> | http://validator.nu/?doc=http%3A%2F%2Fdevelopers.whatwg.org%2Fvideo.html |
23:11 | <aho> | so... what's the replacement for hgroup? |
23:11 | <Hixie> | aho: <hgroup> is still in html, just not in the w3c copy of html5. |
23:11 | <Hixie> | the w3c copy is missing many newer things. |
23:11 | <aho> | *scratches head* |
23:11 | <Hixie> | see http://www.whatwg.org/specs/web-apps/current-work/multipage/introduction.html#is-this-html5? |
23:13 | <zcorpan> | Hixie: ok seems like all links are working now |
23:13 | <aho> | so, it still exists and will continue to do so for the foreseeable future? |
23:13 | <Hixie> | zcorpan: cool |
23:13 | <Hixie> | aho: yeah, it's not going anywhere. even the spec uses it. |
23:13 | <aho> | heh |
23:13 | <aho> | ok |
23:13 | <aho> | :) |
23:14 | <Hixie> | (at least on the whatwg site... the w3c html spec uses html4, so it can't use hgroup or any of the new elements.) |
23:15 | <zcorpan> | how come http://www.w3.org/Bugs/Public/show_bug.cgi?id=11828 is NEEDSINFO? |
23:18 | <Hixie> | resolution was changed by nicolasgallagher⊙mc |
23:18 | <Hixie> | @gmail, even |
23:18 | <Hixie> | dunno why |
23:23 | <zcorpan> | also no comment about the spec checkin |
23:24 | <zcorpan> | oh sorry there was a comment |
23:24 | <Hixie> | my script is a bit bitchy when it comes to adding that comment |
23:25 | <Hixie> | something to do with encoding errors or something, i think |
23:25 | <Hixie> | it used to not commit at all if there was invalid utf-8, i think i fixed that but it's still not completely ok |
23:25 | <Hixie> | i haven't cared enough to investigate exactly what the problem is |
23:40 | <Hixie> | anyone know if the idea of doing textarea.selectionDirection="backward" ever got implemented anywhere? |
23:41 | <AryehGregor> | Not that I've heard of. |
23:41 | <Hixie> | should i just spec it or wait for impl experience? |
23:42 | <aho> | is specified what should happen if you click on the some input[type=text]'s label? |
23:43 | <Hixie> | more or less |
23:43 | <aho> | chrome and firefox select the text (if any), opera doesn't |
23:43 | <Hixie> | it should do the same as is normal on that platform |
23:43 | <aho> | hum |
23:44 | <aho> | firefox doesn't select the search text in the find bar, if i click on the "find:" label |
23:44 | <aho> | clicking on some textfield's label doesn't seem to do anything in windows programs |
23:45 | <Hixie> | (note when drawing conclusions here that it might differ for different types of controls) |
23:45 | <Hixie> | (e.g. windows checkbox labels are interactive) |
23:45 | <aho> | oh yea... what does work in all browsers is clicking a button by clicking it's associated label (which is kinda weird) |
23:46 | <aho> | *its |
23:47 | <aho> | i think opera does at least focus the text field |
23:48 | <aho> | http://kaioa.com/k/labelfocus.html |
23:49 | <aho> | well, that was my use case basically... i didn't want to add js just to select that text |
23:54 | <Hixie> | othermaciej: i'm adding textarea.selectionDirection; is this something i should exclude from the w3c copy? i'm confused as to what counts as a new feature and what doesn't. |
23:55 | <othermaciej> | Hixie: I don't know offhand what that is, but excluding it for now unless someone requests otherwise is a safe course |
23:56 | <Hixie> | it's an attribute added to <input> and <textarea> to control what direction the selection is in |
23:56 | <Hixie> | goes with selectionStart and selectionEnd |
23:58 | <Hixie> | othermaciej: i'm not really asking whether it's "safe", so much as what i should do |
23:59 | <Hixie> | othermaciej: if it helps, i request it :-) |
23:59 | <othermaciej> | if you leave it out, then probably no one will complain |
23:59 | <othermaciej> | if you think no one will complain about adding it (seems like they probably wouldn't), then it seems fine to add it |
23:59 | <Hixie> | k |
23:59 | <othermaciej> | if in doubt, you can always ask on public-html |