00:07 | <Hixie> | uh oh |
00:07 | <Hixie> | another parser change |
00:08 | <Hixie> | pretty minor, but still |
00:08 | <Hixie> | (nulls in mathml <mo>, <mn>, etc) |
00:42 | <beowulf> | hi, what part of a browser handles window.innerWidth values? is it anything to do with the js engine (by that I mean, V8 or Nitro, or what have you)? |
00:53 | <Hixie> | no |
00:54 | <beowulf> | ta |
01:03 | <Hixie> | http://lists.w3.org/Archives/Public/www-validator/2011Jan/0057.html |
01:03 | <Hixie> | "ad hoc checker" o_O |
01:59 | <TabAtkins_> | Suppose that I wanted to define a feature such that UAs could scan the content of a page, determine what codepoints are used, and then lazily request only the necessary codepoints from a font via some variant of range requests. |
01:59 | <TabAtkins_> | What group would I talk to about this? |
01:59 | <erlehmann> | this sounds crazy. |
02:00 | <TabAtkins_> | Irrelevant to my question. ^_^ |
02:00 | <erlehmann> | let me check if it is feasible. |
02:01 | <gsnedders> | TabAtkins_: CSS3 Fonts defines fetching behaviour? Or not? |
02:01 | <TabAtkins_> | gsnedders: No. |
02:01 | <gsnedders> | TabAtkins_: Also, what happens if I mutate the DOM and add more codepoints? |
02:02 | <TabAtkins_> | gsnedders: Not my problem directly. I'm asking for a friend. Presumably, additional requests. |
02:02 | <gsnedders> | TabAtkins_: I guess www-style is as good a place as any… |
02:03 | <TabAtkins_> | We were thinking of starting with www-font, but this is barely an issue about fonts themselves. It's a protocol issue, mainly, as the important part is the codepoint-range request. |
02:09 | <erlehmann> | TabAtkins_, is it really a protocol issue? i remember range requests working quite well with ogg media. |
02:11 | <TabAtkins_> | erlehmann: Kinda? Not sure how you'd handle it without protocol changes, unless you have a format where you can predict the codepoint locations. |
02:11 | <erlehmann> | TabAtkins_, that is the question, if you can do that. i tried to look it up but i am dizzy. it is 3:15AM local time, i go to sleep. |
02:12 | <erlehmann> | s/if/whether/g |
02:55 | <roc> | TabAtkins: the group depends on how you want to do this |
02:56 | <roc> | you should ask your "friend" if they can get by with hand-subsetted fonts and unicode-range |
02:57 | <TabAtkins> | roc: The idea is to pursue this as a line of experimentation for Chrome, so apparently the answer is no. ^_^ |
02:58 | <roc> | It may be over-generous to assume that existing APIs have been fully explored |
02:59 | <roc> | we seem to frequently get feature requests where that is not the case |
03:00 | <TabAtkins> | I know that in my chatting with the dude, he explicitly talks about why subsetting is unsatisfactory. |
03:00 | <roc> | What is it? |
03:01 | <roc> | anyway, the point stands: if you have a proposal, you can figure out what group(s) it should go to, but if you only have a problem statement, it's unclear |
03:01 | <TabAtkins> | Because you have to subset separately for every page if you want maximum efficiency, and monitor page changes so you know if you need to rengerate yoru subsets. |
03:01 | <roc> | that's not what I'm saying |
03:01 | <TabAtkins> | I have a problem statement. |
03:01 | <roc> | because what I said was totally unclear |
03:01 | <TabAtkins> | Heh. |
03:02 | <roc> | How about this: split your font into a number of different fonts, each covering some range of Unicode characters |
03:02 | <roc> | then apply all those fonts to the page with CSS 'unicode-range' |
03:02 | <roc> | A browser implementation should automatically load the subset-font(s) that are needed |
03:03 | <TabAtkins> | Interesting. Didn't realize we should do that. |
03:03 | <roc> | even if an implementation currently doesn't, it could |
03:04 | <roc> | I can believe that approach doesn't work well; maybe there is no adequate choice for the granularity of the subset fonts |
03:04 | <roc> | but I hope it's been tried |
03:04 | <TabAtkins> | I don't know if it has. |
03:04 | <TabAtkins> | Bringing it up now. |
03:05 | <TabAtkins> | (In email, so asynchronous.) |
03:05 | <TabAtkins> | In unrelated news, roc, I had a question for you about http://weblogs.mozillazine.org/roc/archives/2008/07/svg_paint_serve.html |
03:05 | <TabAtkins> | I don't understand the distinction you're drawing between the coordinate spaces there. |
03:07 | <roc> | if that doesn't work well, an alternative to consider would be to see if it's possible to lay out OpenType fonts cleverly and use byte-range requests to load desired subsets; again, no new API would be needed |
03:08 | <TabAtkins> | Yeah, that's something we wanted to broach somewhere. |
03:09 | <roc> | possibly you don't have to broach it anywhere |
03:09 | <TabAtkins> | Broach = raise in hearing of someone who knows what they're doing, so we know if it's possible. |
03:09 | <roc> | just start loading the font file, once you have sufficient headers, spin up a parallel load with byte-range requests for the data you want to get quicker |
03:11 | <roc> | TabAtkins: I think those coordinate spaces are effectively the same; I just defined them differently because they get used differently in SVG |
03:12 | <roc> | for example, if your element is 20px wide, then with userSpaceOnUse a width value of "1" is 1px, but with objectBoundingBox a width value of "1" would be 20px |
03:13 | <TabAtkins> | Hmm. |
03:13 | <TabAtkins> | Does that latter one actually do something useful? |
03:14 | <roc> | that is how objectBoundingBox coordinates work in SVG |
03:15 | <roc> | 0,0 is the top-left of the "object bounding box", 1,1 is the bottom right |
03:15 | <TabAtkins> | Oh, ok. I don't ever use that coordinate space, obviously. |
03:15 | <roc> | it's quite stupid, but that's how it works |
03:16 | <TabAtkins> | I was wanting to specify this behavior in Image Values, and I was scratching my head at it at first. |
03:17 | <TabAtkins> | Your definition of userSpaceOnUse is actually very useful for the eventual unification of <image> and paint servers that I'd like to do. |
03:57 | <Hixie> | TabAtkins: for the font thing, roc's suggestion is probably the best place to start, but if you need something with even fewer RTTs, then you could define your own units for a range request that was basically the same syntax as the css unicode-range |
03:58 | <Hixie> | TabAtkins: roc's suggestions, i should say |
05:19 | <roc> | nessy: I wasn't trying to make people with PhDs feel ashamed, far from it. But you don't write ", PhD" after your name, and people who do are usually putting on some intimidation, that's all |
05:20 | <nessy> | roc: I have no problem with that :-) |
05:20 | <nessy> | I probably just got half of a conversation last night |
05:21 | <nessy> | but I do get the feeling very often - not from you specifically, but more generally - that a PhD amongst engineers is being looked down on as a waste of time and lost time to do something more productive |
05:21 | <nessy> | and sometimes it's true, too :-) |
05:22 | <nessy> | but it's also life experience and it takes hard work to actually finish a thesis |
05:22 | <nessy> | anyway .. onto more productive things :-) |
05:52 | <LoneStar99> | is the right place to ask about html5 canvas? |
06:00 | <hober> | LoneStar99: sure |
08:31 | Dashiva | wonders what's going on with RDFa light inside members-only land |
08:59 | <jgraham> | Dashiva: I think the fact that it is going on in Members-only land should tell you all you need to know |
09:00 | <jgraham> | Apparently the concept of irony has been lost on these people |
09:48 | <zcorpan> | what's teh security problem with converting broken utf-8 to u+fffd in websockets? |
10:24 | <zcorpan> | foolip: <http://www.w3.org/mid/E1QWcRS-0002EY-8u⊙jwo> |
10:26 | <foolip> | zcorpan, what do you think about that? |
10:27 | <foolip> | HTMLTimeElement also has some extra IDL properties, are those not good for anything? |
10:27 | <zcorpan> | dunno |
10:27 | <foolip> | having an element for this purpose seems a bit odd though |
10:27 | <zcorpan> | yeah should be a global attribute |
10:28 | <foolip> | RDFa's content="" or a new itemvalue="" seems more reasonable |
10:28 | <zcorpan> | and no reason to drop <time> imo |
10:28 | <foolip> | in which case <time> can be left alone |
10:28 | <foolip> | right |
10:28 | <foolip> | although I think <time> is actually fairly useless |
10:28 | <foolip> | since it forbids marking up many kinds of times |
10:29 | <foolip> | not sure when it's better than just <span>, actually... |
10:29 | <foolip> | Looks like I don't have a strong opinion either way :) |
10:30 | <zcorpan> | will you comment on the bug anyway? |
10:32 | <foolip> | OK |
10:34 | <jgraham> | ooh more longdesc drama |
10:34 | jgraham | gets popcorn |
10:44 | <matjas> | hmm, can anyone respond to http://bugzilla.validator.nu/show_bug.cgi?id=841#c1? |
10:45 | <matjas> | i thought i got it the other day but now i’m confused again |
10:48 | <zcorpan> | replied |
10:49 | <matjas> | thanks, zcorpan |
10:50 | <matjas> | zcorpan: so is my bug title incorrect? |
10:50 | <zcorpan> | i'm sure hsivonen understands what it means |
10:51 | <matjas> | I want to understand too :) |
10:51 | <matjas> | is `href=foo?bar=1&baz=42` allowed or not? |
10:51 | <zcorpan> | it is allowed, and it does not contain any ambiguous ampersands |
10:52 | <zcorpan> | read the definition of ambiguous ampersand carefully |
10:52 | <matjas> | http://www.whatwg.org/specs/web-apps/current-work/complete/syntax.html#syntax-ambiguous-ampersand |
10:52 | <matjas> | oh because it’s not followed by `;` |
10:53 | <zcorpan> | yes |
10:54 | <matjas> | so where in the spec does it say the unencoded & there is allowed? |
10:54 | <Ms2ger> | It doesn't need to, does it? |
10:54 | <zcorpan> | "Attribute values are a mixture of text and character references, except with the additional restriction that the text cannot contain an ambiguous ampersand." |
10:55 | <zcorpan> | "text" does not ban & |
10:55 | <zcorpan> | (but bans U+0000 for instance) |
10:56 | <matjas> | but <p>foo&bar</p> isn’t allowed |
10:56 | <matjas> | even though “Text is allowed inside elements, attribute values, and comments.” |
10:57 | <zcorpan> | that's allowed afaict |
10:57 | zcorpan | reads the parser section to see if it matches the author section |
10:57 | <matjas> | not according to validator.nu — is that a separate issue then? |
10:59 | <zcorpan> | parser section matches |
11:00 | <zcorpan> | it's the same issue |
11:00 | <matjas> | okay, so the problem is that the definition of ambiguous ampersand changed |
11:00 | <zcorpan> | yes |
11:01 | <zcorpan> | and the parser changed what is a parse error to match |
11:01 | <matjas> | before the change previously stuff like href="foo&bar" had an ambiguous ampersand? |
11:01 | <matjas> | or what |
11:01 | <zcorpan> | yes |
11:01 | <matjas> | ok |
11:01 | <matjas> | so the ; requirement is new |
11:01 | <matjas> | i think i finally get it |
11:01 | <zcorpan> | :) |
11:01 | <matjas> | thanks for your patience, zcorpan |
11:03 | <zcorpan> | the parser also changed behavior for ©= which v.nu also doesn't seem to have implemented |
11:03 | <zcorpan> | (in attributes) |
11:03 | <matjas> | what about it? |
11:04 | <matjas> | `href=©=` shouldn’t be allowed, right? |
11:08 | <matjas> | are all ambiguous ampersands invalid? |
11:13 | <zcorpan> | they are invalid but ©= is parsed differently in attribute value and text content |
11:13 | <zcorpan> | but it seems that was actually implemented, i didn't test properly |
11:27 | <Workshiva> | Looking at setting selection and whether it triggers focus |
11:28 | <Workshiva> | From what I see html5 doesn't specify a focus event being fired for select() nor for setSelectionRange. However, the MDC docs specify that select() also fires focus. |
11:28 | <Workshiva> | And it seems Chrome fires a focus event for both of them. |
11:37 | <Ms2ger> | File a bug, Hixie will figure it out by Christmas |
11:38 | <Workshiva> | I'm looking for someone to say they've already looked into that and tell me what the resolution is going to be ;) |
11:48 | jgraham | just got a YSOD is spotify |
11:48 | <jgraham> | *in |
12:54 | <zcorpan> | TabAtkins: the default style for <a>, <ins> and <del> interact badly with blocks as well |
13:15 | <Philip`> | TabAtkins: Requesting codepoints from a font is tricky because of glyph substitutions (ligatures etc) - you can't treat each codepoint individually when deciding what bytes to download, you have to know the entire set to determine which glyphs might get used |
13:16 | <Philip`> | (and you can't do it by downloading the whole GSUB table and letting the client figure out the glyphs to request instead of codepoints, because that table might be hundreds of KB and would defeat the point of subsetting) |
13:18 | <Philip`> | Also I believe you need to dynamically compute a new GSUB table for the subset (to avoid downloading the entire thing), you can't just use a range of its original bytes |
13:20 | <Philip`> | (The old WEFT tool didn't recompute GSUB, it just deleted some glyph data, which is much easier but results in much larger font files) |
13:20 | <boblet> | Philip`: isn’t Typekit linking to several partial @font-face files as a form of obfuscation or something? |
13:21 | <Philip`> | boblet: Don't know, but maybe |
13:21 | <erlehmann> | boblet, show it. |
13:21 | <boblet> | I thought I read something about that when it was released. No personal knowledge |
13:21 | <Philip`> | It's quite possible they don't care about things like ligatures or languages that rely heavily on substitutions |
13:24 | <boblet> | as for TabAtkins’ usecase, it would be rad to download a basic set then request other glyphs as needed for East Asian typography |
13:24 | <Philip`> | http://help.typekit.com/customer/portal/articles/8071-support-for-different-languages-on-typekit suggests the only languages they support are Latin alphabet ones |
13:24 | <boblet> | Services like Typekit could create a CMS plugin that checks for all used characters across a site then make a site-specific subset, updating when content changes. But once the site gets large this isn’t so useful (except when kanji is involved) |
13:25 | <boblet> | Philip`: they have at least two (freebie) Japanese fonts |
13:26 | <boblet> | “We split requested fonts into multiple files and recombine them using the CSS font stack” http://blog.typekit.com/2009/07/21/serving-and-protecting-fonts-on-the-web/ |
13:26 | <boblet> | erlehmann: ^ ;) |
13:27 | <Philip`> | I think Japanese is easy too - things like Arabic and Devanagari etc are hard since they rely on complex shaping |
13:27 | <erlehmann> | TabAtkins, isn't fontkits way the easiest? |
13:28 | <jgraham> | Isn't japanese even easier since it doesn't have ligatures at all? Does it even have combining characters? |
13:28 | <boblet> | Philip`: true. was thinking more of the initial filesize of Japanese fonts. The M+ fonts are like 350KB per weight |
13:28 | <boblet> | jgraham: no combining characters, but 8,000+ glyphs |
13:30 | <jgraham> | Oh look I am wrong http://www.quora.com/Are-there-any-ligatures-in-CJK |
13:33 | <boblet> | jgraham: pretty sure those are individual glyphs not ligatures. as in キ and ロ and ㌔ are three separate code points (rather than ㌔ being made from resized/repositioned キロ) |
13:34 | <boblet> | the Mac Japanese Input Menu flags ㌔ as “Contains JIS X0213 unique characters” |
13:36 | <boblet> | If you wanted to enter ㌔ you’d have to manually select it — it wouldn’t be automatically replaced as with a western ligature |
14:47 | <smaug____> | zewt: ping |
16:15 | <Ms2ger> | What's up with http://dev.w3.org/html5/2dcontext/ being out of date? |
16:24 | <David_Bradbury> | Ms2ger: Maybe there haven't been any changes proposed, though updating the date to reflect that might be nice. |
16:24 | <Ms2ger> | There have been |
16:25 | <David_Bradbury> | Hmm... Then I'd poke Hixie ^ |
16:26 | <Philip`> | Maybe any new commits would overwrite the application of issue 131's resolution, and cause unhappiness |
16:26 | <Philip`> | (http://dev.w3.org/cvsweb/html5/2dcontext/Overview.html) |
16:27 | <David_Bradbury> | So, when are we going to start seeing the new 4D Cavnas Context gaining support? :p |
18:59 | <volkmar> | AryehGregor: ping |
18:59 | <AryehGregor> | volkmar, pong. |
18:59 | <volkmar> | AryehGregor: i saw you were involved in a discussion about input in DOM 3 Events... do you know, by any chance why textinput is specidified and not input? |
19:00 | <AryehGregor> | volkmar, was I? I don't know anything about events, sorry. |
19:00 | <volkmar> | AryehGregor: i were :) |
19:00 | <AryehGregor> | Never read any specs for them or anything. |
19:00 | <volkmar> | oups, you were |
19:00 | <AryehGregor> | You were what? |
19:00 | <AryehGregor> | Oh. |
19:00 | volkmar | is tired |
19:01 | <AryehGregor> | Was that the one where I said something then immediately realized I misunderstood and retracted what I said? |
19:01 | <volkmar> | AryehGregor: it was a thread with someone asking for onvaluechanged |
19:02 | AryehGregor | doesn't remember |
19:02 | <volkmar> | anyway, i will read more of the search results... the reason might pop out |
19:03 | <Ms2ger> | shepazutoo, ^ |
19:07 | <volkmar> | ok, i filed a bug and I will see... |
19:07 | volkmar | wonders why 'change' i |
19:07 | <volkmar> | isn't specced too |
20:08 | <zewt> | smaug____: pong |
20:20 | <smaug____> | zewt: you said something about default handling not being part of dispatchEvent |
20:20 | <smaug____> | just FYI, it is in all the browsers |
20:21 | <smaug____> | zewt: http://www.w3.org/Bugs/Public/show_bug.cgi?id=12949#c5 |
20:22 | <smaug____> | it is the specs which don't match reality |
20:22 | <smaug____> | well, DOM 3 Events nor Web DOM Core don't need to specify default handling |
20:24 | <zewt> | dom 3 events says that default handlers don't happen for untrusted events, and that includes all events dispatched with dispatchEvent (except for i think one exception, which I'm having trouble recalling) |
20:24 | <smaug____> | that is a different |
20:24 | <zewt> | it's not; it means that dispatchEvent will never (modulo whatever that exception was) cause default handling to occur |
20:24 | <smaug____> | it could be a bug that default handlers fire when untrusted event is dispatched |
20:25 | <smaug____> | but it does not mean that default handling is not part of event dispatch |
20:26 | <zewt> | but it's not part of event dispatch :) |
20:26 | <zewt> | it may be implemented that way by browsers, but as that has no (that I'm aware of) visible side-effects it's not really relevant |
20:26 | <smaug____> | But yes, DOM 3 Events is probably too strict |
20:27 | <zewt> | the event model is if(dispatchEvent(e)) doDefaultBehavior(), not dispatchEvent(e, doDefaultBehavior)--the default behavior is logically part of whoever's calling for a dispatch, not internal to dispatch itself |
20:29 | <smaug____> | in practice the event model pre-handle-event, dispatch the event to DOM, post-handle-event |
20:29 | <smaug____> | event model is... |
20:30 | <zewt> | that's internal implementation details--can you explain what effect that has on the specced behavior? |
20:30 | <zewt> | in other words, what's the difference |
20:30 | <smaug____> | See the example http://www.w3.org/Bugs/Public/show_bug.cgi?id=12949#c5 |
20:31 | <smaug____> | dispatching event does do the default handling |
20:32 | <zewt> | yeah i think that's the odd exception, which should be treated as such--it should certainly be specced, but only to define the exception, not to change the event model to suit it |
20:33 | <smaug____> | but that is how browsers work |
20:33 | <smaug____> | the default handling is part of event dispatch |
20:33 | <zewt> | that just doesn't matter, it's the visible behavior that matters |
20:33 | <smaug____> | what we should define is that in which cases default handling can be triggered using untrusted events |
20:34 | <zewt> | and onclick is just a weird legacy exception |
20:35 | <smaug____> | It would be just easier to define the reality |
20:35 | <smaug____> | that default handling is part of event dispatch, and in x, y, and z cases untrusted events can trigger default handling |
20:35 | <zewt> | the reality is that default handling is not part of event dispatch, from the perspective of visible behavior |
20:35 | <smaug____> | that is not trie |
20:35 | <smaug____> | true |
20:36 | <zewt> | yes it is |
20:36 | <smaug____> | my example is an example where it is not |
20:36 | <zewt> | like i said (two or three times :) that's the odd exception, behavior that doesn't match how the event model works for everything else |
20:37 | <smaug____> | what "for everything else" |
20:37 | <smaug____> | where does the event model work differently |
20:37 | <smaug____> | I'd like to see an example |
20:38 | <zewt> | huh? you've given the *only* case I'm aware of where default behavior ends up being part of dispatch |
20:39 | <zewt> | and I'm certainly not arguing against speccing that behavior, but it should be treated as exceptional compatibility behavior, not as an argument that the entire event model should be based on that |
20:39 | <smaug____> | I'd like to see an example where the default handling is not part of the event dispatch. (it is possible that untrusted events don't trigger default handling) |
20:41 | <zewt> | every dispatchEvent() call in javascript; the default behavior is whatever you do if it returns true |
20:41 | <smaug____> | I'm not talking about script libraries |
20:41 | <smaug____> | but browser implementations |
20:41 | <zewt> | scripts are intrinsic to the event model. |
20:42 | <smaug____> | link handling works the same way as changing checked state. you dispatch event and the default handling for <a> triggers the navigation |
20:42 | <smaug____> | etc |
20:43 | <mpilgrim> | there's really no compilation shortcuts after you've changed 500 IDL files |
20:44 | <smaug____> | form submission has the default handling during event dispatch |
20:44 | <zewt> | not in my experience |
20:44 | <zewt> | var e = document.createEvent("HTMLEvents"); e.initEvent("submit", true, true); form.dispatchEvent(e); |
20:44 | <zewt> | if(!e.stopped) form.submit(); |
20:45 | <zewt> | ^ i've had to write code like that because it's not |
20:46 | <smaug____> | what is e.stopped? |
20:46 | <zewt> | (pardoning the ugly prototype.js-ism) |
20:46 | <zewt> | if(form.dispatchEvent(e)) form.submit(); |
20:52 | <smaug____> | dispatching submit event submits the form at least in Fx and Opera |
20:52 | <smaug____> | again, the difference in default handling can be that some browsers don't allow untrusted events to dispatch the event |
20:52 | <smaug____> | er |
20:53 | <smaug____> | again, the difference in default handling can be that some browsers don't allow untrusted events to do the default handling |
20:53 | <zewt> | it's the same thing (as far as visible behavior is concerned) |
20:54 | <zewt> | when it's a browser-dispatched event there's no difference whether default behavior is implemented inside dispatchEvent or not |
20:54 | <smaug____> | yeah |
20:54 | <smaug____> | it is the default handling of untrusted events |
20:54 | <smaug____> | which needs to be defined |
20:55 | <smaug____> | so click() can just dispatch click event and we need to define in which case untrusted events can trigger d.efault handling |
20:55 | <smaug____> | and the problem is solved :) |
20:56 | <zewt> | rather, these exceptional behaviors should be called something else, and defined as the rare exceptions they are |
20:57 | <zewt> | not by changing the whole event model to revolve around the one (maybe two) exceptions |
20:57 | <smaug____> | huh. I don't understand why we couldn't define the reality. |
20:57 | <smaug____> | that way click() would have strange special powers |
20:58 | <zewt> | huh? you can submit a click event with dispatchEvent |
20:58 | <smaug____> | per spec click() does more than just dispatch click event |
20:59 | <smaug____> | but that is not the reality |
20:59 | <zewt> | i think it's perfectly fine for click() to be able to do something you can't do otherwise (that's what DOM APIs do), but I don't think that matters here |
20:59 | <smaug____> | hmm, sounds like this discussion is not leading to anywhere :) |
20:59 | <zewt> | anyway, we're going in circles, and I'm not the one you need to convince anyway :) |
21:00 | <smaug____> | I will just reject all the insane changes to event handling in an implementation :) |
21:00 | <zewt> | i don't think it changes implementation behavior--so long as the weird exceptions are specced, which again (at least in DOM Core) they aren't yet |
21:01 | <zewt> | happen to know when Anne's due back? |
21:01 | <smaug____> | don't remember |
21:02 | <Ms2ger> | Today |
21:03 | <zewt> | i don't envy him his backlog, heh |
21:27 | <AryehGregor> | Can someone with an MDN wiki account change the spec reference here to point to CSSOM View instead of an outdated HTML5 link? https://developer.mozilla.org/en/DOM/element.scrollIntoView http://dev.w3.org/csswg/cssom-view/#dom-element-scrollintoview |
21:49 | <AryehGregor> | Wow, manual tests are staggeringly boring. |
21:49 | <AryehGregor> | Even if you can run a couple a second by just repeatedly hitting the same key, and cache the results. |
21:50 | <smaug____> | AryehGregor: just a second, I'll change or ask someone to change |
21:50 | <smaug____> | the link |
21:51 | <AryehGregor> | I need a small mechanical device that will press a key repeatedly for me so I can do something else in the meantime. |
21:51 | <AryehGregor> | smaug____, thanks. |
21:59 | <smaug____> | AryehGregor: updated |
21:59 | <AryehGregor> | smaug____, thanks. |
22:36 | <AryehGregor> | It's annoying when I get close to the end of a day and have finished all the major work I have and don't want to start on a new thing because I wouldn't make any progress before I stopped for the day. |
22:59 | <Hixie> | idea for a new css selector (based on some stuff i've talked about before): |
23:00 | <Hixie> | a new set of attribute selectors where the first character of the attribute is punctuation, e.g.: |
23:00 | <Hixie> | input[.value=foo], or video[.readyState=2] |
23:01 | <Hixie> | it works just like regular attribute selectors, except the value comes from the IDL attribute with the given name |
23:01 | <Hixie> | and to specify which IDL attributes this works with, we have a new annotation on the attributes in the IDL |
23:01 | <Hixie> | e.g. [ExposeToCSS] readonly attribute DOMString value; |
23:01 | <smaug____> | [ExposeToCSS] would work with only some types, right? |
23:02 | <Hixie> | yeah |
23:02 | <Hixie> | probably just DOMString, long, maybe boolean if we define it as presence vs absence |
23:03 | <Hixie> | we could also have a combinator that works via attributes that return elements |
23:03 | <smaug____> | and the use case is? |
23:03 | <Hixie> | e.g. foo /bar/ baz, where "bar" is an attribute, so e.g. img /usemap/ map selects the map of the img |
23:03 | <Hixie> | many use cases, e.g. selecting input elements based on their current vlaue |
23:04 | <Hixie> | value |
23:04 | <Hixie> | if we had this, we could replace :checked with [.checked], and wouldn't need to introduce new ones each time we have something else to select on |
23:04 | <Dashiva> | I like the sound of that |
23:04 | <Hixie> | e.g. instead of video:paused we can have video[.paused] |
23:04 | <smaug____> | yeah, sounds good |
23:05 | <Hixie> | the combinator is useful for e.g. selecting the control for a label, e.g. label:active /control/ input { border: thick; } |
23:05 | <hober> | hmm |
23:05 | <smaug____> | but might be tricky to implement |
23:05 | <Hixie> | yeah definitely tricky to implement! |
23:05 | <hober> | could be worth posting to www-style |
23:06 | <roc> | it's going to be a nightmare to implement |
23:06 | <Hixie> | ((fwiw, i've suggested both [.foo] and /foo/ before, the new insight here is using an IDL annotation to opt-in attributes to make this work) |
23:06 | <roc> | depending on which attributes you apply it to |
23:06 | <smaug____> | actually, I'd assume it would be very hard to make it work *fast* |
23:07 | <Hixie> | well like roc says, it depends a lot on what we expose |
23:07 | <roc> | the code for "compute me the value of this function" is often orders of magnitude easier than "signal me whenever the computed value of this function would change" |
23:07 | <Hixie> | indeed |
23:11 | <Hixie> | is there any reason other than "history" for using NodeList vs HTMLCollection? |
23:12 | <Hixie> | i guess nodelist can't be accessed by name |
23:12 | <Hixie> | uh oh, domcore has stuff that html currently has and they're getting out of sync |
23:13 | <Hixie> | i hope the domcore stuff is just a straight copy so it can be updated easily once i get around to nuking the stuff in html |
23:18 | <AryehGregor> | Is there any reason to have generic syntax like video[.paused] if it will only work for an extremely small segment of attributes anyway? |
23:18 | <AryehGregor> | It only makes sense if it's defined to work for a pretty broad class of attributes. |
23:18 | <Hixie> | why would it be "extremely small"? |
23:19 | <AryehGregor> | Because CSS selectors are very performance-sensitive, and it would be hard to make most IDL attributes work here. |
23:20 | <AryehGregor> | Implementations do stuff like intern strings so they don't have to do strcmp() when evaluating CSS selectors. Something like checking JS attributes would presumably be hard if you include lots of them. |
23:20 | <AryehGregor> | It might make sense even with only a small set of attributes, though. |
23:20 | <Hixie> | why is it ok with content attributes but not IDL attributes? |
23:20 | <AryehGregor> | Because then JS and CSS knowledge would be more transferrable. |
23:21 | <AryehGregor> | Because content attributes have a static value and are all updated through the same codepaths, IDL attributes can return something different every time you get them and they're updated through tons of different codepaths. |
23:21 | <AryehGregor> | Or they might not even have a value stored in any specific place at all. |
23:21 | <AryehGregor> | They might secretly trigger code that's specific to that particular attribute. |
23:21 | <AryehGregor> | Like, I dunno, querying some video-playing framework to determine if a video is paused or not, which might involve a whole bunch of function calls. |
23:22 | <Hixie> | well it depends on the IDL attribute |
23:22 | <Hixie> | most IDL attributes just reflect the content attributes, so it seems they'd be equivalent |
23:22 | <Hixie> | HTMLMediaElement.paused doesn't update dynamically, it's just a settabel boolean |
23:22 | <Hixie> | settable |
23:22 | <AryehGregor> | If browsers are okay with keeping two copies of everything, yeah. Maybe they already do that, in fact. |
23:23 | <Hixie> | you wouldn't need to keep two copies of everything, only of the attributes that you've found the css references |
23:23 | <Hixie> | and actually you wouldn't need to keep two copies in most cases, if they're the same |
23:23 | <AryehGregor> | Not for regular DOMString, no, but the common case for other types is they're not the same. |
23:24 | <AryehGregor> | Like all non-DOMString types. |
23:24 | <AryehGregor> | Many URLs aren't absolute, either. |
23:24 | <AryehGregor> | Enums are probably going to be exactly the same less often than not. |
23:24 | <AryehGregor> | But it would be useful to be able to query the actual enum state, so you don't have to worry about case variations and defaults and so on. |
23:25 | <Hixie> | <a href=""> already has to be checked against the history, I don't see why img[.src] (say) would be any worse, perf wise |
23:25 | <AryehGregor> | In fact, CSS 2.1 has some wording about attribute default values for exactly this reason. |
23:25 | <Philip`> | For IDL attributes that reflect content attributes, I assume you could just use the content attribute CSS selectors - the only interesting cases for the new selector are the non-reflective ones |
23:25 | <Hixie> | Philip`: the idl attributes tend to do some processing that might be interesting |
23:25 | <AryehGregor> | Philip`, not if the attribute reflects interestingly, like enumerated attributes. |
23:26 | <AryehGregor> | Or numbers, if you're worried you might have weirdly-formatted numbers. |
23:26 | <AryehGregor> | Not booleans or regular DOMStrings, no. |
23:43 | <AryehGregor> | Hixie, I accidentally sent a mail to whatwg a little while ago from the wrong address. Can you approve it? |
23:44 | <AryehGregor> | (if you don't answer within a few minutes, I'll just resend it, but someone I CC'd already responded on-list, so it would be confusing) |
23:44 | <Hixie> | yeah one sec |
23:49 | <AryehGregor> | Hixie, have you approved it yet? I have to leave in a few seconds and want to make sure the post is out before I do. |
23:50 | <Hixie> | sorry, couple of things bumped it down my stack |
23:50 | <Hixie> | getting to it now |
23:50 | <Hixie> | moderator says there's no pending requests |
23:50 | <Hixie> | looks like i have invalid addresses set to bounce permanently |
23:50 | <Hixie> | i think i set that because of the high volume of spam |
23:50 | <AryehGregor> | Okay, I'll resend it. |
23:52 | <AryehGregor> | Gmail could really use smarter list handling. |
23:53 | <AryehGregor> | Like: 1) Allowing you to easily reply to multiple posts in a thread in one e-mail (would be good for some private conversations too). 2) Flagging posts that were made off-list so you don't accidentally reply on-list (hi TabAtkins!). 3) Warning you if you try sending from the wrong address. |
23:54 | <Hixie> | why do you think i use pine for this stuff :-) |
23:54 | <Hixie> | my mail routes through gmail but i use pine as my frontend |
23:54 | <AryehGregor> | Did you ever give Gmail's interface a real try, or were you used to pine already and didn't bother? |
23:55 | <Hixie> | i use gmail for all my work mail |
23:55 | <AryehGregor> | My e-mail UI experience went from AOL to Gmail and that's it, I never tried anything else. |
23:55 | <Hixie> | where work = google internal, not, you know, my actual work... |
23:55 | <AryehGregor> | Gmail works well enough for me, but it would be nice if I could easily script it. |