01:07 | <TabAtkins> | Domenic: You want "all: default;", which I need to go spec. |
01:08 | <TabAtkins> | Which means "pretend only the UA stylesheet exists". |
01:10 | <Domenic> | TabAtkins: meh, what I want is more like "all: like-ye-old-reset-stylesheet". i.e. no margins or padding or font size adjustment. |
01:11 | <TabAtkins> | You're not getting that, because it's opinionated in a weird way. |
01:11 | <TabAtkins> | "do what the UA stylesheet does" is simple and easy to talk about, and has a useful purpose in returning you to the "clean slate" that you started the page with. |
01:11 | <Domenic> | yeah, I agree. |
01:12 | <Domenic> | I was just sold for a long time that all: reset was going to replace my reset stylesheets, by parties unknown. it turned out to be false. |
01:12 | <TabAtkins> | Depends on what your reset stylesheets do. |
01:12 | <TabAtkins> | all: default; will replace your normalize.css. ^_^ |
03:09 | <JonathanNeal> | Death to normalize.css! And anyone who ever contributed to it. |
03:13 | <caitp> | well that seems a bit harsh |
03:39 | <roc> | gsnedders: ask on mozilla IRC instead? |
03:46 | <roc> | I mean, #developers, not #firefox |
03:46 | <roc> | or try it in a clean profile |
04:46 | <JonathanNeal> | caitp: it was a joke |
07:45 | <karlcow> | CSSOM and resize https://lists.w3.org/Archives/Public/public-webapps/2009AprJun/1061.html |
08:48 | <annevk> | Glenn Adams still hasn't fixed the CSSOM bugs? Shocker |
10:03 | <zcorpan> | didn't ie drop resize on elements recently? |
10:03 | <zcorpan> | seems like a good time to spec it |
10:06 | <annevk> | hah |
10:07 | <Ms2ger> | Morning zcorpan |
10:07 | <zcorpan> | good morning |
10:08 | <Ms2ger> | Your chocolate should be underway today |
10:08 | <Ms2ger> | In the meantime, want to do some reviews? :) |
10:08 | <zcorpan> | ooooh |
10:23 | <jgraham> | Ms2ger: Well played :) |
11:55 | <JakeA> | TabAtkins: what do you think of a :tab-focus pseudo to specifically target keyboard focuses? |
11:56 | <JakeA> | I find myself calling .blur() on something after mouse/touch to avoid buttons looking "stuck" |
11:56 | <JakeA> | which is obviously bad for a11y |
12:16 | <annevk> | JakeA: are you solving a CSS problem with blur()? |
12:16 | <annevk> | JakeA: isn't this why CSS gives you control over outline? |
12:20 | <JakeA> | annevk: I want my buttons/links to have a focus style so they can be tabbed through, but when they're clicked I don't want the button to appear "stuck" due to the focus style |
12:22 | <JakeA> | annevk: Firefox doesn't focus buttons on click, but it does for tabindex elements & links. Chrome focuses anything on click that can receive focus. Safari doesn't focus links on click but will focus tabindex elements… it's a bit of a mess |
12:23 | <annevk> | UI input is a topic standards cover very poorly |
12:23 | <JakeA> | Tbh, I like the model of focus-on-click, because I'd expect the next tab to go to the tabbable element after the one I clicked, but the styling gets in the way |
12:23 | <annevk> | but thanks for explaining, :tab-focus makes sense |
14:14 | <annevk> | JakeA: what are the chances of Google following if we shipped proposal 3 from https://github.com/slightlyoff/ServiceWorker/issues/566 ? |
14:15 | <annevk> | JakeA: I sort of stopped caring about this when nobody wanted to give up scopes, but others do so I'll proxy |
14:18 | <JakeA> | annevk: I thought the conclusion of our meeting was that multiple scopes aren't needed, but it'd be nice to be able to change scopes in the activate event? |
14:19 | <annevk> | JakeA: the meeting summary suggests multiple scopes was very much on topic? |
14:20 | <JakeA> | annevk: yeah, my misremembering, sorry. I think we're still lacking good example cases where this is needed, but at least we have a way to add it without breaking compat |
14:21 | <annevk> | JakeA: so changing scopes would probably be okay as is? But multiple scopes would be more contentious? |
14:23 | <annevk> | And opting into fetch events seems contentious as well... |
14:23 | <annevk> | Sorry, opting out |
14:23 | <JakeA> | annevk: I think multiple scopes are the most contentious bit |
14:23 | <annevk> | ta |
14:24 | <JakeA> | which bit are Moz most interested in, or is it all of it? |
14:24 | <annevk> | I'm not sure, Ehsan asked about proposal #3 so I'll let you know when I know more |
14:24 | <annevk> | Some of Moz are interested in dropping all scopes still :p |
14:25 | <annevk> | (but they have also admitted defeat, don't really want to scare anyone) |
14:27 | <JakeA> | yeah, scopes have been really useful when it came to hosting on things like github & local servers |
14:27 | <annevk> | I don't disagree with that, but they're tacked on rather than a boundary which is the part that's wrong |
14:34 | <JakeA> | annevk: have you seen https://github.com/slightlyoff/StorageDurability/blob/master/explainer.md before? Who'd be good to get involved at Mozilla? We need something to achieve storage persistence, and I quite like the simplicity of this one |
14:47 | <annevk> | JakeA: probably the same people as SW |
14:49 | <annevk> | JakeA: the "What's All This About?" is rather Chrome-centric |
14:49 | <annevk> | JakeA: nobody else cared about that filesystem API and I'm not sure what it has to do with storage durability... |
14:51 | <JakeA> | annevk: yeah, I'm not sure what the onsync thing is either |
14:52 | <JakeA> | I'd rather it kept to one method |
15:34 | <annevk> | JakeA: is this replacing the evicted stuff? |
15:37 | <JakeA> | annevk: I still think those are useful, but we sorely need storage persistence, so I'm willing to move anything more complicated to "v2" |
15:38 | <wanderview> | annevk: you mean the onevicted event in SWs? I seem to recall some issue about that |
15:38 | <annevk> | I still think we should just provide everyone persistent storage |
15:39 | <annevk> | Plus heuristics, plus some kind of eviction... |
15:39 | <JakeA> | annevk: it's tough to put the user in charge of "uninstalling" things they didn't "install" |
15:39 | <annevk> | JakeA: this SD proposal also seems to assume the quota API is a thing we want |
15:39 | <wanderview> | I guess the hard part is determining who might be a bad actor in the system... who is using an unfair share of disk space blocking others from using it |
15:39 | <annevk> | JakeA: perhaps it's only really persistent if you bookmark |
15:40 | <wanderview> | annevk: do the specs have the concept of bookmarks, or is that a UA concept? |
15:40 | <JakeA> | annevk: I think bookmarking can auto-grant the permission, but I still think we need the permission |
15:41 | <wanderview> | JakeA: reading your comment about `navigator.requestStorageDurability()` I wondered... wouldn't everyone just call this? why wouldn't they call it? |
15:41 | <annevk> | wanderview: it would be a UA concept |
15:41 | <wanderview> | is the idea that it creates a doorhanger or something? |
15:41 | <JakeA> | The idea is to allow a web user to safely cache 10gb of movies for a flight, without visiting another origin as they board the plane which puts their system under pressure and the browser throws everything away |
15:42 | <JakeA> | wanderview: it would show up a permission request |
15:42 | <annevk> | So many prompt designs :-( |
15:42 | <wanderview> | yea... if every page wants this for its 100kb of "essential" data... thats gonna be a lot of prompts |
15:42 | <annevk> | The user will have to click through an enormous amount of dialogs this way |
15:43 | <wanderview> | what about the call taking a size limit... durable up to this amount... UA can auto-grant permission for sizes less than X |
15:43 | <annevk> | notifications / storage / push / background / geolocation / ... |
15:43 | <annevk> | wanderview: well, UAs can always have better heuristics I suppose |
15:43 | <JakeA> | wanderview: that's the quota API isn't it? I thought the feeling was that size is too difficult to communicate to users |
15:43 | <annevk> | wanderview: I think we've lost the moment we ask the user for a specific amount of storage |
15:44 | <wanderview> | hmm |
15:44 | <JakeA> | annevk: Chrome already rolls notification & push into one permission request |
15:44 | <wanderview> | what about making all storage up to X durable by default... this API request is just for storage above X and does trigger a prompt |
15:44 | <JakeA> | if you request push, you get notificaitons |
15:44 | <wanderview> | so vast majority of websites don't need it |
15:45 | <wanderview> | maybe this is already whats there |
15:46 | <annevk> | JakeA: but Chrome has a distinct one for background push? |
15:46 | <annevk> | JakeA: (with background above I meant sync) |
15:46 | <JakeA> | annevk: hasn't been worked out yet |
15:46 | <annevk> | JakeA: right... |
15:47 | <annevk> | wanderview: we already have a quote of 10MiB or some such per eTLD+1 |
15:47 | <annevk> | wanderview: quota |
15:47 | <annevk> | wanderview: and I think Firefox at some point had a prompt design |
15:47 | <wanderview> | annevk: in a spec or gecko? |
15:47 | <wanderview> | this needs to be consistent across browsers so web developers can design sane offline apps |
15:47 | <wanderview> | it seems to me |
15:48 | <annevk> | wanderview: https://html.spec.whatwg.org/#disk-space-2 |
15:48 | <JakeA> | annevk: it has/had an appcache prompt |
15:48 | <annevk> | JakeA: well that too, but I thought there was something around storage |
15:48 | <wanderview> | annevk: we have persistent, temp, and default storage... the spec stuff I've seen does not have the concept of "default" storage |
15:48 | <annevk> | or maybe that was Opera... hmm |
15:49 | <annevk> | HTML has "A mostly arbitrary limit of five megabytes per origin is suggested. Implementation feedback is welcome and will be used to update this suggestion in the future." |
15:49 | <wanderview> | yea |
15:49 | <JakeA> | As a user, if my device comes under storage pressure, I wouldn't expect to see things in the disk-usage menu that I hadn't 'added' somehow |
15:49 | <wanderview> | fun that its uncompressed size :-) I've been compressing in Cache |
15:51 | <wanderview> | also... uncompressed size for quota... just seems terrible for the user |
15:51 | <JakeA> | agreed |
15:51 | <wanderview> | JakeA: is there anything that prevents ad iframes from requesting these perms on every page visit? |
15:52 | <JakeA> | wanderview: generally we don't let iframes request permissions |
15:52 | <wanderview> | I seem to recall we had a problem with that and the contacts perm request in fxos |
15:52 | <annevk> | If I frequently visit something or have it bookmarked I would be quite happy if things got stored without anyone bothering me about it... |
15:52 | <JakeA> | since it doesn't tally with the url the user can see |
15:52 | <annevk> | wanderview: I wouldn't get hung up on compressed vs uncompressed, that should all really be up to the UA and we shouldn't really have to expose that |
15:52 | <wanderview> | yea |
15:52 | <annevk> | wanderview: although maybe at some point people don't want to see things compressed twice or some such... so we might add more control then |
15:53 | <wanderview> | annevk: I think the UA should be smart enough to do that |
15:53 | <JakeA> | annevk: yeah, bookmark or add-to-homescreen should auto-grant I think |
15:54 | <JakeA> | The UA could even auto deny the permission on things like first visit |
15:55 | <wanderview> | I wonder if the UA could do a dynamic heuristic like... auto-grant the durable permission at first... when the page actually breaches limit X, then place the door hanger... to avoid overwhelming the user with prompts |
15:56 | <wanderview> | I guess it comes down to when the API tells the page it officially has the storage or not |
15:59 | <annevk> | wanderview: might get problematic |
15:59 | <annevk> | wanderview: fairly simple app, large video file, boom |
15:59 | <wanderview> | annevk: why is that a boom? prompts, user says yes or no... |
16:00 | <annevk> | wanderview: oh right, it can still store it but it might not be persistent |
16:00 | <annevk> | wanderview: sorry |
16:00 | <annevk> | wanderview: yeah might be okay |
16:01 | <wanderview> | with limited disk space... seems like we need a cooperative system... but of course the web is full of evil people |
16:02 | <annevk> | well the end goal is that the browser gets the whole hard drive |
16:02 | <annevk> | which is not super limited |
16:03 | <wanderview> | annevk: on mobile it is |
16:03 | <annevk> | low end, true, high end, less so |
16:03 | <annevk> | but yeah, that's why we need to give users insight into storage used |
16:04 | <annevk> | improving UI around this seems like it should be priority 1 |
16:04 | <annevk> | because if that's unclear while we start handing out persistent storage we got a real mess |
16:20 | <wanderview> | I think low end mobile is what we should design... if we don't think disk is a limited resource then we should just not bother with any of this |
16:27 | <annevk> | wanderview: well I think we need to handle full disk |
16:28 | <annevk> | wanderview: and let the user manage storage |
16:28 | <annevk> | wanderview: those are all things we could do before we attempt persisting |
16:28 | <wanderview> | annevk: I agree we need it because storage is a limited resource (especially on mobile) :-) |
16:58 | <Domenic> | Is there any way to create an ArrayBuffer whose backing memory is composed of several other array buffers? |
17:09 | <paul_irish> | I'm trying to quiet the console spam in Chrome around "invalid" mimetypes. I want to validate that specs do not have normative mimetype requirements for stylesheets, images, and fonts. |
17:10 | <Domenic> | paul_irish: I think per recent discussions in this channel, stylesheets have normative requirements. annevk was mentioning it IIRC? |
17:11 | <gsnedders> | paul_irish: most of the time the behaviour is undefined |
17:11 | <gsnedders> | CSS de-facto has to be loaded with the right mime type (at least cross-origin), because of data-leakage attacks |
17:11 | <annevk> | paul_irish: arguably HTTP requires resources to have valid MIME types |
17:12 | <annevk> | paul_irish: however, browsers do not enforce MIME types for images, stylesheets, and scripts |
17:12 | <annevk> | paul_irish: oops, they do for stylesheets, not for fonts |
17:12 | <gsnedders> | annevk: stylesheets I think same-origin in quirks you can use whatever |
17:13 | <annevk> | gsnedders: yup |
17:13 | <paul_irish> | for stylesheets i looked at the impl in blink. it we would silently fail if its cross-origin, there is no text/css or "" empty mimetype, and the payload doesn't start with valid CSS. |
17:14 | <paul_irish> | but outside of those 3 constraints, it's good |
17:15 | <annevk> | it should fail same-origin as well I think in standards mode |
17:15 | <annevk> | dunno if empty MIME type matches the spec |
17:15 | <annevk> | offhand |
17:16 | <paul_irish> | k. thanks |
17:17 | <annevk> | paul_irish: if the metrics show that over time more people use correct MIME types the console spam may be worth it |
17:18 | <annevk> | paul_irish: the current model is rather prone to attacks |
17:18 | <paul_irish> | <img src="evil.js"> ? |
17:51 | <annevk> | paul_irish: more like <script src=image> |
17:51 | <paul_irish> | gotcha |
17:52 | <annevk> | paul_irish: basically a mismatch between what the server thinks the file can be used for and what the browser allows |
17:52 | <annevk> | paul_irish: sniffing is defined and it's somewhat clear to server operators these days not a lot can be trusted, but if we could improve that'd be nice |
17:53 | <annevk> | Domenic: I think only Blob supports that... |
17:53 | <annevk> | Domenic: also, that seems more like a feature for views than the buffer... |
17:55 | <Domenic> | annevk: meh not sure why it would be. I have several arraybuffers and I want to concatenate them with a transfer instead of copy. |
17:56 | <annevk> | Domenic: there's a proposal for transfer I think |
17:56 | <Domenic> | annevk: yep, that's where I came from actually. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/transfer |
17:57 | <Domenic> | We're thinking of using transfer for byte streams |
17:57 | <Domenic> | but we still have a use case where people want to read an entire stream into one big array buffer |
17:57 | <annevk> | I'd like some syntax for ArrayBuffer so you can do AB1 + AB2 |
17:57 | <Domenic> | i think it's OK to say people have to do that manually though, and/or wait for an ES7 combiner method |
17:59 | <wanderview> | does it really matter how the ArrayBuffer stores it in memory if there is an API to create an AB from multiple other ABs? |
18:00 | <Domenic> | wanderview: I just want no-copies guaranteed, not sure whether I care about how it's stored. |
18:03 | <wanderview> | Domenic: well, no-copy means multiple segments if you have multiple sources :-) feedback from people in the room with me is that multiple segments is harder to do and also keep the various view classes fast |
18:03 | <Domenic> | interesting |
18:04 | <wanderview> | for example if your UInt16 crosses segment boundaries or something... now you can't just simple processor primitives... you have to additional logic in the path |
18:04 | <wanderview> | it seems possible... but sounds like there would be push-back |
18:55 | <rillian> | so, the media element resource selection algorithm says the user agent will discard <source> elements whose type attributes it knows it cannot play |
18:56 | <rillian> | I assume that means canPlayType() == '' |
18:57 | <rillian> | but there seems to be no coupling to the actual resource load |
18:57 | <rillian> | so the type attribute can be pure fiction outside of the 'I know I can't play that' constraint |
18:57 | <rillian> | is that correct? |
18:58 | <rillian> | I ask because imgur.com's new gifv service makes pretty markup with webm and mp4 source links...and serves video/mp4 to for both resources. |
18:59 | <TabAtkins> | I think so, yeah. |
19:01 | <rillian> | ok, so all that careful arguing we did for page control of which resource to load...not so much :( |
19:52 | <zewt> | sounds like the usual "seems to work" that everything on the web falls into when you have variable behavior |
20:45 | <annevk> | rillian: the page does control what to load, no? |
20:46 | <annevk> | rillian: I'm not sure if it's all browsers yet, but the MIME type stated by the server is ignored, I believe, but the MIME type stated by the page is used for negotiation by browsers |
21:26 | <rillian> | annevk: I'm not sure that's true |
21:27 | <rillian> | I mean, I hope we reject sources with types we can't play |
21:27 | <rillian> | but we accept sources whose actual type doesn't match their declared type |
21:28 | <Domenic> | Are 304s still transparent to fetch? Or is there some fromCache flag? |
21:28 | <rillian> | I fear without that kind of enforcement the type attribute on <source> is as moot as the type from the server |
21:29 | <TabAtkins> | rillian: The 'enforcement' is "the browser won't play it if it doesn't know that the type attribute specifies something it can play". |
21:35 | <rillian> | TabAtkins: the spec says "A type that the user agent knows it cannot render" which is the opposite |
21:35 | <rillian> | perhaps because of the whole 'maybe' thing with canPlayType? |
21:35 | <TabAtkins> | Sorry, I got lost in the negations. Obviously I mean the other way. ^_^ |
21:35 | <rillian> | heh |
21:36 | <rillian> | anyway, this is just me failing to not say 'I told you so'. It is what it is. |
21:36 | <rillian> | I was just sad that it's possible to totally lie about the type attribute |
21:37 | <rillian> | lie *with* the type attribute on <source> |
21:44 | <TabAtkins> | Eh, turns out type-sniffing video is just easier and more reliable for everyone. |
21:46 | <TabAtkins> | The only real reason to declare the type is to avoid retrieving anything at all when we can tell ahead of time that it definitely won't work, which is precisely what it does. |
22:02 | <annevk> | Domenic: there's various open issues around caching |
22:12 | <Domenic> | annevk: use case: trying to adaptively estimate download speeds and use that to choose quality for future video downloads, but want to eliminate outliers caused by caching returning very fsat |
22:15 | <annevk> | Domenic: the outstanding issues are primarily around security and a good model for partially cached resources |
22:15 | <annevk> | Domenic: it's clear that exposing this would be useful |
22:15 | <annevk> | Domenic: see bugs on Fetch and various issues scattered around GitHub |
22:15 | <Domenic> | ah yeah security fun times |
22:15 | <Domenic> | yeah it sounded familiar just kind of remembered it being resolved by now |
22:16 | <annevk> | Domenic: there's bits in the spec |
22:17 | <annevk> | Domenic: the partially cached stuff is still somewhat broken, I forgot why fromCache hasn't been added yet |
22:17 | <annevk> | Domenic: perhaps I was waiting for feedback on the general design of things first and some answer about how to handle partial caches |
22:17 | <annevk> | Domenic: it's all in the issues somewhere |
22:18 | <annevk> | https://lists.w3.org/Archives/Public/www-international/2015JanMar/0080.html "Do not interpret my comments as an attack on the author." trololol |
22:35 | <Domenic> | O_O |
22:38 | <TabAtkins> | Glenn "I've never made a nontrivial edit to the only CSS spec I maintain" Adams |
23:12 | <MikeSmith> | that nickname's probably too long for him to fit on his business card |
23:12 | <MikeSmith> | so probably need to do some brainstorming to help him come up with a shorter nickname |
23:13 | <dglazkov> | don't be mean to folks :) |
23:13 | <MikeSmith> | hey I'm just trying to be helpful here |
23:14 | <MikeSmith> | anyway, speaking of helpful, "Waiting for available socket" |
23:14 | <MikeSmith> | I seem to be getting that message in Chrome oftenish these days |
23:15 | <MikeSmith> | or more accurately, in Chromium, built from trunk |
23:15 | <MikeSmith> | I got a lot of tabs open but I wouldn't think that would cause it |
23:15 | <MikeSmith> | also, this is on OSX |
23:16 | <caitp-> | i've seen that a few times before, on stable builds afaik |
23:16 | <MikeSmith> | ah OK |
23:16 | <MikeSmith> | well to be clear when it happens, the page load just hangs |
23:16 | <MikeSmith> | or I mean the response never comes at all |
23:16 | <caitp-> | yeah |
23:17 | <MikeSmith> | I seem to be getting it when trying to load *.w3.org resources |
23:20 | <caitp-> | ulimit maybe? or does that affect osx |
23:22 | <Domenic> | it affects osx worst of all |
23:22 | <Domenic> | osx has very low defaults |
23:23 | <MikeSmith> | ah ok |
23:23 | <MikeSmith> | what's ulimit? |
23:23 | MikeSmith | googles |
23:23 | <caitp-> | kern.maxfiles seems to be around 12k here |
23:28 | <MikeSmith> | so would the number of open tabs have any effect on this? |
23:29 | <MikeSmith> | I have about 75 tabs open |
23:30 | <caitp-> | i'm not sure exactly how chromium's socket pooling works, if each frame gets its own socket pool then sure |
23:30 | <caitp-> | running a webserver or database or building big code would add to it |
23:31 | <caitp-> | or maybe it's a bug in chrome, hard to say :< |
23:32 | <MikeSmith> | wait so I had naively assumed it meant chrome was waiting for a network socket |
23:32 | <caitp-> | psychic debugging is hard, i'm just throwing ideas at you |
23:33 | <MikeSmith> | heh |
23:34 | <MikeSmith> | anyway ulimit -n says 2560 on my system, which seems like it should be enough |
23:35 | <MikeSmith> | I'll give up for now |
23:36 | <MikeSmith> | on the bright side, it's cool how Chrome doubles as a system load tester |
23:50 | <jgraham> | They should get bratell on that. I hear his hobby is running at the system resource limits |
23:50 | <gsnedders> | I seem to remember him claiming to have surprisingly few tabs open when I last spoke to him. |
23:50 | <gsnedders> | Like only a few hundred. |
23:52 | <jgraham> | Well with presto on 32bit windows he had enough open to frequently test the OOM handling |
23:59 | <jgraham> | annevk: Did you see http://daniel.haxx.se/blog/2015/02/24/curl-smiley-urls-and-libc/ ? |