01:20 | <MikeSmith> | https://twitter.com/awesomekling/status/588102855019495424 |
01:20 | <MikeSmith> | "DOM attributes on the prototype chain? WebKit did that over a year ago, jeez. We just had to keep some as own properties due to compat." |
01:21 | <MikeSmith> | last time I ran some web-platform-tests interface/WebIDL tests, I didn't seem to find that to be true for the interfaces I was looking at |
01:21 | <MikeSmith> | WebKit still seemed to be failing on a lot of those interface tests |
01:30 | <TabAtkins> | MikeSmith: "some" is technically compatible with "most". It just means "not all". ^_^ |
01:30 | <MikeSmith> | heh |
01:32 | <MikeSmith> | TabAtkins: sometimes I think you would make a good lawyer 😀 |
01:32 | <MikeSmith> | or at least you could play one on TV |
01:34 | <TabAtkins> | Technically correct is the best kind of correct. |
01:36 | <MikeSmith> | sitcom pilot: "Texan Web developer relocates to wild-and-crazy San Franciso in the 2010s, moonlights as lawyer, fun ensues" |
01:37 | <TabAtkins> | I'd watch it. |
01:37 | <TabAtkins> | And star in it. |
01:37 | <TabAtkins> | Wait no, I need someone else to be me. |
01:39 | <MikeSmith> | yes! |
01:39 | <MikeSmith> | now we got to think about who |
01:39 | <TabAtkins> | Elijah Wood. |
01:39 | <MikeSmith> | I could play you, then you could play me in my sitcom |
01:39 | <MikeSmith> | heh |
01:40 | <MikeSmith> | yeah, the *young* Elijah Wood |
01:40 | TabAtkins | is still hung up on when cute senior girls told freshman-Tab that he looked like a young Elijah Wood. |
01:40 | <MikeSmith> | he's be the 12-year-old version of you |
01:40 | <TabAtkins> | Yeah. |
01:41 | <TabAtkins> | That's actually just right for my age at the time. |
01:41 | <MikeSmith> | like Doogie Howser, except a webdeveloper/lawyer instead of a doctor |
01:42 | <MikeSmith> | I want Werner Herzog to play me |
01:44 | <MikeSmith> | and in my sitcom I hang out with Werner Herzog but he's played by Zach Galifianakis |
01:44 | <TabAtkins> | I like this plan. |
01:45 | <TabAtkins> | I'll take Zach as my little brother in my sitcom, too. |
01:45 | <MikeSmith> | that would be great |
01:45 | <MikeSmith> | we could have some tie-ins where we meet |
01:49 | <MikeSmith> | anyway, it's nice to have another career to fall back on |
01:50 | GPHemsley | wants second chair |
02:06 | <MikeSmith> | anyway results of tests like http://w3c-test.org/webstorage/idlharness.html and http://w3c-test.org/geolocation-API/interfaces.html seem to indicate WebKit has a lot of properties they need to move still |
02:11 | <MikeSmith> | makes me wonder what properties they did actually move |
02:33 | <MikeSmith> | speaking of wonders, they never cease: IETF has moved to using Bootstrap for their site http://tracker.tools.ietf.org/release/about |
03:14 | <MikeSmith> | does anybody remember what's holding us up from adding "Copy to clipboard" support to the platform? |
03:15 | <MikeSmith> | I mean to enable the kind of thing in the github UI where it has that "Copy to clipboard" button |
03:15 | <MikeSmith> | e.g., on a repo home page like https://github.com/w3c/web-platform-tests |
03:15 | <MikeSmith> | the "clone URL" field |
04:50 | <caitp-> | does the File api suggest upper bounds on the byte size of a file, to be able to read it? |
04:50 | <caitp-> | chrome silently failing to read a1 gig file as text was hard to track down today :l |
05:46 | <JakeA> | MikeSmith: I think we just added it to Canary |
06:04 | <MikeSmith> | JakeA: ah cool |
06:30 | <JakeA> | MikeSmith: I believe it's document.execCommand('copy') from an interaction event |
06:44 | <MikeSmith> | JakeA: thanks, this is in the Clipboard Ops spec? |
06:44 | MikeSmith | looks |
06:45 | <MikeSmith> | oh that wouldn't be in the clipboard ops spec I guess |
06:52 | <MikeSmith> | so, still wondering what spec they're implementing from |
06:52 | <MikeSmith> | I guess https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html but not sure |
06:52 | <MikeSmith> | botie, inform darobin what's the current spec for document.execCommand('copy') etc |
06:54 | <MikeSmith> | botie, inform darobin what's the current spec for document.execCommand('copy') etc |
06:54 | <botie> | will do |
07:25 | <zcorpan> | can anyone come up with a test case to check https://www.w3.org/Bugs/Public/show_bug.cgi?id=28433 ? |
08:00 | <botie> | darobin, at 2015-04-15 06:54 UTC, MikeSmith said: what's the current spec for document.execCommand('copy') etc |
08:05 | <darobin> | MikeSmith: last I checked you still needed a mix of https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html and http://dev.w3.org/2006/webapi/clipops/clipops.html |
08:07 | <MikeSmith> | darobin: ok |
08:07 | <darobin> | MikeSmith: there are proposals for intention events to handle that, but nothing actually real |
08:08 | MikeSmith | wonders who implemented this is blink |
08:08 | <darobin> | I don't know what the implementation status for clipops is in general |
08:08 | <darobin> | execCommand in Blink I would expect dates back to WebKit |
08:08 | <darobin> | unless it's been redone somehow |
08:08 | <MikeSmith> | darobin: JakeA said they landed it only recently |
08:09 | <darobin> | oh? |
08:09 | <darobin> | hmmm, I guess that might make sense actually, people still overwhelmingly use Flash for copying |
08:09 | <MikeSmith> | Yeah |
08:09 | <darobin> | or maybe they landed support for it outside of contentEditable? |
08:09 | <MikeSmith> | dunno |
08:36 | <annevk> | wanderview: thanks so much for all the triaging btw |
08:36 | <annevk> | wanderview: we really need a script to go from GitHub issue to file a bug on browsers to fix something |
08:43 | <jgraham> | gsnedders: I don't know what you mean? |
09:49 | JakeA | stalls for time on the clipboard questions as there's an article coming shortly |
09:49 | <annevk> | MikeSmith: it should be part of the clipboard spec |
09:49 | <JakeA> | http://updates.html5rocks.com/2015/04/cut-and-copy-commands |
09:49 | <JakeA> | agreed |
09:51 | <annevk> | JakeA: we're tracking this in https://bugzilla.mozilla.org/show_bug.cgi?id=1151429 btw |
10:50 | <MikeSmith> | does iOS have anything like Chrome Native Messaging? |
10:51 | <MikeSmith> | https://developer.chrome.com/extensions/nativeMessaging |
11:16 | <gsnedders> | jgraham: https://github.com/html5lib/html5lib-python/issues/182 — do we merge this in after we have xfails working and a seemingly clean tree or do we wait till everything's done? |
11:16 | <gsnedders> | jgraham: I would rather merge once the tree is green agai |
11:16 | <gsnedders> | *again |
11:22 | <jgraham> | gsnedders: Do you mean "do we finish this before merging anything else"? |
11:28 | <gsnedders> | jgraham: I'd rather that, as I've said before, but I felt like I lost that argument already. I mean do we finish the subtasks of that completely before merging it or do we just finish those needed to get the tree green? |
11:31 | <jgraham> | gsnedders: Merge the smallest possible thing at a time seems sensible |
11:31 | <gsnedders> | jgraham: basically the first 90% of the work to get rid of xfails is now done |
11:34 | <annevk> | JakeA: wanderview: in https://github.com/whatwg/fetch/issues/43#issuecomment-93176616 we also came up with the need for making a URL from a Response |
13:22 | <wanderview> | annevk: what exactly does that mean? the Response.url? or a URL mapping to the underlying source of that Response (like the Cache API file on disk)? |
13:24 | <annevk> | wanderview: the latter |
13:24 | <annevk> | wanderview: e.g. <img src=response:identifier> or some such |
13:25 | <wanderview> | annevk: does this effectively mean we need a cache:// scheme or something? or is it just a non-human-readable id? |
13:25 | <wanderview> | annevk: the life cycle of the URL is a bit scary to me too... if they forget to call revokeObjectUrl()... |
13:26 | <annevk> | wanderview: non-human-readable |
13:26 | <annevk> | wanderview: yeah, we'd need to make it a one-time thing |
13:26 | <annevk> | wanderview: that streams can only be read once helps here of course |
13:26 | <wanderview> | annevk: well, what if its never read from? |
13:26 | <wanderview> | annevk: does reading from the URL drain the Response? |
13:26 | <wanderview> | or is the Response "drained" by creating a URL |
13:26 | <annevk> | wanderview: yeah |
13:27 | <wanderview> | I guess I'm asking if creating the URL is effetively a clone |
13:27 | <wanderview> | ok |
13:27 | <wanderview> | annevk: I think thats easier to implement, then |
13:27 | <annevk> | wanderview: I don't think the URL should clone |
13:27 | <annevk> | wanderview: if you want a clone, use .clone() first |
13:27 | <annevk> | wanderview: that's the motto |
13:27 | <wanderview> | we can do this all in the child process without any extra hooks into the back end |
13:27 | <annevk> | or party line |
13:28 | <annevk> | I more optimal API would be <img>.srcObject = Response, however, we don't have srcObject on all possible things we want to feed Responses to and for some cases such as CSS it's a bit unlikely |
13:28 | <wanderview> | annevk: why do this as a function wrapping Response? why not have a Response.drainToUrl() or something |
13:29 | <wanderview> | hmm |
13:29 | <wanderview> | annevk: I guess that half of it (setting it as a .src on arbitrary attributes) may be a lot harder... not sure what we support there |
13:29 | <zewt> | (does a "one-time url" make sense in general, given that urls today can normally be read multiple times?) |
13:29 | <zewt> | (assuming GET, which is all you have with a url in isolation) |
13:31 | <annevk> | zewt: if you have a parser hook one-time URL makes some sense still I think |
13:32 | <zewt> | but typically that's logically referred to a resource, not an "open unseekable file handle to a resource" or something along those lines |
13:32 | <zewt> | i suspect it'll work most of the time anyway, just curious about the edge cases |
13:32 | <wanderview> | I could see people getting bitten by it |
13:32 | <annevk> | zewt: it doesn't seem different from blob to me, other than Response having headers that might be useful |
13:33 | <wanderview> | var url = response.drainToUrl(); headerImage.src = url; otherImage.src = url; |
13:33 | <zewt> | eg. browsers today could discard an image entirely if it's been offscreen for a while, and then redownload it later when needed |
13:33 | <annevk> | wanderview: the first wins |
13:33 | <wanderview> | annevk: blob object URLs are reusable, no? |
13:33 | <wanderview> | I don't think the consumer of a URL should have to know what created it |
13:34 | <annevk> | wanderview: depends on how you create them |
13:34 | <zewt> | i guess if the url logically caches the whole response it'd basically be like a blob |
13:35 | <wanderview> | annevk: so I can't write a generic function loadImageInMultiplePlaces(url) because someone might hand me some strange one-time-use URL? sounds like bad ergonomics to me |
13:35 | <zewt> | er, other than the one-time thing |
13:35 | <wanderview> | annevk: we have no way to inspect if a URL is drained, etc |
13:35 | <zewt> | wanderview: that was my objection to the old microsoft proposal for auto-revoking blobs, iirc |
13:35 | <annevk> | wanderview: yeah, server could do the same technically |
13:35 | <wanderview> | annevk: I think URL might need to imply .clone() for every time its read |
13:35 | <zewt> | or one of them |
13:36 | <annevk> | wanderview: I don't really see why |
13:36 | <wanderview> | if there is precedent, I guess I don't object... just reinforces my existing hatred of createObjectUrl/revokeObjectUrl |
13:36 | <zewt> | that sounds not great but probably not a dealbreaker |
13:36 | <zewt> | obviously needs to not repeat the revoke* mistake |
13:36 | <annevk> | wanderview: srcObject = Response would be better |
13:37 | <annevk> | no doubt about that |
13:37 | <annevk> | zewt: right |
13:37 | <zewt> | err |
13:37 | <zewt> | <wanderview> annevk: the life cycle of the URL is a bit scary to me too... if they forget to call revokeObjectUrl()... |
13:37 | <zewt> | ^ does this repeat the revoke* mistake? heh |
13:37 | <annevk> | zewt: there's no proposal for a method that works with Response yet |
13:37 | <wanderview> | zewt: my experience with working on memory problems in firefoxos gallery app and others... people forget to revokeObjectUrl() all the time |
13:37 | <annevk> | zewt: but it would definitely not have a revoke thing going on |
13:38 | <wanderview> | and it creates huge memory pressure when the url is representing an image |
13:38 | <zewt> | wanderview: yeah, that was a huge screwup with object urls, javascript != manual resource management |
13:38 | <zewt> | annevk: k |
13:38 | <wanderview> | zewt: yea... Response drains after first use... so that it better... unless we need to mash it into the manual revokeObjectUrl() scheme |
13:38 | <zewt> | wanderview: well, blobs are intended to be able to be written to disk even if there's an open url to them |
13:39 | <zewt> | (still a leak if people don't revoke, of course, but a disk space leak instead of memory) |
13:39 | <wanderview> | I guess gecko only gives you a file backed blob if you explicitly write it to IDB or something, and then get it back out |
13:39 | <zewt> | that sounds like an implementation shortcoming rather than blob's |
13:40 | <zewt> | only as far as the memory thing |
13:40 | <zewt> | being completely async is one thing blob got right (well, except for the size and mime type, which it screwed up and made sync) |
13:40 | <wanderview> | zewt: you still have issues with "I spent all the time to read this huge thing from disk... do I waste time reading again later or waste memory holding it in memory" its a tradeoff thats hard to always get right at the browser |
13:42 | <zewt> | wanderview: well the idea is that if the data is on disk in the first place, a blob is just a pointer to it and you'd never actually need to read the whole thing (which i know has plenty of other complexities, in particular if the data might change out from under you) |
13:43 | <zewt> | excess flood of excess flood |
13:43 | <annevk> | zewt: feedback on https://wiki.whatwg.org/wiki/Storage is welcome too btw |
13:44 | <zewt> | more unreadable promise ugliness :( |
13:46 | <zewt> | headed to work, will take a look later |
14:02 | <MikeSmith> | https://twitter.com/CraigMcPheat/status/588335648987308032 |
14:02 | <MikeSmith> | sounds like a fun place to work |
14:03 | <MikeSmith> | I wonder if people in his office are also blocked from just using the real Web from their own smartphones |
14:04 | <MikeSmith> | and what is a "virtualised Chrome" |
14:04 | <JakeA> | annevk: the only blocked response headers are the cookie ones right? Chrome isn't giving me things like the "date" header for a CORS response, sound like a bug? |
14:05 | <jgraham> | annevk: It's not clear to me why the default box is atomic |
14:05 | <annevk> | JakeA: no |
14:05 | <annevk> | JakeA: did you use access-control-expose-headers? |
14:05 | <annevk> | jgraham: what else would it be? |
14:06 | <wanderview> | MikeSmith: probably a virtual desktop thin client |
14:06 | <JakeA> | omg, sorry about that annevk. You're right of course |
14:06 | <annevk> | no worries |
14:06 | <jgraham> | annevk: Well that introduces the requirement that all of indexeddb, cookies, etc. are cleared together. I don't think any requirement like that exists at present |
14:07 | <jgraham> | It seems like each is a seperate atomic box (although the document should be clear that "cleared" means "cleared through UA", not "cleared through DOM APIs") |
14:09 | <jgraham> | "global quota" seems like it shouldn't be explained as "free space - constant" unless that's really the only allowed model |
14:11 | <wanderview> | jgraham: I think pretty much everyone we've talked to favors clearing everything or nothing (aka atomic) to avoid half-broken pages |
14:11 | <wanderview> | unless there is an explicit way to signal "this part can get cleared without the rest" |
14:11 | <jgraham> | wanderview: That isn't how UAs work today |
14:11 | <wanderview> | jgraham: browsers today don't work offline... we're trying to fix that? |
14:13 | <jgraham> | My point is that a) people will regard this as a functional regression "what do you mean I can't delete a cookie from a site unless I clear all the other data?!", and is likely to interfere with troubleshooting instructions for some sites |
14:14 | <wanderview> | jgraham: who said you can't delete a cookie? its just saying the browser can't delete the cookie behind your back without reseting the storage for the whole origin |
14:14 | <jgraham> | wanderview: Is it? |
14:15 | <jgraham> | In that case it needs to be phrased to be much clearer |
14:15 | <wanderview> | jgraham: yes... this is about what the browser can do when the system is under storage-pressure |
14:15 | <wanderview> | annevk: ^^^ |
14:16 | <jgraham> | wanderview: I assumed that "cleared" would include any browser-initiated clearing including via the UI |
14:16 | <wanderview> | I guess thats an interesting case |
14:17 | <wanderview> | jgraham: I guess I would question if most users understand the difference between "cookies" and other data... for example, we are moving to block things like IDB in third-party iframes if the "disallow third-party cookies" pref is set |
14:17 | <wanderview> | we == gecko |
14:18 | <jgraham> | wanderview: Well I agree that some users don't. But I can still clear a single cookie from the Fx UI |
14:18 | <wanderview> | jgraham: I imagine things like that and devtools storage inspector (does it allow modifying? it could...) would still work |
14:19 | <jgraham> | Yeah, so it should be clear that these "atomic" boxes are not really atomic in general, but only according to how they react to storage pressure |
14:20 | <wanderview> | jgraham: the intention is that browsers know they can treat them as atomic... but things like devtools allow you to break the rules... just like changing CSS or js via devtools on a site is not "spec'd" or "normal" |
14:20 | <Domenic> | +1 |
14:21 | <Domenic> | "atomic" is too strong of a guarantee |
14:21 | <Domenic> | call it something like "lives and dies together" :P |
14:24 | <jgraham> | wanderview: They are also not "atomic" from the point of view of creation. You can add or remove data from an "atomic |
14:24 | <jgraham> | " box using APIs |
14:24 | <wanderview> | I'm not really interested bikeshedding the name |
14:24 | <jgraham> | It's really only under storage pressure that they act as atoms |
14:24 | <jgraham> | OK, but I |
14:24 | <jgraham> | 'm just explaining why the wiki wasn't clear to me |
14:25 | <wanderview> | jgraham: sure... and that is good feedback... I think annevk will see this and respond eventually |
14:36 | <Domenic> | I think there are people in this channel very interested in bikeshedding the name :) |
14:43 | annevk | wonders if the bikeshedding has concluded |
14:44 | <annevk> | jgraham: if you have a better term I'd be happy to update the page, though you can too :-) |
14:44 | <jgraham> | Well just trampling over someone else's proposal seems wrong :) |
14:45 | <jgraham> | (I'm not sure I have a better term, but someone might. Or it might just need better explaination) |
14:49 | <annevk> | "atomic under pressure" (could also be a new album title) |
14:54 | <annevk> | It's somewhat surprising to me we still offer control over individual cookies |
14:57 | <annevk> | If it was up to me we would have a panel called "Sites" that gives you an overview of sites (ordered by frecency, no typo) where you can get/set permissions and clear storage |
15:00 | <annevk> | Domenic: are you taking time to review https://w3c.github.io/mediacapture-main/ at some point? |
15:00 | <Domenic> | annevk: it was on my to do list but keeps slipping downward |
15:01 | <annevk> | Domenic: they'll play process games on us if we don't do it by May 15 |
15:01 | <annevk> | although they might anyway since I think most of this has shipped |
15:01 | <Domenic> | Hmm |
16:32 | <TabAtkins> | Domenic: "life-bonded" |
16:37 | <TabAtkins> | How do people query that webdevdata these days? Is it still "download the zip and run grep", or is there something else? |
17:25 | annevk | typically asks zcorpan |
17:38 | <TabAtkins> | Well yeah, but that's not super-scalable. ^_^ |
19:11 | <TabAtkins> | annevk: Finishing up DOM right now. I'll have a PR for you this afternoon. |
19:31 | <TabAtkins> | annevk: MouseEvent is no longer defined by UI Events, if I follow the reference in your bibliography. Where should I point this link? |
19:33 | <Ms2ger> | Should be in UI Events |
19:34 | <TabAtkins> | The ED seems super stripped down: https://dvcs.w3.org/hg/d4e/raw-file/tip/source_respec.htm |
19:34 | <Ms2ger> | https://dvcs.w3.org/hg/dom3events/raw-file/tip/html/DOM3-Events.html#interface-MouseEvent |
19:34 | <TabAtkins> | Ah, the biblio ref in DOM pointed to d4e. |
19:36 | <TabAtkins> | That url depresses me, though. |
20:37 | <TabAtkins> | annevk: And DOM is done. Could use some review, but the changes are extensive enough that doing so will be difficult. I did my best to make sure things linked correctly, though. |
20:38 | <TabAtkins> | In particular, everything that linked cross-document, I noted down as I discovered them. After conversion, I verified that they were all failing to link (so they weren't getting grabbed by a local link), and manually specified their target in the anchors block. |