| 00:00 | <roc> | I don't see that the JITTing concerns apply |
| 00:00 | <roc> | if you're on a big-endian machine, an Int32Array would always byteswap. That's it. |
| 00:01 | <Philip`> | Has anyone suggested/objected to doing something like defining a GL_OES_vertex_array_endianness extension so browsers can tell drivers to deal with the problem themselves, and then only support big-endian devices that provide that extension? |
| 00:01 | <roc> | yes, I just suggested that |
| 00:01 | <zewt> | this is what I'm referring to: |
| 00:01 | <zewt> | The result was increased polymorphism at call sites, which defeated the Java VM's optimizing compiler and led to 10x slowdowns in many common situations. |
| 00:01 | <zewt> | which seems 100% irrelevant to JS |
| 00:01 | <roc> | in reality I bet you could easily extend the GPU to run in little-endian mode, since obviously every GPU part is going to support little-endian so it works with 99% of the CPUs out there |
| 00:04 | <zewt> | ... assuming they can even run in big-endian to begin with |
| 00:05 | <zewt> | i'd find it pretty sadly amusing if a big-endian system did crop up, and WebGL didn't work on it because its GPU was little-endian, and everything would have worked otherwise |
| 01:24 | <roc> | there are big-endian systems with GPUs so it's doable somehow or other |
| 01:55 | <zewt> | i wonder if that's an actual big-endian GPU, if the drivers fake it, or something else |
| 02:02 | <mkanat> | I missed the start of this conversation, is it about shaders? |
| 02:52 | <zewt> | this is pretty fantastic |
| 02:52 | <zewt> | my internet connection is corrupting IP packets in a way that checksums can't detect |
| 02:53 | <zewt> | crcs please :| |
| 06:28 | <hsivonen> | zcorpan: wow. that's surprising. |
| 06:29 | <hsivonen> | zcorpan: jslint getting fixed ahead of jshint that is |
| 06:32 | <zcorpan> | yeah |
| 06:58 | <annevk> | well well |
| 06:58 | <annevk> | are we going to publish today |
| 06:58 | <annevk> | or not |
| 06:58 | <annevk> | my magic eight ball says unlikely |
| 07:00 | <annevk> | html5 seems ready, but 2dcontext and html5-diff are not put into place, didn't bother checking more |
| 07:19 | <MikeSmith> | annevk: we will publish |
| 07:19 | <MikeSmith> | I'll get the rest done later today my time |
| 07:19 | <annevk> | goody |
| 07:20 | <annevk> | slightly less obsolete drafts on TR/ :) |
| 07:20 | <MikeSmith> | heh |
| 07:41 | <annevk> | I wonder if "Let row be the arithmetic left shift of lead − lead offset by 1 − adjust − 33" is better replaced by something like "Let row be ((lead - lead offset) << 1) - adjust - 33". |
| 07:42 | <annevk> | in other words, how do I get away with using << in mathematical expressions in standards |
| 07:43 | <zcorpan> | say what "<<" means in the terminology section |
| 07:48 | <annevk> | In mathematical expressions << means the arithmetic left shift of the left operand by the right operand. |
| 07:48 | <annevk> | something like that? |
| 07:49 | <annevk> | hmm |
| 07:53 | <annevk> | in Unicode math has ≪ which stands for much less-than |
| 07:54 | <annevk> | there's even ⋘ |
| 07:54 | <annevk> | :) |
| 07:55 | <annevk> | oh well, I'll clarify it via some other way |
| 07:58 | <charlvn> | only place i've ever used << and >> was in c++ http://www.cplusplus.com/doc/tutorial/basic_io/ |
| 08:00 | <annevk> | they're available in JavaScript |
| 08:00 | <charlvn> | i think it's supposed to be used for left shifts and right shifts though http://wiki.python.org/moin/BitwiseOperators |
| 08:01 | <charlvn> | heh! never expected that but it's also documented on mdn https://developer.mozilla.org/en/JavaScript/Reference/Operators/Bitwise_Operators |
| 08:02 | <charlvn> | so few people use these, most people just use *2 and /2 |
| 08:02 | <annevk> | well yes, that's what I was going to use it for |
| 08:03 | <charlvn> | is it really that much more efficient? i would expect the interpreter / compiler to perform such optimisations |
| 08:03 | <charlvn> | in favour of readable code |
| 08:04 | <annevk> | what is more readable depends on what you are doing |
| 08:05 | <annevk> | the context here is encoding algorithms |
| 08:05 | <charlvn> | that's very true |
| 08:06 | <charlvn> | last year i got asked a ridiculous question during an internet with google ireland - how to count the number of binary 1's in an int32 |
| 08:06 | <charlvn> | that was the only time in my life i ever decided to use a shift and that was mostly for academical reasons |
| 08:06 | <charlvn> | s/internet/interview/ |
| 08:10 | <annevk> | charlvn: quick search on Google reveals it's not such a weird question: http://en.wikipedia.org/wiki/Hamming_weight |
| 09:29 | <annevk> | zcorpan: undefined |
| 09:43 | <charlvn> | annevk: it's a common question to ask in interviews, but it would be nice to see some practical use cases :P |
| 09:45 | <charlvn> | http://en.wikipedia.org/wiki/Hamming_weight#Efficient_implementation <- this is what it's relevant for (in interviews, not use cases) |
| 10:45 | <annevk> | hsivonen: did you see https://bugs.webkit.org/show_bug.cgi?id=26694 ? |
| 11:06 | <hsivonen> | annevk: I didn't |
| 11:08 | <hsivonen> | annevk: commented |
| 11:11 | <annevk> | if you have a range from x to y, is there a better way to calculate all possible positions than y-x+1? |
| 11:11 | <annevk> | the +1 is kind of ugly |
| 11:11 | <roc> | you mean a way to write "y - x + 1" that's less ugly? |
| 11:12 | <Ms2ger> | y + 1 - x? |
| 11:12 | <Ms2ger> | - x + y + 1? |
| 11:12 | <annevk> | :) |
| 11:13 | <Ms2ger> | (x�-xy+x)/x? |
| 11:14 | <annevk> | haha okay |
| 11:14 | <roc> | make your ranges closed at the start and open at the end |
| 11:15 | <roc> | that usually simplifies code |
| 11:15 | <annevk> | not sure what I was thinking of, I just happen to forget the +1 a lot |
| 11:15 | <zcorpan> | +1 |
| 11:16 | <annevk> | roc: yeah that could work, except with encodings if the lead byte is from 0x81 to 0xFE, using 0xFF everywhere is kind of counter-intuitive too |
| 11:28 | <hsivonen> | annevk: c < 0xFF is way more intuitive than c <= 0xFE or c + 1 <= 0xFF |
| 11:28 | <hsivonen> | these are integers after all |
| 12:19 | <oal> | Do I have to pass an ImageData object along with a message to my web worker? new ImageData(61, 61, new CanvasPixelArray()) doesn't seem to work. Also, could I just be using a Uint8Array for this? |
| 12:21 | <annevk> | hsivonen: c < FE + 1 is what I have iirc |
| 12:22 | <hsivonen> | annevk: eww |
| 12:22 | <annevk> | well |
| 12:22 | <hsivonen> | annevk: please make that c < 0xFF |
| 12:22 | <annevk> | (FE - A1 +1) or some such |
| 12:23 | <gsnedders> | oal: A CanvasPixelArray in modern browsers should be a ClampedUint8Array |
| 12:23 | <gsnedders> | oal: and you can pass that to/from worker fine |
| 12:23 | <annevk> | could make it FF -A1 I guess, dunno |
| 12:23 | <Ms2ger> | ImageData doesn't have a constructor, though |
| 12:24 | <oal> | Aha, thanks! Let me give it a shot |
| 12:25 | <Ms2ger> | Also, Uint8ClampedArray, no? |
| 12:26 | <gsnedders> | Ms2ger: Yeah yeah! :P |
| 12:26 | <Ms2ger> | Yay, www-style people still consider SGML boolean attributes |
| 12:27 | gsnedders | ended up passing around a CanvasPixelArray if possible, otherwise Array.prototype.slice.call(data), earlier |
| 12:27 | <oal> | Hmm, I get "Uncaught ReferenceError: ImageData is not defined", Chromium 17. |
| 12:27 | <Ms2ger> | <Ms2ger> ImageData doesn't have a constructor, though |
| 12:28 | <gsnedders> | The fall-back doesn't really work in low memory situations, though |
| 12:28 | <Ms2ger> | Also, not supported in workers |
| 12:28 | <oal> | Oh, I see. So, I should simply use an array with the correct length then? |
| 12:29 | <gsnedders> | You can pass around the CanvasPixelArray, not the ImageData. |
| 12:30 | <oal> | I'm starting out with an empty canvas anyway, so it wouldn't make much sense to pass that to the worker, then? All drawing will take place in the worker |
| 12:46 | <zcorpan> | time for a whatwg weekly? |
| 12:48 | <karlcow> | :) |
| 12:52 | <zcorpan> | karlcow: s/mentionn/mention/g |
| 12:57 | karlcow | tries to find the context :) |
| 12:59 | <zcorpan> | web platform weekly |
| 13:08 | <karlcow> | ah!!! French getting into the way |
| 13:10 | <karlcow> | zcorpan: fixed! thanks. ☺ will be online in a few minutes. |
| 13:17 | <scott_gonzalez> | MikeSmith: We're getting about 4-5 sec run times for the HTML lint scripts. |
| 13:17 | <scott_gonzalez> | Per file. |
| 13:17 | <scott_gonzalez> | Not sure how much of that is overhead of spawning a new process. |
| 13:18 | <scott_gonzalez> | How hard would it be to have the lint scripts accept multiple files? |
| 13:19 | <MikeSmith> | scott_gonzalez: hard |
| 13:19 | <scott_gonzalez> | hmm...ok |
| 13:19 | <MikeSmith> | and most of that is overhead of spawning a new process |
| 13:19 | <MikeSmith> | starting up the Java VM each time |
| 13:20 | <MikeSmith> | hmm |
| 13:20 | <scott_gonzalez> | So if we just had a wrapper around the linters in Java, it should take care of the performance problems? |
| 13:21 | <MikeSmith> | I don't know how you would do that |
| 13:21 | <scott_gonzalez> | What do the linters take as input? |
| 13:22 | <MikeSmith> | the tool that actually does the validation takes a schema file and a HTML file as input |
| 13:22 | <scott_gonzalez> | Keep in mind I know nothing about Java... |
| 13:22 | <MikeSmith> | well, this isn't doing anything through Java directly |
| 13:22 | <MikeSmith> | it's just calling that command-line tool |
| 13:22 | <scott_gonzalez> | Right, I'm wondering if we could do it directly through Java and just call whatever the CLI calls internally. |
| 13:23 | <scott_gonzalez> | Of course, that would only work if the CLI is really simple and just passes the data off to some other class. |
| 13:24 | <MikeSmith> | even then I don't see any way to do it simply that would not require starting up the jre each and every time |
| 13:24 | <MikeSmith> | this is why validator.nu runs as a web service |
| 13:24 | <MikeSmith> | well, part of way |
| 13:24 | <MikeSmith> | I would really, really like to help you guys set up an instance of the validator.nu backend and have you use that |
| 13:25 | <MikeSmith> | you will for most cases see run times of 100ms or so per file, probably |
| 13:25 | <scott_gonzalez> | If it were small and simple to include in the jquery-ui repo, we would. |
| 13:26 | <MikeSmith> | it just amounts to a bunch of jar files |
| 13:26 | <MikeSmith> | if you would be wiling to have the jar files in the rep |
| 13:26 | <MikeSmith> | *repo |
| 13:26 | <scott_gonzalez> | What kind of total filesize would we be looking at? |
| 13:27 | <MikeSmith> | lemme check and see |
| 13:30 | <MikeSmith> | for the validator code itself, it would be 4MB |
| 13:30 | <MikeSmith> | 8 jar files |
| 13:31 | <MikeSmith> | I'll check in the size of the 3rd-party dependencies |
| 13:34 | <MikeSmith> | 28 3rd-party jar files |
| 13:34 | <MikeSmith> | checking the size total now |
| 13:36 | <MikeSmith> | actually, only 16 3rd-party files |
| 13:39 | <MikeSmith> | 12MB for the 3rd-party files |
| 13:39 | <MikeSmith> | so 16MB total |
| 13:39 | <MikeSmith> | scott_gonzalez: ↑ |
| 13:42 | <scott_gonzalez> | Ok, let's try it out and see how it works. |
| 13:43 | <scott_gonzalez> | Can you work with jzaefferer to get us set up with that? |
| 13:43 | <MikeSmith> | scott_gonzalez: yeah, absolutely |
| 13:44 | <scott_gonzalez> | jzaefferer = Jörn, the other dev lead for jQuery UI |
| 13:44 | <MikeSmith> | oh |
| 13:44 | <MikeSmith> | OK |
| 13:44 | <MikeSmith> | what time zone is he in? |
| 13:44 | <jzaefferer> | MikeSmith: would be great if you could put together a build that we can include |
| 13:44 | <MikeSmith> | hey jzaefferer |
| 13:44 | <scott_gonzalez> | GMT+1, but I'm pretty sure he doesn't sleep :-P |
| 13:44 | <MikeSmith> | heh |
| 13:44 | <MikeSmith> | jzaefferer: yeah, I'm sure I can put something together for you |
| 13:44 | <jzaefferer> | Planning to put that into an npm module, that we'll then include into our grunt build |
| 13:45 | <MikeSmith> | ah, OK |
| 13:45 | <MikeSmith> | there are a couple of minor changes I want to make to the validator code to make it more portable |
| 13:45 | <MikeSmith> | I will try to get those done tomorrow |
| 13:45 | <jzaefferer> | Whatever the binary ends up looking like, as long as we can somehow pass a list of files to validate and it doesn't take as long, that should work |
| 13:45 | <MikeSmith> | pending review from hsivonen |
| 13:45 | <MikeSmith> | yeah, we can do that |
| 13:46 | <jzaefferer> | OR we implement relaxNG in node/javascript ;) |
| 13:46 | <MikeSmith> | heh |
| 13:46 | <MikeSmith> | you don't want to do that :) |
| 13:46 | <jzaefferer> | yeah... |
| 13:47 | <jzaefferer> | well, I'll stick around here, let me know |
| 13:47 | <MikeSmith> | and anyway, validator.nu is doing far more than relaxng is capable of on its own |
| 13:47 | <MikeSmith> | OK |
| 13:47 | <MikeSmith> | to be clear, this will require having a process running and listening on a particular port |
| 13:47 | <MikeSmith> | port 8888 by default |
| 13:47 | <MikeSmith> | just for the duration of the test run |
| 13:47 | <jzaefferer> | okay |
| 13:48 | <MikeSmith> | so I will aim to have it all ready for you guys by end of next week |
| 13:48 | <jzaefferer> | as long as that doesn't need any actual network outside of the local machine, that's fine |
| 13:48 | <MikeSmith> | yeah, it will all be local |
| 13:49 | <jzaefferer> | cool |
| 13:49 | <MikeSmith> | there are some things that it normally tries to download from remote hosts when it first starts up, but we already have an option in place to have it use cached copies instead |
| 13:49 | <jzaefferer> | nice |
| 13:49 | <MikeSmith> | those copies are inside one of the jars |
| 14:01 | <MikeSmith> | hsivonen: if/when you're around and have a minute, wanted to ask you for a sanity check on a couple changes to make it possible to run the validator just from the jar files only, without needing to look for any files on the filesystem |
| 14:02 | <MikeSmith> | one is just to have it not look for the validator/log4j.properties but instead set the properties in the code directly |
| 14:03 | <MikeSmith> | the other is to have it not look for the local copies of the www.iana.org and wiki.whatwg.org on the filesystem but instead get them from the local-entities jar file |
| 14:04 | <MikeSmith> | if you don't have time I'll just e-mail you the actual patches |
| 14:05 | <MikeSmith> | immediate reason for the changes is to make it possible for the JQuery UI team to run their tests from just using the jar files |
| 14:05 | <MikeSmith> | but more generally to let anybody else be able to do that too |
| 14:06 | <Ms2ger> | MikeSmith, Chrome got into an infinite loop again: http://w3c-test.org/framework/results/web-storage-dev/ |
| 14:07 | <MikeSmith> | no clues |
| 14:07 | <MikeSmith> | maybe ping Berjon about it |
| 14:07 | <Ms2ger> | And segfaulted now, yay Chrome! |
| 14:08 | <MikeSmith> | oh man |
| 14:10 | Ms2ger | blames Google |
| 14:11 | <Ms2ger> | Hrm |
| 14:11 | <Ms2ger> | That doesn't explain why Opera has the same issue, though |
| 14:12 | <MikeSmith> | same issue? |
| 14:12 | <MikeSmith> | the loop problem? |
| 14:12 | <Ms2ger> | Yep |
| 14:13 | <Ms2ger> | Seems there's something wrong with the "run in most-needed order" |
| 14:13 | <jarek> | should there be classList property on SVG elements? |
| 14:13 | <jarek> | Firefox implements it, but Chrome does not |
| 14:13 | <Ms2ger> | Yes |
| 14:14 | <Ms2ger> | It's on Element in DOM Core |
| 14:14 | <jarek> | but SVGElement.prototype.classList is not standardized, right? |
| 14:14 | <jarek> | it's in DOM Core? I though I have seen it in HTML5 spec |
| 14:14 | <Ms2ger> | Sure |
| 14:14 | <Ms2ger> | It used to be in HTML |
| 14:40 | <annevk> | why would you want to operate on local name? |
| 14:40 | <annevk> | everything that ignores namespaces operates on name thus far |
| 14:40 | <Ms2ger> | Say what? |
| 14:40 | <annevk> | context: https://www.w3.org/Bugs/Public/show_bug.cgi?id=16563 |
| 14:41 | <Ms2ger> | smaug____, |
| 14:43 | <annevk> | hmm WHATWG Weekly |
| 14:43 | <annevk> | okay, if I can write it in 40 min |
| 14:43 | <annevk> | so |
| 14:43 | <smaug____> | annevk: if you set attribute |
| 14:43 | <annevk> | lots of canvas |
| 14:43 | <smaug____> | you don't care about prefix |
| 14:43 | <smaug____> | you care about namespace and localName |
| 14:43 | <annevk> | smaug____: setAttribute("xlink:href", "test") |
| 14:43 | <annevk> | try it |
| 14:44 | <annevk> | if the element has an attribute xlink:href in the xlink namespace declared... |
| 14:45 | <smaug____> | so ? |
| 15:20 | <annevk> | rough draft: http://blog.whatwg.org/weekly-canvas-v5 |
| 15:25 | <annevk> | smaug____: well it works with name there, not local name... |
| 15:25 | <smaug____> | and the question I had is, so ? |
| 15:25 | <smaug____> | :) |
| 15:26 | <annevk> | everything that ignores namespaces operates on name thus far |
| 15:26 | <annevk> | seems kind of weird to have that different here |
| 15:26 | <MikeSmith> | annevk: s/devices as that the vast/devices, as the vast/ |
| 15:27 | <smaug____> | if you are handling namespaces, you really don't want to care of the prefixes |
| 15:27 | <smaug____> | you have namespace and localName |
| 15:27 | <annevk> | thanks MikeSmith |
| 15:27 | <smaug____> | (but I'm just in middle of something else...) |
| 15:28 | <annevk> | that's true enough, but I thought we didn't care about namespaces? |
| 15:28 | <annevk> | but I guess then we should not have attributeNamespace either hmm |
| 15:28 | <annevk> | annoying |
| 15:29 | <smaug____> | oh yes, namespaced attributes are very annoying |
| 17:18 | <dglazkov> | good morning, Whatwg! |
| 17:18 | <dglazkov> | and good night, Ms2ger |
| 17:18 | <Ms2ger> | Morning, dglazkov |
| 17:19 | <dglazkov> | now you're just messing with me |
| 17:40 | <TabAtkins> | Ms2ger: What's this about SGML boolean attributes? |
| 17:43 | <Ms2ger> | http://lists.w3.org/Archives/Public/www-style/2012Mar/0667.html |
| 17:43 | <TabAtkins> | Note: Christoph is not part of the WG. He's one of the many contributors, and sometimes gets strange ideas. |
| 17:50 | <Ms2ger> | Note: I said "www-style", not "The Cabal" |
| 17:50 | <hober> | Hixie: in http://lists.w3.org/Archives/Public/public-html/2012Mar/0739.html rubys asked me to "obtain and incorporate any feedback you feel is necessary from the editor" on my counter proposal on the web+ prefix issue: http://www.w3.org/html/wg/wiki/User:Eoconnor/ISSUE-189 |
| 17:50 | <hober> | Hixie: so, yeah. let me know if you have any thoughts on that. |
| 17:55 | <Ms2ger> | So, when doing for (var p in obj), where obj supports both indexed and named properties, which values should p take? |
| 17:55 | <gsnedders> | Ms2ger: For WebIDL? |
| 17:55 | <Ms2ger> | Hmm? |
| 17:57 | <gsnedders> | Ms2ger: A WebIDL-defined object, or a general ES one? |
| 17:57 | <Ms2ger> | Former |
| 18:03 | <gnarf> | hey WG guys... newz2000 over on #html5 was bringing up a feature that could be pretty handy in the future... Some way to detect/convey the current user's locale preferences in JavaScript |
| 18:03 | <Ms2ger> | No |
| 18:03 | <Ms2ger> | That's a privacy bug, not a feature |
| 18:04 | <gsnedders> | Already sent over HTTP, though |
| 18:04 | <gnarf> | sent on EVERY http connection |
| 18:04 | <gnarf> | privacy my ass |
| 18:04 | <gnarf> | (sorry) |
| 18:05 | <newz2000> | hi, sorry I missed the first part of the discussion |
| 18:05 | <newz2000> | I see in gecko 5+ the first value of the user's preferred lang is available in navigator.language |
| 18:05 | <newz2000> | that's an awesome improvement |
| 18:05 | <newz2000> | I suspect it only returns the first value because of backwards compatibility |
| 18:06 | <newz2000> | and it's not in the same format as the http header |
| 18:06 | <gsnedders> | The sensible format would surely be an array of language tags? |
| 18:07 | <newz2000> | that would be better than the string format that gets sent as part of the http header |
| 18:07 | <newz2000> | the http header includes a weighting value |
| 18:08 | <newz2000> | even if we only had the string value though it would be an improvement, it's pretty easily parsed. |
| 18:09 | <newz2000> | This was annoying a couple years ago, but in recent times client side templating is becoming more common |
| 18:09 | <newz2000> | and therefore localization of some resources can be done client side, except that you've got to use tricks to go to the server and find out what language is being sent in the http header |
| 18:10 | <newz2000> | I'd be happy to file bugs or some thing else to start productive conversation of the issue |
| 18:10 | <newz2000> | what is the best process? |
| 18:20 | <TabAtkins> | newz2000: This isn't a good room to discuss Gecko specifics, except insofar as it's relevant to specs. |
| 18:20 | <TabAtkins> | newz2000: But if you want to file bugs or something, go for it. |
| 18:20 | <newz2000> | well, my hope is to get all browsers to provide a common way |
| 18:20 | <newz2000> | none give all the info but a recent version of ff gives a little info and I hear IE does too. |
| 18:21 | <TabAtkins> | Oh, I see. I skimmed past your wall of text. ^_^ |
| 18:21 | <newz2000> | Yeah, maybe a mailing list post would be better, though it looks to be a pretty high volume list |
| 18:25 | <TabAtkins> | Just send a post to whatwg⊙wo |
| 18:25 | <newz2000> | ok. |
| 18:25 | <newz2000> | Thanks for the encouragement TabAtkins |
| 18:34 | <kennyluck> | Perhaps I shouldn't say this but from time to time Christoph's mails do make me laugh. |
| 18:37 | <TabAtkins> | He's clearly on the "theoretical" side of the specturm. |
| 19:35 | <annevk> | Ms2ger: hmm yeah |
| 19:35 | <annevk> | Ms2ger: the whole named property business needs a careful look |
| 19:37 | <Ms2ger> | Yeah |
| 19:37 | <Ms2ger> | No spec that I know of actually defines the order |
| 20:10 | <annevk> | http://calculist.org/blog/2012/03/29/synchronous-module-loading-in-es6/ because script scheduling was not complicated enough just yet? |
| 20:10 | <annevk> | kind of makes importScripts obsolete though I guess |
| 20:11 | <annevk> | s/though// |
| 20:13 | <MikeSmith> | http://www.belshe.com/2012/03/29/comments-on-microsofts-spdy-proposal/ |
| 20:14 | <Ms2ger> | I like how the one comment talks about "HTML + Mobility" |
| 20:34 | <eseidel> | Curious if anyone here has knowledge of <iframe seamless=true>. Either attempted implementing it, or worked on the spec? |
| 20:34 | <eseidel> | (besides Hixie of course) |
| 20:35 | <MikeSmith> | eseidel: no browser projects have attempted to implement it yet, afaik |
| 20:35 | <MikeSmith> | eseidel: btw, that sentence you cite seems grammatical to me |
| 20:35 | <MikeSmith> | though long |
| 20:35 | <eseidel> | MikeSmith: it took my little brain quite a while to parse |
| 20:35 | <eseidel> | MikeSmith: I'm not doubting it's english :) |
| 20:35 | <eseidel> | (or gramatical) |
| 20:35 | <MikeSmith> | heh |
| 20:35 | <Ms2ger> | <iframe seamless>, you mean, I guess |
| 20:35 | <eseidel> | just infinite |
| 20:36 | <MikeSmith> | en-US-hixie |
| 20:36 | <eseidel> | MikeSmith, Ms2ger are either of you familiar with the spec, enough to field questions? |
| 20:36 | <eseidel> | I'm looking (briefly) at what it would take in WebKit |
| 20:36 | <Ms2ger> | I'm not familiar, but feel free to bat me a question :) |
| 20:36 | <TabAtkins> | I'm roughly familiar with the spec. |
| 20:37 | <MikeSmith> | eseidel: https://bugzilla.mozilla.org/show_bug.cgi?id=631218 fwiw |
| 20:37 | <eseidel> | MikeSmith: k |
| 20:38 | <eseidel> | MikeSmith: it appears https://bugs.webkit.org/show_bug.cgi?id=45950 is ours |
| 20:40 | <eseidel> | TabAtkins: first question: re: the CSS parts. I assume it's only that the "root style" of the inner document as it would be for a child of the iframe's parent. NOT that global styles from the parent docuemnt apply to the inner document? (such as a body { } selector?) |
| 20:40 | <Ms2ger> | I believe you assume wrong |
| 20:41 | <Ms2ger> | Or I may be parsing you wrongly :) |
| 20:41 | <TabAtkins> | eseidel: Selectors never match across the boundary. |
| 20:41 | <eseidel> | good |
| 20:41 | <TabAtkins> | Inheritance crosses the boundary, and user stylesheets ae cloned across the boundary. |
| 20:41 | <Ms2ger> | Or I'm plain wrong |
| 20:41 | <annevk> | I thought that was the whole point |
| 20:41 | <eseidel> | but, all selectors that might apply to the <iframe> or it's kids, are part of the style inherited by the inner-doucment's root |
| 20:41 | <annevk> | that Selectors cross the boundary |
| 20:42 | <TabAtkins> | (Wholely cloned, not haing their selectors apply across.) |
| 20:42 | <TabAtkins> | Selectors targetting the <iframe>'s children do nothing. |
| 20:42 | <TabAtkins> | The nested document inherits from the <iframe> element itself only. |
| 20:42 | <eseidel> | iframe:first-child { color: red } would not target the inner doc? |
| 20:42 | <Ms2ger> | You means iframe > foo? |
| 20:43 | <eseidel> | if, so that makes things super easy |
| 20:43 | <TabAtkins> | eseidel: Correctly. |
| 20:43 | <Ms2ger> | Because that wouldn't make sense |
| 20:43 | <eseidel> | from a CSS perspective |
| 20:43 | <TabAtkins> | Or rather, "iframe:first-child" would, because that still targets the iframe. |
| 20:43 | <eseidel> | OK, so it sounds like the CSS side is simple |
| 20:43 | <Ms2ger> | body {} would match the inner document's body, no? |
| 20:43 | <TabAtkins> | But "iframe > :first-child" doesn't. |
| 20:43 | <TabAtkins> | Ms2ger: No. |
| 20:43 | <TabAtkins> | Go read the spec. ^_^ |
| 20:43 | <eseidel> | the spec only really enumerates what it does do :) |
| 20:43 | <eseidel> | the first two points state the 2 CSS parts |
| 20:44 | <TabAtkins> | eseidel: Yes, and thus it doesn't do anything else. |
| 20:44 | <Ms2ger> | In a CSS-supporting user agent: the user agent must add all the style sheets that apply to the iframe element to the cascade of the active document of the iframe element's nested browsing context, at the appropriate cascade levels, before any style sheets specified by the document itself. |
| 20:44 | <eseidel> | http://www.whatwg.org/specs/web-apps/current-work/#attr-iframe-seamless |
| 20:44 | <TabAtkins> | Ms2ger: Oh, duh, now I understand your question. Yes. |
| 20:44 | <Ms2ger> | Then why did you say No? |
| 20:44 | <TabAtkins> | The stylesheet gets cloned over into the iframe's document, so yeah, a "body" selector in the outer document will also match the <body> in the ref'd document. |
| 20:44 | <eseidel> | ok, so I misunderstood too then |
| 20:44 | <eseidel> | ok |
| 20:44 | <TabAtkins> | Ms2ger: Because I thought you were saying something else. |
| 20:44 | <eseidel> | so that's a bit weird |
| 20:45 | <Ms2ger> | I wonder what you managed to read into that, then :) |
| 20:45 | <eseidel> | and may be difficult |
| 20:45 | <TabAtkins> | Ms2ger: I"m not sure. |
| 20:45 | <eseidel> | TabAtkins: are these stylesheets accessible from teh inner document? |
| 20:45 | <eseidel> | TabAtkins: are they cloned? |
| 20:45 | <TabAtkins> | eseidel: No. |
| 20:45 | <TabAtkins> | They just apply in the cascade before the doc's own stylesheets. |
| 20:45 | <eseidel> | TabAtkins: are they live? such that modification to them by the outer document effects the inner? |
| 20:45 | <TabAtkins> | But they're not visible. |
| 20:45 | <TabAtkins> | Yes, they're live. |
| 20:46 | <eseidel2> | TabAtkins: sorry, irc cloud is being stupid |
| 20:46 | <eseidel2> | TabAtkins: I was asking: |
| 20:46 | <eseidel2> | eseidel> TabAtkins: are these stylesheets accessible from teh inner document? |
| 20:46 | <eseidel2> | 1:46 PM <eseidel> TabAtkins: are they cloned? |
| 20:46 | <eseidel2> | 1:46 PM <eseidel> TabAtkins: are they live? such that modification to them by the outer document effects the inner? |
| 20:47 | <Ms2ger> | <TabAtkins> eseidel: No. |
| 20:47 | <Ms2ger> | <TabAtkins> They just apply in the cascade before the doc's own stylesheets. |
| 20:47 | <Ms2ger> | <eseidel> TabAtkins: are they live? such that modification to them by the outer document effects the inner? |
| 20:47 | <Ms2ger> | <TabAtkins> But they're not visible. |
| 20:47 | <Ms2ger> | <TabAtkins> Yes, they're live. |
| 20:47 | <TabAtkins> | Thanks, Ms2ger . |
| 20:47 | <eseidel2> | ok |
| 20:47 | <Ms2ger> | Np |
| 20:47 | <eseidel2> | so that's easier |
| 20:47 | <TabAtkins> | Tehy're not literally cloned, just spammed into the cascade. |
| 20:47 | <ojan> | TabAtkins: what are the use-cases for :empty? Could we just make :empty match nodes that only contain non-significant whitespace? |
| 20:47 | <ojan> | TabAtkins: alternately, i guess we could add a :collapsed pseudo |
| 20:47 | <TabAtkins> | ojan: I really don't know what the use-case was. |
| 20:47 | <eseidel2> | TabAtkins: yeah, that's fine |
| 20:48 | <annevk> | I think :empty might have been for empty table cells |
| 20:48 | <ojan> | annevk: oh, could be |
| 20:49 | <eseidel2> | so TabAtkins , it seems the second bullet does not support the iframe:first-child { } selector matching anything in the inner document |
| 20:49 | <eseidel2> | TabAtkins: that's your interpretation, correct? |
| 20:49 | <TabAtkins> | ojan: I suspect that "insignificant white-space" would be okay for :empty, fi the spec was changed. |
| 20:49 | <eseidel2> | TabAtkins: that iframe:first-child { } matches nothing in the inner document (unless of course there is an iframe in that inner document with a child) |
| 20:49 | <TabAtkins> | eseidel2: Your selector is wrong. ^_^ If you meant "iframe > :first-child", then yes. |
| 20:49 | <TabAtkins> | Yes. |
| 20:49 | <eseidel2> | TabAtkins: my little CSS brain can't parse that anymore. long since paged out all mys elector knowledge |
| 20:50 | <eseidel2> | TabAtkins: that's a defendant of :first-child ? |
| 20:50 | <TabAtkins> | iframe:first-child means "an iframe who is a first child". |
| 20:50 | <eseidel2> | decendant |
| 20:50 | <eseidel2> | oh, you're right |
| 20:50 | <eseidel2> | I want, first child of the frame |
| 20:50 | <eseidel2> | so iframe > :first-child then? |
| 20:50 | <TabAtkins> | Yeah, that won't "cross over" and select the first element in the ref'd doc. |
| 20:50 | <eseidel2> | ok, good |
| 20:51 | <TabAtkins> | Ooh, interesting diversion here. What happens with @seamless and a <style scoped> on an ancestor? |
| 20:51 | <eseidel2> | TabAtkins: so the 3rd bullet is just saying that the root element of the inner doc inherits from the iframe's style |
| 20:51 | <TabAtkins> | yup |
| 20:52 | <TabAtkins> | Actually, I answered my own question. The scoped stylesheet is just spammed into the cascade as normal, without carrying over any scoping semantics. |
| 20:52 | <TabAtkins> | Which will be weird with :scope selectors or whatever. |
| 20:53 | <TabAtkins> | I should raise an issue. |
| 20:53 | <Ms2ger> | And take over editing this stuff ;) |
| 20:53 | <eseidel2> | TabAtkins: so iframe still remains a replaced element |
| 20:54 | <eseidel2> | TabAtkins: it just magically acts like a block |
| 20:54 | <eseidel2> | in a manual hacky way |
| 20:54 | <TabAtkins> | eseidel2: Yes. |
| 20:55 | <eseidel2> | TabAtkins: so it behaves like a hacky inline-block of sorts? |
| 20:55 | <eseidel2> | i guess not quite |
| 20:55 | <eseidel2> | since inline block doesn't have width: auto? |
| 20:55 | <eseidel2> | I don't' remember, actually |
| 20:56 | <TabAtkins> | inline-block's width:auto translates to 'fit-content'. |
| 20:56 | <TabAtkins> | While block's width:auto translates to 'fill' or whatever. |
| 21:00 | <MikeSmith> | http://www.w3.org/News/2012#entry-9404 |
| 21:00 | <MikeSmith> | publication announcement for the HTML WG TR drafts |
| 21:01 | <Ms2ger> | This month?! |
| 21:01 | <hober> | whooo! |
| 21:02 | <paul_irish> | \o/ MikeSmith |
| 21:02 | <Ms2ger> | Yay for having a slightly less obsolete document on TR/! |
| 21:02 | <MikeSmith> | heh |
| 21:04 | <MikeSmith> | it would be good to use this to give web developers a heads-up about the updates to the APIs section of the diff-from-HTML4 document |
| 21:04 | <MikeSmith> | http://www.w3.org/TR/2012/WD-html5-diff-20120329/#apis |
| 21:05 | <MikeSmith> | zcorpan added all kinds of awesome to that |
| 21:06 | <MikeSmith> | along with massively detailed section about what's changed over the last 12 months |
| 21:06 | <MikeSmith> | http://www.w3.org/TR/2012/WD-html5-diff-20120329/#changes-2011-05-25 |
| 21:06 | <MikeSmith> | or 10 months |
| 21:20 | <karlcow> | → curl -sI http://hansmuller-webkit.blogspot.ca/2012/03/css-transform-origin-coming-to-svg.html | grep Content-Type |
| 21:20 | <karlcow> | Content-Type: text/html; charset=UTF-8 |
| 21:20 | <karlcow> | I wonder why blogspot call that HTML |
| 21:20 | <karlcow> | it is barely HTML |
| 21:21 | <karlcow> | there is a tendency to send big JSON files packages in an pseudo HTML UI |
| 21:21 | <karlcow> | jux.com does that too |
| 21:23 | <gsnedders> | Old New Twitter.com did too, not looked at source of New New Twitter |
| 21:24 | <karlcow> | really silly for blog posts. |
| 21:24 | <karlcow> | You do a save as of the page |
| 21:24 | <karlcow> | save it as html |
| 21:24 | <karlcow> | then try to load it in your browser later on |
| 21:24 | <karlcow> | BLANK PAGE |
| 21:24 | <karlcow> | nothing |
| 21:29 | <karlcow> | as a matter of facts the most reliable way to access the content seems to be the feed http://hansmuller-webkit.blogspot.ca/feeds/posts/default |
| 21:29 | <TabAtkins> | karlcow: The most reliable way to save a page is to open up developer tools, right click on the <html> element, and select "copy as html". Then paste into a text file yourself. |
| 21:30 | <TabAtkins> | Add a doctype yourself. |
| 21:30 | <karlcow> | not really user friendly |
| 21:33 | <eseidel2> | TabAtkins: ok, so talk to me about testing |
| 21:34 | <TabAtkins> | ?_? |
| 21:34 | <eseidel2> | TabAtkins: do you know if we have any seamless tests? Or should I start writing? :) |
| 21:34 | <TabAtkins> | Since we don't have an impl, I doubt we ahve tests. |
| 21:34 | <eseidel2> | k |
| 21:34 | <eseidel2> | TabAtkins: well, thanks for your thoughts :) |
| 21:34 | <TabAtkins> | Welcome! |
| 21:51 | <eseidel> | TabAtkins: talk to me about selection |
| 21:52 | <eseidel> | TabAtkins: would you be expected to be able to select across a seamless frame? |
| 21:52 | <eseidel> | I suspect you'll say yes... to which I'll reply "you're nuts" |
| 21:52 | <eseidel> | :) |
| 21:52 | <eseidel> | rniwa: ^^^ |
| 21:52 | <rniwa> | eseidel: ? |
| 21:53 | <rniwa> | eseidel: any frame should be treated as an atomic element. |
| 21:53 | <rniwa> | eseidel: i.e. you either select the entire frame or not selecting the frame. |
| 21:53 | <eseidel> | rniwa: lets wait for TabAtkins to reply. my understanding is <iframe seamless> is supposed to act basically like it's a <div> :) |
| 21:53 | <rniwa> | eseidel: there's no way for us to allow selection that crosses frame boundary |
| 21:54 | <eseidel> | basically fake not being a replaced element |
| 21:54 | <eseidel> | rniwa: that was my understanding, thank you for confirming |
| 21:54 | <eseidel> | (hence my "you'r nuts" comment above" |
| 21:55 | eseidel | looks forward to TabAtkins's return |
| 21:55 | <rniwa> | eseidel: somehow chrome & colloquy are interfering with each other today :\ |
| 21:56 | <rniwa> | maybe it's m-18 thing |
| 21:56 | <eseidel> | rniwa: donno |
| 21:56 | <rniwa> | it stops responding when I'm running both of them at the same time |
| 21:56 | <rniwa> | they stop* |
| 21:56 | <eseidel> | rniwa: I've seen colloquy have trouble today too |
| 21:56 | <eseidel> | rniwa: but I normally use irccloud |
| 21:56 | <rniwa> | eseidel: chrome m-18 was just pushed yesterday |
| 21:56 | <eseidel> | rniwa: I can invite you if you're interested |
| 21:57 | <rniwa> | eseidel: not interested, but thanks |
| 22:00 | <rniwa> | huh... it seems like different processes keep dead-locking :( |
| 22:00 | rniwa | reboots his machine |
| 22:12 | <TabAtkins> | Whoops, back. |
| 22:13 | <TabAtkins> | rniwa is right. |
| 22:13 | <TabAtkins> | Seamles iframes are still iframes. They have only the effects listed in the spec. |
| 22:22 | <eseidel> | TabAtkins: I'm just tryign to interpret the last bullet in the spec: |
| 22:22 | <eseidel> | User agents should, in general, act as if the active document of the iframe's nested browsing context was part of the document that the iframe is in, if any. |
| 22:22 | <eseidel> | TabAtkins: you believe that does not apply to selection |
| 22:23 | <eseidel> | or isn't trying to, rather |
| 22:23 | <eseidel> | (since donig so would be very very difficult in webkit) |
| 22:28 | <eseidel> | TabAtkins: my follow-up questions are about if this should affect form-control tab ordering, as well as form submission (I assume that form elements in the child don't some how magically end up in forms of the parent) |
| 22:29 | <eseidel> | TabAtkins: i'm not suggesting it should, but just making sure that that last bullet doesn't pull in anything too weird |
| 22:29 | <eseidel> | TabAtkins: trying to anticipate the craziness before I start writing code |
| 22:30 | <TabAtkins> | Hm. I'd ask Hixie for clarification on those points. |
| 22:30 | <TabAtkins> | But he's gone until next week. |
| 22:31 | <eseidel> | TabAtkins: so hixie is our obi-wan here? |
| 22:31 | <eseidel> | TabAtkins: no one else has worked on the seamless stuff? :) |
| 22:31 | <TabAtkins> | Well, he knows what he intended when he wrote that, presumably. |
| 22:31 | <eseidel> | ok |
| 22:32 | <eseidel> | well, I'll just write it down in my "possible issues" list and start testing |
| 22:32 | <eseidel> | TabAtkins: thanks |
| 22:39 | <eseidel> | TabAtkins: seamless is going to be weird |
| 22:39 | <eseidel> | TabAtkins: because if you try to make somethign small, you'll have to constrict the size of your <html> |
| 22:39 | <eseidel> | TabAtkins: as normally <body> would fill the entire width, no? |
| 22:39 | <eseidel> | TabAtkins: for example, say you had an iframe with a div in it which was 100x100, and you assumed that was your content size |
| 22:39 | <eseidel> | TabAtkins: it would look that way when you viewed it independently |
| 22:40 | <eseidel> | TabAtkins: but when you tried to make it seamless in your doc, wouldn't the html/body force it to be full width? |
| 22:40 | <eseidel> | or am I mis-remembering my CSS? |
| 22:40 | <TabAtkins> | Why would it be forced to full width? The iframe just changes from "default to a width of 300" to "default to a width of 'fill'". |
| 22:41 | <eseidel> | TabAtkins: I see, the iframe doesn't take the width of the child content, only the height |
| 22:42 | <eseidel> | In visual media, in a CSS-supporting user agent: the user agent should set the intrinsic width of the iframe to the width that the element would have if it was a non-replaced block-level element with 'width: auto'. |
| 22:42 | <TabAtkins> | Yeah, it acts more or less like a normal block element. |
| 22:42 | <eseidel> | good |
| 22:44 | <eseidel> | TabAtkins: you know of no way to access the "intrinsic" height of an element from JS, right? that's only used in width calculations internally, correct? |
| 22:44 | <eseidel> | I believe we only expose the computed width/height |
| 22:47 | <TabAtkins> | yes |
| 22:49 | <eseidel> | TabAtkins: so seamless iframes are still replaced elements, and still inline, they just have funny intrinsic width as though they were blocks, correct? |
| 22:49 | <TabAtkins> | yes |
| 22:49 | <eseidel> | TabAtkins: (once again, I appreciate your consultation on this) |
| 22:54 | <TabAtkins> | np |
| 23:12 | <roc> | I've implemented part of 'seamless' for Gecko, although the patch hasn't landed |
| 23:12 | <roc> | the layout bits |
| 23:12 | <roc> | not the style bits |
| 23:38 | <eseidel> | TabAtkins: am I reading http://www.whatwg.org/specs/web-apps/current-work/#sandboxed-seamless-iframes-flag correctly, that the flag name has not yet been defined? |
| 23:38 | <eseidel> | TabAtkins: it's mentioned, but not given a name... |
| 23:38 | <eseidel> | (making it difficult to test! :) |
| 23:41 | <TabAtkins> | The flag is called "the sandboxed seamless iframes flag". There's no value you can put in @sandbox to control it, though. |
| 23:43 | <eseidel> | TabAtkins: I see, so I just have to use <iframe sandbox> to set all the flags :) |
| 23:43 | <TabAtkins> | yeah |
| 23:44 | <eseidel> | TabAtkins: well, this will make things interesting to test |