| 07:17 | <annevk> | GPHemsley: for https://bugzilla.mozilla.org/show_bug.cgi?id=791428 you prolly want to find someone to cc that has experience with that code |
| 07:17 | <annevk> | GPHemsley: standards people are not going to be of much help I think ;) |
| 07:34 | <annevk> | hmm, IPv6 parsing in JavaScript is kinda annoying with the 53bit int limit |
| 08:26 | <MikeSmith> | http://lists.w3.org/Archives/Public/public-coremob/2012Sep/0021.html |
| 08:26 | <MikeSmith> | from Tobie Langel |
| 08:26 | <MikeSmith> | "What's slowing down Mobile Facebook" |
| 08:53 | <smaug____> | ugh |
| 08:54 | <smaug____> | creating nodes in workers and moving them to main thread |
| 08:54 | <smaug____> | the API would become horrible |
| 08:54 | <smaug____> | what if you add event listener to the node in worker |
| 08:54 | <smaug____> | and transfer the node to mainthread |
| 09:07 | <annevk> | what's the context for DOM in workers? |
| 15:32 | <jgraham> | annevk: The facebook mail |
| 15:33 | <jgraham> | They seem to want to do infinite scrolling by preconstructing document fragments in a worker and then cloning them across to the main thread for rendering |
| 15:34 | <jgraham> | It is not obvious to me that this would be faster |
| 15:34 | <jgraham> | But presumably the response to smaug's concern is that such fragments would be dead until inserted into the main document |
| 15:35 | <jgraham> | So scripts would not run, event listeners would not fire, etc. |
| 16:05 | <zewt> | seems like an order of magnitude of complexity that should require an order of magnitude benefit |
| 17:07 | <annevk> | jgraham: oh, I searched that email for node and that yielded nothing |
| 17:24 | <jwalden> | dear lazywhatwg, does anyone know offhand what the document.all property looks like in Opera? a plain old object, an object that pretends to be falsy, an object that compares == to undefined/null (but not ===), something else? |
| 17:30 | <annevk> | falsy iirc |
| 17:47 | <jwalden> | interestingly, in Opera it seems document.all === undefined |
| 17:47 | <jwalden> | even thought it's an object |
| 17:48 | <jwalden> | jsc at least has == undefined but !== undefined |
| 17:50 | <jgraham> | jwalden: Gecko also has === undefined, no? |
| 17:51 | <jwalden> | jgraham: Gecko is very funky in how it does things right now |
| 17:51 | <jwalden> | jgraham: if you can manage to get the document.all value as an object, it will not be === undefined |
| 17:52 | <jwalden> | roughly speaking there is a heuristic that looks at bytecode patterns and decides whether the pattern represents an attempt to "detect" whether a property exists |
| 17:53 | <jwalden> | well, the heuristic applies to all property accesses, including ones not directly implemented in script, but it's roughly informed by whatever the current script evaluation context is |
| 17:54 | <jwalden> | I'm hoping to remove it in favor of the undefined-looking mechanism right now, on the basis of it being so much less invasive and impossible to implement around |
| 17:55 | <jwalden> | arguments for compatibility probably help with that to some extent |
| 17:55 | <jwalden> | rather, arguments that doing so increases compatibility help |
| 17:56 | <Hixie> | http://www.whatwg.org/specs/web-apps/current-work/#dom-document-all |
| 17:56 | <jgraham> | Yes, I imagine that argument would go "ain't no way we will ever get interoperability around crazy bytecode hacks" |
| 17:59 | <jwalden> | that's how the argument *has* gone in the past :-) |
| 17:59 | jwalden | doesn't really think undefined-looking objects are right, but he's pretty sure they're at least less wrong |
| 17:59 | <Hixie> | what the spec says (cited above) is, iirc, the closest i could get to defining what browsers did without going off into the weeds of defining things like bytecode hacks |
| 18:01 | <jwalden> | in any case, it appears that engines (excepting Gecko) don't try to make "all" in document lie |
| 18:02 | <Hixie> | that's consistent with the spec, woot |
| 18:03 | <jwalden> | yep |
| 18:05 | <jwalden> | a little unfortunate maybe, but extending the property-access ECMAScript interface is just about the scariest possible thing a JS engine can do, in terms of making it easier to write bugs, harder to write correct code, harder to implement a spec-compliant engine, etc. |
| 18:06 | jwalden | isn't convinced anyone (including anyone working on SpiderMonkey) is smart enough to do it correctly |
| 18:06 | <jwalden> | well, |
| 18:06 | <jwalden> | "correctly" in the sense of not breaking incidental stuff along the way |
| 18:12 | <jwalden> | I think Gecko still makes document.all only appear in quirks mode, tho |
| 18:12 | <jwalden> | which does help satisfy the "all" in document test |
| 18:13 | <jwalden> | (that is, making it false to dissuade IE-detectors to some extent) |
| 18:24 | <Hixie> | annevk: if a sandboxed iframe has allow-popups and creates a sandboxed popup, should that popup be able to open fullscreen? |
| 18:24 | <Hixie> | annevk: or do i need to have a sandbox flag that stops that except if the attribute allowfullscreen is set? |
| 18:25 | <Hixie> | (this would be the first time the sandboxed flags get affected by things not in the sandbox attribute) |
| 19:19 | Ms2ger | dives into his inbox |
| 19:19 | <Ms2ger> | 1161 unread... |
| 19:48 | <Ms2ger> | Down to a thousand, good time to head off... |
| 21:40 | <annevk> | Hixie: I guess it would need allowfullscreen |
| 21:40 | <annevk> | Hixie: roc might have a more informed opinion |
| 21:40 | <Hixie> | "it"? |
| 21:40 | <annevk> | Hixie: the allow-popups popup |
| 21:41 | <Hixie> | how can a popup have allowfullscreen? |
| 21:42 | <annevk> | the same way it can be sandboxed |
| 21:42 | <Hixie> | by adding a sandbox="" attribute on the iframe or in CSP? |
| 21:43 | <annevk> | I was thinking <iframe> |
| 21:43 | <Hixie> | ah ok |
| 21:43 | <Hixie> | so what i wrote in the bug, basically |
| 21:43 | <Hixie> | propagate a sandbox flag |
| 21:43 | <Hixie> | ok |
| 21:43 | <annevk> | uhuh |
| 22:01 | <brainproxy> | will this patch to the w3c's html5 spec re: link relations be incorporated into the whatwg's living standard? |
| 22:01 | <brainproxy> | https://github.com/w3c/html/commit/954203e085e601122a2df38207bfdd6d852a0963 |
| 22:02 | <Hixie> | no |
| 22:03 | <Hixie> | (it's pointless) |
| 22:03 | <Hixie> | (it's so trivial to register a link type that there's really no reason to use a url, and urls wouldn't work right anyway since the rel="" field is case-insensitive and doesn't do url processing so really they'd just be opaque strings) |
| 22:04 | <Hixie> | (if we wanted to support a non-registered proprietary value space here, we'd likely use java-style reverse-dns names, not urls) |
| 22:05 | <brainproxy> | what if I'm developing an "semantic profile" based API, like Amundsen's ALPS, and I don't want to necessarily register links rels, but at the same time want to generate html that is valid |
| 22:05 | <Hixie> | can you elaborate on that? |
| 22:05 | <Hixie> | what problem are you trying to solve with this? |
| 22:05 | <brainproxy> | Hixie: see http://amundsen.com/hypermedia/profiles/ |
| 22:06 | <brainproxy> | the idea is that you develop a semantic profile, where "rel" vals play an important role |
| 22:06 | <Hixie> | i have no idea what these words mean |
| 22:06 | <Hixie> | well that's not true |
| 22:06 | <Hixie> | i know what the words mean |
| 22:06 | <brainproxy> | the ALPS example is pretty short |
| 22:06 | <Hixie> | but put together in this order they don't add up to anything to me :-) |
| 22:07 | <Hixie> | i meant the words at http://amundsen.com/hypermedia/profiles/ |
| 22:07 | <brainproxy> | the idea is that you document rel, class, name attrs |
| 22:07 | <Hixie> | the closest thing to a problem description there seems to be "The purpose of Application-Level Profile Semantics (ALPS) is to document the application-level semantics of a particular implementation." but i've no idea what that means |
| 22:07 | <brainproxy> | so that clients can be programmed to understand what they mean |
| 22:07 | <brainproxy> | but if you just use any old rel value, it's not valid html5 |
| 22:07 | <Hixie> | can you give me a concrete example of what user-facing problem we're fixing with this? |
| 22:08 | <brainproxy> | it's another way to develop a hypermedia api using "semantic web" notions |
| 22:09 | <zewt> | ("hypermedia"? heh) |
| 22:09 | <Hixie> | what is a "hypermedia api" |
| 22:09 | <brainproxy> | basically term to suggest that the API embraces HATEOAS |
| 22:09 | <Hixie> | "HATEOAS"? |
| 22:09 | <Hixie> | assume i know nothing here, and start from zero :-) |
| 22:10 | <brainproxy> | hyertext/media as the engine of application state |
| 22:10 | <Hixie> | i'm a user, sitting at a computer |
| 22:10 | <Hixie> | what is my computer not doing that you are going to make it do |
| 22:11 | <brainproxy> | well this has more value for developers programming clients and servers based on web tech, and not necessarily joe smith using his browser |
| 22:11 | <Hixie> | well smith using his browser |
| 22:11 | <Hixie> | er |
| 22:12 | <Hixie> | well, developers programming clients and servers based on web tech are still solving joe smith problems, right? |
| 22:12 | <Hixie> | like, they write tools to help them send short messages to their friends |
| 22:12 | <brainproxy> | the idea is that I can give you an entry point to my api, and armed w/ the semantic profile, you can build a client that can use the api w/o having to know some uri generation scheme |
| 22:12 | <Hixie> | or to manage their calendar |
| 22:12 | <Hixie> | or watch porn |
| 22:12 | <Hixie> | or whatever |
| 22:12 | <Hixie> | "uri generation scheme"? |
| 22:13 | <Hixie> | i feel like i'm missing some key context here |
| 22:13 | <Hixie> | what kind of API are we talking about? |
| 22:13 | <brainproxy> | in other words, my documented api revolves around the semantics of the hypermedia and not around documenting how to build up uris to do what you want to do |
| 22:14 | <Hixie> | sounds like your API is very complicated :-) |
| 22:14 | <Hixie> | can't you just have a simple API? |
| 22:14 | <Hixie> | what does your API do? |
| 22:14 | <brainproxy> | well one in particular I'm building acts as a gateway between plain web (just html pages w/ links and forms) and industrial automation systems |
| 22:15 | <brainproxy> | so yes, there's a fair bit of complexity |
| 22:15 | <Hixie> | what is an "industrial automation system"? like, robots and stuff? |
| 22:17 | <brainproxy> | well, in general devices you'd find in a manufacturing environment communicate w/ each other, and w/ centralized systems to keep track of what's going on |
| 22:17 | <brainproxy> | alarms, events, data changes, an so on |
| 22:17 | <Hixie> | ok... |
| 22:17 | <Hixie> | what's that got to do with HTML? |
| 22:18 | <zewt> | things i don't want my factory communicating with: the web |
| 22:18 | <Hixie> | yeah really |
| 22:18 | <Hixie> | air gap that sucker :-P |
| 22:18 | <brainproxy> | using web tech doesn't mean you hang your ass out of the factory's firewally on port 80 |
| 22:18 | <brainproxy> | gimme a break :p |
| 22:19 | <brainproxy> | anyway, what it has to do w/ html; there are standards which govern how these things communicate |
| 22:19 | <Hixie> | please tell me they document binary TCP protocols that have nothing to do with HTTP |
| 22:19 | <brainproxy> | it's more than just wire protocols |
| 22:19 | <brainproxy> | and they do both binary and xml/soap |
| 22:20 | <zewt> | :| |
| 22:20 | <Hixie> | i think i see your problem :-) |
| 22:20 | <brainproxy> | it's all very stateful and not very nice to work with |
| 22:20 | <Hixie> | still don't see how this relates to HTML though |
| 22:20 | <Hixie> | let alone rel="" |
| 22:21 | <brainproxy> | well, i'm working on a gateway that one one side uses http/html as the application layer |
| 22:21 | <brainproxy> | and on the other side uses these industrial protocols |
| 22:21 | <Hixie> | i'll admit i know nothing about this at all, as should be clear from this conversation so far |
| 22:21 | <Hixie> | but that sounds like a terrible idea :-P |
| 22:22 | <brainproxy> | that's okay, you asked, so I was trying to explain it |
| 22:22 | <brainproxy> | i can stop if it's not interesting |
| 22:22 | <Hixie> | it is definitely interesting |
| 22:22 | <brainproxy> | anyway, Amundsen's ALPS thing and a book he wrote inspired me |
| 22:22 | <brainproxy> | but you end up generating a lot of rel values |
| 22:22 | <brainproxy> | which aren't registered |
| 22:22 | <brainproxy> | hence ... the option to use valid but non-registered rels is appealing |
| 22:22 | <Hixie> | what do these rel values mean? |
| 22:23 | <brainproxy> | they allow a client to understand what <a> is pointing to |
| 22:23 | <Hixie> | how, if there's no definiton? |
| 22:23 | <Hixie> | or are these entirely intended for proprietary use and not public web use? |
| 22:24 | <brainproxy> | there is, you document it, but it's not necessarily apt for publication in microformats |
| 22:24 | <Hixie> | i'm trying to work out what the consumption software for this is |
| 22:24 | <Hixie> | is this something that you would ever try to read from an unrelated third party? |
| 22:24 | <Hixie> | or is this all for use within a closed circle of people? |
| 22:26 | <brainproxy> | unrelated third-parties could leverage the api to communicate w/ each other's systems |
| 22:26 | <Hixie> | on the web? |
| 22:27 | <brainproxy> | well across the global Internet yes, or intra-enterprise, |
| 22:27 | <brainproxy> | and/or you could have small devices sporting a lightweight http/html stack use it to tie into the heavier-duty stuff |
| 22:28 | <Hixie> | it sounds to me like the solution to this is to define a specification for "Industrial API HTML definitions" or something, which introduces a new attribute like "api-rel" or whatever, which you can use for this purpose |
| 22:29 | <Hixie> | it doesn't sound like rel="" is the right thing at all |
| 22:29 | <brainproxy> | well no i disagree because rel conveys the meaning perfectly |
| 22:30 | <Hixie> | honestly it doesn't sound like HTML is the right thing at all, but I could see wanting to reuse it so that the same page could open both in a web browser and in this magical api software |
| 22:30 | <brainproxy> | and if someone wants to know what the heck rel="http://mycompany.com/rels/rel-1" means then they can look it up |
| 22:30 | <brainproxy> | assuming I publishd documentation at the URI |
| 22:31 | <brainproxy> | it's not magical, you can write stuff like this easily with python or node.js or whatever |
| 22:31 | <zewt> | (why would you put a url in rel? that's totally wrong) |
| 22:31 | <brainproxy> | zewt: because that's what RFC 5988 recommendes |
| 22:31 | <brainproxy> | and the w3c editors saw the wisdom in it |
| 22:31 | <brainproxy> | and patched their spec |
| 22:31 | <Hixie> | doing things because an RFC recommends it is the worst possible reason to do something |
| 22:32 | <Hixie> | and the w3c editors didn't see the wisdom in it |
| 22:32 | <brainproxy> | Hixie: well if it's a bone-headed recommendation sure :) |
| 22:32 | <Hixie> | the w3c html chairs saw the wisdom |
| 22:32 | <Hixie> | and some w3c editors thought itwas so dumb they quit as editors :_) |
| 22:32 | <brainproxy> | so ... if want to know what rel="registered-rel" means |
| 22:32 | <brainproxy> | I can go look it up on microformats |
| 22:32 | <Hixie> | google [rel registered-rel] |
| 22:33 | <brainproxy> | or IANA i guess |
| 22:33 | <brainproxy> | but anyway, why is it bad to have the option to specify rel="http://mycompany.com/api/rels/rel-1" |
| 22:33 | <brainproxy> | and then joe blow client app developer can go look it up |
| 22:33 | <brainproxy> | on my wiki, or whatever that uri points him to |
| 22:34 | <Hixie> | what's bad is defining an API using rel="" :-) |
| 22:34 | <brainproxy> | nah, it's brililant |
| 22:34 | <brainproxy> | :D |
| 22:35 | <brainproxy> | and you don't use just rel of course |
| 22:35 | <brainproxy> | rel, class, name... |
| 22:35 | <Hixie> | o_O |
| 22:35 | <Hixie> | i really am at a loss |
| 22:35 | <Hixie> | why would anyone want to do this with HTML |
| 22:35 | <brainproxy> | read the ALPS thing, and here's an example |
| 22:35 | <Hixie> | i did read the ALPS thing |
| 22:35 | <Hixie> | it broke my buzzword detector |
| 22:35 | <Hixie> | and i didn't understand a word of it |
| 22:36 | <brainproxy> | https://github.com/mamund/Building-Hypermedia-APIs/tree/master/nodejs/microblog |
| 22:36 | <Hixie> | it was as bad as some of the Semantic Web stuff |
| 22:36 | <brainproxy> | that's an implemntation of Amundsen's ALPS, by the author, using nodejs |
| 22:37 | <Hixie> | what does it do? |
| 22:37 | <brainproxy> | it's a microblog which implements his semantic pofile |
| 22:37 | <brainproxy> | outlined in that document |
| 22:37 | <Hixie> | but what does it _do_? |
| 22:37 | <brainproxy> | it's a microblog |
| 22:37 | <zewt> | (what the heck is a microblog, aren't blogs micro by definition) |
| 22:37 | <brainproxy> | like Twitter, it's just an example |
| 22:38 | <brainproxy> | and this is a js bot which consumes the api |
| 22:38 | <brainproxy> | https://github.com/mamund/Building-Hypermedia-APIs/blob/master/nodejs/microblog/public/javascripts/mbclient.js |
| 22:38 | <Hixie> | zewt: microblog is basically like IRC but for hipsters :-) |
| 22:38 | <Hixie> | brainproxy: i don't understand why this is better than just having an API that you call directly |
| 22:38 | <Hixie> | brainproxy: it seems like a massive amount of extra work for no benefit |
| 22:39 | <brainproxy> | what do you mean by API you call directly? |
| 22:39 | <Hixie> | basically it's just an extra level of indirection |
| 22:39 | <Hixie> | instead of having to hardcode the API, you hardcode the values in rel="" etc, look up the API, and call the API |
| 22:39 | <brainproxy> | you mean by documenting URI construction rules? |
| 22:39 | <Hixie> | why not just call the API |
| 22:39 | <Hixie> | well I wouldn't use the term "URI construction rules", but sure |
| 22:40 | <brainproxy> | well in this manner two different implementations could use completely different URI schemes |
| 22:40 | <Hixie> | personally i would do all these APIs over WebSocket these days |
| 22:40 | <brainproxy> | and it would work the same |
| 22:40 | <Hixie> | they could use completely different URI schemes but would still have to use identical rel="" etc schemes, right? |
| 22:40 | <brainproxy> | yes |
| 22:40 | <Hixie> | so where's the benefit |
| 22:41 | <brainproxy> | :/ |
| 22:41 | <Hixie> | why not just define a little JSON blob that defines the mapping to the "URI construction rules" |
| 22:41 | <Hixie> | if you want to abstract those out |
| 22:41 | <Hixie> | (and why not just screw URLs entirely, and just document and implement a microblogging WebSocket protocol) |
| 22:41 | <Hixie> | (then anyone who wants to microblog can just use that protocol, regardless of the implementation) |
| 22:41 | <brainproxy> | websockets are nice for some things, but.... |
| 22:42 | <Hixie> | things like microblogging APIs? :-) |
| 22:42 | <brainproxy> | websockets are stateful |
| 22:42 | <brainproxy> | for one |
| 22:42 | <brainproxy> | different paradigm |
| 22:44 | <brainproxy> | anyway, i'd like to see the option to use absolute URIs as rels, per rfc 5988 and the direction the w3c is going ... guess maybe whatwg isn't going that direction |
| 22:44 | <brainproxy> | got to get back to work, but thanks for chatting w/ me about it :) |