01:18 | <MikeSmith> | Domenic: I see "Agreement to the DCO is thus transmitted with each patch." but I don't find an actual description of how the agreement is actually recorded/transmitted |
01:19 | <Domenic> | MikeSmith: it appears to be the "Signed-off-by: Name <email>" lines in a given patch |
01:19 | <MikeSmith> | ah wait the paragraph just before that |
01:19 | <Domenic> | I'm a little unclear why asking a developer to include a signed-off-by line would be less onerous than asking them to sign a CLA |
01:20 | <MikeSmith> | that plus I wonder what happens if they forget to include that line in the commit message |
01:21 | <MikeSmith> | I guess reviewers are supposed to check for that before they merge anything |
01:22 | <zcorpan> | MikeSmith: https://github.com/ResponsiveImagesCG/picture-element/issues/256 |
01:25 | <MikeSmith> | zcorpan: yep, saw that you had raised that. I have no strong opinion on it either way. I don't think it would be any harder to implement a check for than any other of the esoteric requirements for srcset+sizes |
01:26 | <MikeSmith> | zcorpan: we're already at the point with the validator where the requirements have necessitated breaking abstractions in the code in order to implement |
01:27 | <MikeSmith> | well maybe not necessitated, but at least I couldn't figure out a way to add some things without violating a few |
01:28 | <MikeSmith> | zcorpan: e.g., this is what the "Require sizes attr when srcset specifies width" check looks like: Require sizes attr when srcset specifies width |
01:28 | <MikeSmith> | oops |
01:28 | <MikeSmith> | https://github.com/validator/validator/commit/8a4adc9834eeb8994deefed9948bc063cc79ce93 |
01:29 | <MikeSmith> | all of the datatype checks in the validators are done using singleton instances of the particular classes that do each check |
01:31 | <zcorpan> | MikeSmith: ok. for the issue i'm leaning towards just changing the grammar to require the default length |
01:35 | <MikeSmith> | zcorpan: ok. I think that might at least not have the particular issue that the width-required change did. |
01:36 | <MikeSmith> | zcorpan: part of the thing that complicates implementing these check is the sort of circular dependency between srcset and sizes with regard to width descriptors |
01:37 | <MikeSmith> | in that the spec says both, "If a source element has a sizes attribute present or an img element has a sizes attribute present, all image candidate strings for that element must have the width descriptor specified." and (now also) "If the srcset attribute has any image candidate strings using a width descriptor, the sizes attribute must also be present, and the value must be a valid source size list. |
01:37 | <MikeSmith> | Spec bugs: 26537 |
01:37 | <MikeSmith> | oofs |
01:39 | <zcorpan> | MikeSmith: i am aware of the two-way dependency, i'm not familiar enough with your impl to tell if there's a better way to do it |
01:40 | <MikeSmith> | zcorpan: yeah was just thinking out loud |
01:41 | <MikeSmith> | I reckon Henri could figure out a more elegant way for now what's there works fine |
01:42 | <zcorpan> | ok cool |
03:42 | <MikeSmith> | Domenic: I guess the DCO/Signed-off-by thing is not meant to be any less onerous for contributors than signing a CLA isーbut I think one advantage is that it obviates any need to have any process for signing the CLA that's separate from the process for creating a patch/PR, and especially that it obviates the need to keep any separate record somewhere of who's signed the CLA |
03:43 | <MikeSmith> | since the record of agreements is just right there within the change history for the sources |
07:44 | <MikeSmith> | botie, inform hsivonen when you have a minute please take a look at the following and let me know if you're OK with it. Basically it just refines fatal-error messages for files with content-type mismatches to include mention of the URL for the file. It seems safe to do since it's not leading any info the user doesn't already know. https://github.com/validator/validator/commit/c98215c55d2a8cd433877da23119 |
07:44 | <botie> | will do |
07:44 | <MikeSmith> | 16c9ebbfd342 |
07:44 | <MikeSmith> | botie, inform hsivonen https://github.com/validator/validator/commit/c98215c55d2a8cd433877da2311916c9ebbfd342 |
07:44 | <botie> | will do |
08:15 | <ineedhelpors> | hey guys |
08:15 | <ineedhelpors> | in need of advice |
08:19 | <ineedhelpors> | paying $10 btc if sum1 can help me with a file upload issue |
08:23 | <annevk> | Hixie: per https://twitter.com/sgalineau/status/564904540906872833 we should probably list instructions for how to unsubscribe |
08:24 | <caitp-> | you should probably make it a 1 or 2 step process |
08:25 | <caitp-> | and easy enough to figure out that nobody needs to dig around to find instructions and follow them |
08:26 | <annevk> | I suspect it's as easy as putting un in the obvious place of the subscribe address |
08:44 | <Krinkle> | Are there any plans for a Cookie interface in the DOM? E.g. for setting/getting cookies in a more object-oriented fashion, and removing the need for string parsing as much (ala classList) |
08:45 | <Ms2ger> | Not afaik |
08:45 | <annevk> | I think the recommendation is to leave cookies as a network affair to persist some state about the user |
08:46 | <annevk> | And put actual data either locally or on the server somehow |
08:46 | <Krinkle> | It seems the latest trend is to write a spec and have browsers implement it, instead of writing a library and poplarising it. I want in :) |
08:46 | <annevk> | Heh, I think it's always been a bit of both |
08:46 | <Krinkle> | Yeah, that's what the big apps do (e.g. Google, Wikipedia, ..) |
08:47 | <Krinkle> | typically only one main cookie, though that's never really true |
08:47 | <Krinkle> | Not having to parse and construct document.cookie would be nice :) |
08:51 | <Krinkle> | rhartl/jquery-cookie/issues/349 |
08:51 | <Krinkle> | https://github.com/carhartl/jquery-cookie/issues/349 |
08:51 | <Krinkle> | Cookie.set(), get(), remove() |
08:59 | <annevk> | Krinkle: if you do want to propose something, remember that anything synchronous is unlikely to fly |
09:01 | <Krinkle> | annevk: I don't mind either way. I'm happy for it to be async. |
09:03 | <Krinkle> | Though I'm curious with regards to race conditions |
09:03 | <Krinkle> | you wouldn't want one thing to set and another thing to check its existence and also start setting the same thing |
09:04 | <Krinkle> | Though in a good app (or just a simple app?) a single key would be managed by the same code which would thus naturally be aware of it. |
09:04 | <Krinkle> | Except when in multiple tabs of course. |
09:06 | <Krinkle> | with Promise and yield this can be abstracted though I suppose |
09:07 | <Krinkle> | annevk: You reckon it's feasible? I imagine even without the async benefit, the simplified and directer API for the browser would be worth something. |
09:08 | <Krinkle> | and if we made it a promise (or did you have another async method in mind?) it would be an opportunity to make cookie setting no longer blocking the main UI thread. |
09:11 | <terinjokes> | Krinkle: it's seems fairly easy to mock a library up to see how it works :) |
09:12 | <Krinkle> | Any ideas for what would be a logical/sensible location? global Cookie? Cookieset? document.cookieset? The cross-over between document and window is getter better lately, but it still not clear to me which way it's moving. |
09:13 | <Krinkle> | I guess for cookies, it's fine for it to not be attached to the document object, right? |
09:16 | <terinjokes> | Krinkle: why not make it a library first? |
09:16 | <Krinkle> | Sure |
09:22 | <annevk> | Krinkle: it would have to work in workers if we do something |
09:22 | <annevk> | Krinkle: it's not clear that people want to do something though; making cookies a network affair has some obvious benefits |
09:23 | <Krinkle> | annevk: What you do mean by network affair? No longer exposed in JS entirely? |
09:23 | <annevk> | Krinkle: yeah, what HttpOnly does |
09:23 | <Krinkle> | Interesting |
09:24 | <Krinkle> | Yeah, especially lacking a JsOnly option |
09:24 | <terinjokes> | we use cookies entirely as a token that we're the same session. we'd rather use one of the other storage mechanisms |
09:24 | <annevk> | well that's indexed DB et al |
09:25 | <Krinkle> | While most things I see use Storage for local stuff, there's a bunch of stuff out there that uses cookies. But being sent to the server each request for no reason |
09:25 | <terinjokes> | you can update older code |
09:25 | <annevk> | Krinkle: we should offer more control over whether cookies are included in a fetch |
09:25 | <annevk> | Krinkle: but what we have for that is an all-or-nothing flag |
09:26 | <Krinkle> | Which flag is that? |
09:26 | <annevk> | withCredentials in XMLHttpRequest, though it's limited to cross-origin fetches |
09:26 | <annevk> | fetch() has a way to do it same-origin |
09:27 | <Krinkle> | Ah, yeah |
09:27 | Krinkle | was just reading fetch.spec |
11:02 | <JakeA> | TabAtkins: is there someone/somewhere/something that collects layout use-cases that aren't possible with CSS? |
11:03 | <astearns> | JakeA: there's this one: https://www.w3.org/dpub/IG/wiki/Pagination_Requirements |
11:06 | <JakeA> | astearns: yeah, I guess I'm looking for something like that but general |
11:07 | <astearns> | JakeA: I think it's hard to come up with general layout requirements that mean much - tying things to specific uses helps refine the requirement |
11:08 | <astearns> | JakeA: one of the big lacks is laying out elements in relation to other elements, but that's too vague to be useful |
11:08 | <astearns> | JakeA: laying out elements in relation to a page (for instance) helps focus the idea |
11:09 | <JakeA> | astearns: heh, the issue I have is an element-to-element relation thing |
11:10 | <astearns> | JakeA: looking for a place to add your issue to, then? |
11:10 | <JakeA> | astearns: Well, maybe. I probably need to think about it a bit more, but was just wondering if there was a place for that type of thing |
11:11 | <astearns> | JakeA: mostly just www-style, I think. Or it could be a new specifiction topic... |
11:12 | <astearns> | JakeA: the houdini folks tasked with the custom layout spec might be looking for use cases |
11:49 | <gsnedders> | So what's happening with the Ruby stuff? Are browsers implementing the stuff in the W3C spec? |
11:54 | <MikeSmith> | annevk: about http://w3c-test.org/conformance-checkers/html/elements/a/href/userinfo-password-contains-pile-of-poo-novalid.html |
11:54 | <MikeSmith> | <a href="http://foo:💩@example.com"></a> |
11:54 | <MikeSmith> | that should actually be valid, right? |
11:55 | <Ms2ger> | gsnedders, I wish I knew |
11:56 | <annevk> | MikeSmith: yeah, don't really see why it wouldn't be |
11:56 | <MikeSmith> | ok |
11:56 | <annevk> | MikeSmith: well perhaps <a> being empty is a problem? |
11:56 | <MikeSmith> | nah that's not the intent |
11:57 | <MikeSmith> | I wrote that test intending for it to just test whether pile-of-poo is allowed in the password part |
11:58 | <MikeSmith> | annevk: so <a href="http://💩:foo⊙ec"></a> should be valid too? |
11:58 | <MikeSmith> | pile-of-poo in username part |
11:59 | <annevk> | yeah |
11:59 | <MikeSmith> | k |
11:59 | <MikeSmith> | thanks |
12:36 | <gsnedders> | Ms2ger: bah |
12:46 | <GPHemsley> | Periodic reminder that the RFC 2119 disclaimer has an erratum. |
12:47 | <GPHemsley> | Since nobody seems to know that. |
12:50 | <GPHemsley> | Errata ID 499 |
12:50 | <GPHemsley> | http://www.rfc-editor.org/errata_search.php?rfc=2119 |
13:01 | <annevk> | Seems like it has a bunch of typos. I remember Ian pointing out "NOT RECOMMENDED" once |
13:10 | <jgraham> | Not sure I even agree with the first two corrections there |
13:13 | <GPHemsley> | jgraham: I'm talking specifically about a single erratum. |
13:19 | <annevk> | GPHemsley: http://www.rfc-editor.org/errata_search.php?eid=499 works |
13:20 | <GPHemsley> | annevk: Oh, does it? I didn't realize. I searched the HTML for an id. |
13:20 | <GPHemsley> | (And found a whole lot of other issues.) |
13:21 | <GPHemsley> | I guess I overlooked the huge form at the top. |
13:21 | <GPHemsley> | Habit, I suppose. |
14:41 | <wanderview> | JakeA: this comment makes me think again we need some kind of stale-while-invalidate method in Cache: https://github.com/slightlyoff/BackgroundSync/issues/17#issuecomment-73685856 |
14:44 | <JakeA> | wanderview: can't you do that programmatically pretty easily? |
14:44 | <JakeA> | wanderview: http://jakearchibald.com/2014/offline-cookbook/#stale-while-revalidate |
14:45 | <wanderview> | JakeA: true... your statement "you're more likely to create this poor experience with the fetch event" made me think its kind of a footgun, though... would be nice to have a simpler way to DTRT |
14:46 | <wanderview> | JakeA: also, the browser could possibly optimize it if its a single method |
14:47 | <wanderview> | I guess we can just see what libraries emerge... if its necessary then maybe one of them will add a wrapper for stale-while-revalidate |
14:53 | <wanderview> | JakeA: I think part of my reason for wanting this is that we have Cache.add()... why have that convenience method but not the stale-while-revalidate one? :-) |
15:17 | <slightlyoff> | wanderview: I'm not sure a feature is justified for that. Putting everything in dev control makes it, as annevk said, something we can just advise users for. We avoided this error for Push/Notifications by design. Not sure why BG Sync is different |
15:24 | <wanderview> | slightlyoff: well... its not just something you would use for BG sync... but yea, thats fine |
15:24 | <slightlyoff> | wanderview: I don't understand. You seem to be suggesting that BG sync is somehow not simply a question of waking/sending-an-event to a SW which is in full control....why? |
15:26 | <wanderview> | slightlyoff: I'm saying stale-while-revalidate would be useful for normal fetch event handling in addition to BG sync |
15:27 | <slightlyoff> | wanderview: and I'm saying that adding a special-case API when you have the full power to do it yourself is premature |
15:27 | <slightlyoff> | wanderview: I'd like to see evidence of patterns in use, not idle speculation in bugs |
15:28 | <wanderview> | slightlyoff: when I wrote "yea, thats fine" above.. I meant I'm not pushing to add a method and we don't need to argue about it :-) |
15:28 | <wanderview> | slightlyoff: I just find it odd to have convenience methods like Cache.add() and .addAll()... but not other convenience methods |
15:28 | wanderview | shrugs |
15:29 | <slightlyoff> | it's fair |
15:29 | <slightlyoff> | I guess what I'm getting at is we could sketch out super-common uses for add and addAll |
15:29 | <slightlyoff> | stale-while-revalidate seems important, but I'm unclear how it fits into the evented lifecycle right now |
15:30 | <slightlyoff> | we've talked about waitUntil in addition to respondWith for fetch events |
15:30 | <slightlyoff> | and if we see a lot of use of that to implement stale-while-revalidate, I'd be moved to add sugar |
15:31 | <wanderview> | why would the life cycle have to change if we can already implement stale-while-revalidate with existing primitives? |
15:36 | <slightlyoff> | wanderview: well, i think it'd be a bit of a hack today |
15:36 | <slightlyoff> | wanderview: without waitUntil, you can _in theory_ be killed while doing the revalidate bit |
15:37 | <slightlyoff> | wanderview: it's unlikely to happen |
15:37 | <slightlyoff> | wanderview: but it's an interesting question, and the opportunities for better CPU/memory usage aren't well studied yet |
15:38 | <wanderview> | slightlyoff: are you saying the UA is allowed to kill the SW before cache.put() here? http://jakearchibald.com/2014/offline-cookbook/#stale-while-revalidate |
15:38 | <wanderview> | or before the cache.put() resolves I guess... would be nice if the spec said something about keeping the SW alive until in-flight network requests are complete or something |
15:39 | <annevk> | wanderview: that'd give an easy trick for keeping it alive for a long time |
15:40 | <wanderview> | annevk: is the SW allowed to be killed if there is still script running? that seems like an easier trick to keep it alive... setTimeout(), etc |
15:41 | <annevk> | wanderview: I would imagine it can be killed after each task |
15:41 | <annevk> | wanderview: as long as it keeps track of important tasks somehow such as incoming messages so they get handled the next time |
15:43 | <wanderview> | annevk: it would be nice if the spec was explicit about this stuff :-) but without that, I think we would want to keep the SW alive until the network response body is complete in this code: http://jakearchibald.com/2014/offline-cookbook/#stale-while-revalidate |
15:44 | <annevk> | wanderview: well I've been asking for a more explicit lifecycle for a long time now |
16:33 | <JakeA> | annevk: wanderview: slightlyoff has asked for fetchEvent.waitUntil for this case |
16:38 | <wanderview> | JakeA: seems like a good idea... I commented in the waitUntil issue |
16:39 | <annevk> | JakeA: sure, that doesn't fix the lifecycle issue though |
16:40 | <JakeA> | annevk: as in, specing timeouts etc if a non-resolving promise is passed to event.waitUntil (for example) |
16:40 | <annevk> | JakeA: defining what happens with outstanding tasks |
16:41 | <annevk> | JakeA: making sure that the definitions are such that no fetch event can get lost, even if the UA does several reboots of the SW |
16:41 | <JakeA> | gotcha |
16:46 | <wanderview> | annevk: it seems we can improve our understanding of the life cycle with waitUntil() even if every corner case is not spec'd out yet... no? |
16:47 | <annevk> | wanderview: well, web developers have another straw to hold onto |
16:47 | <annevk> | (pessimistically put) |
16:47 | <annevk> | I'm not sure it'll help implementers much |
16:48 | <wanderview> | annevk: I think it will... I have a specific issue waitUntil() would help with... namely around not canceling networking requests that are on-going like in JakeA's stale-while-revalidate recipe |
16:48 | <wanderview> | annevk: soon gecko will cancel network requests when the SW thread is stopped |
16:49 | <annevk> | wanderview: it will cancel the SW network requests, right? |
16:49 | <wanderview> | waitUntil() seems easier to deal with than trying to infer how long to keep the SW thread alive through a heuristic there |
16:49 | <wanderview> | annevk: yes |
16:49 | <annevk> | wanderview: not new fetches coming from a worker or document? |
16:50 | <wanderview> | annevk: it will cancel a fetch() started in the SW... a worker or document that does a fetch() cancels it when you navigate away from the document |
16:50 | <wanderview> | (same thing as stopping the worker thread...) |
16:50 | <annevk> | Yeah, but if we do that then I don't understand why we don't put waitUntil() on the global... |
16:50 | <annevk> | And of course we have to protect against waitUntil() abuse |
16:51 | <wanderview> | annevk: because you can't keep a dedicated worker alive if its parent document has navigated away! that seems... to explode my brain |
16:51 | <annevk> | It just moves the problem elsewhere, e.g. waitUntil(new Promise(() => {})) |
16:51 | <wanderview> | annevk: it seems waitUntil is SW specific because it has unique (ill defined) shutdown conditions |
16:52 | <wanderview> | annevk: all other workers have clearly defined shutdown conditions tied to a document |
16:52 | <wanderview> | as far as I understand it |
16:53 | <tobie> | annevk: is http://www.w3.org/TR/html-design-principles/ still a thing, and if not, is there something that replaces it? |
16:53 | <JakeA> | annevk: it isn't on the global because success/failure is meaningful to the event dispatcher |
16:54 | <JakeA> | in the case of install & background sync for example |
16:55 | <annevk> | tobie: there was an editor's draft I can't find that has the baby steps principle |
16:55 | <annevk> | tobie: what's written there is still valid, but it's no longer maintained |
16:56 | <annevk> | tobie: perhaps we should adopt it as a wiki page |
16:56 | <tobie> | annevk: I like that |
16:58 | <annevk> | I like the "please remember your job" appeals on public-webapps ignoring end users |
16:58 | <annevk> | Oh no, I don't |
17:03 | <tobie> | annevk: decided to stay away from this conversation too. (Well, mostly: https://twitter.com/tobie/status/561079141517524992) |
17:05 | <annevk> | lol dglazkov |
17:06 | <dglazkov> | what did I do? |
17:07 | <annevk> | dglazkov: in my example bug you posted a link to some cool techno |
17:07 | <dglazkov> | nooooo.... |
17:07 | <annevk> | dglazkov: are you secretly a DJ at night? |
17:07 | <dglazkov> | omg |
17:08 | <dglazkov> | much embarrass |
17:08 | <annevk> | it's quite enjoyable |
17:09 | <dglazkov> | annevk: uh... yeah.. that was my promotion tactic... that's it |
17:09 | <dglazkov> | it wasn't a copypasta at all |
17:09 | <annevk> | hehe, "feel free to follow me on Twitter" |
17:11 | <wanderview> | annevk: JakeA: what kind of device works without power connected and without a battery? (in regards to https://github.com/slightlyoff/BackgroundSync/issues/35) |
17:12 | <JakeA> | ohhh a riddle |
17:12 | <wanderview> | just trying to understand the unicorn we are naming |
17:12 | <JakeA> | :D |
17:13 | <annevk> | wanderview: steam engine :-) |
17:13 | wanderview | proposes the .isThisThingOn attribute. |
17:13 | <jgraham> | A wind up radio? One of those watches that takes energy from your movements? |
17:13 | <jgraham> | Something with solar panels? |
17:13 | <wanderview> | the correct answer is solar powered browsers |
17:13 | <wanderview> | :-) |
17:13 | <JakeA> | wanderview: "chargingOnly" intends to mean "only sync if the device isn't discharging it's supply of power" |
17:14 | <JakeA> | but for a desktop machine, without a battery, you could say it is not charging |
17:14 | <JakeA> | because it has no battery to charge |
17:14 | <gsnedders> | What happens if it's a desktop machine currently relying on a UPS? |
17:15 | <wanderview> | JakeA: what about a power time estimate... "do the thing if we think we have enough power for more than 4 hours"... A/C power implies infinite time |
17:15 | wanderview | over complicates all the things. |
17:16 | <wanderview> | annevk: I would accept onSteamPower as an attribute |
17:17 | <annevk> | I'm okay with acOnly |
17:17 | <wanderview> | annevk: I just dislike that "ac" is hard to understand if you don't know you're talking about power |
17:18 | <annevk> | Agreed |
17:18 | gsnedders | is with wanderview here |
17:18 | <annevk> | JakeA: what was wrong with my suggestions? |
17:18 | <annevk> | JakeA: e.g. excludeBattery seems pretty clear |
17:18 | <annevk> | JakeA: or stationaryPower |
17:19 | wanderview | likes excludeBattery or something like it. |
17:19 | <wanderview> | avoidBattery |
17:19 | <wanderview> | exceptBattery |
17:19 | <wanderview> | ohGodNotTheBattery |
17:19 | <annevk> | preserveBattery |
17:19 | <JakeA> | haha |
17:19 | <wanderview> | annevk++ |
17:20 | <JakeA> | wanderview: annevk: *Battery could mean devices with a battery |
17:20 | <JakeA> | nothing to do with the battery discharging |
17:20 | <wanderview> | JakeA: preserveBattery seems kind of clear |
17:20 | <annevk> | JakeA: yeah, that seems covered |
17:20 | <wanderview> | "kind of clear"... I aim high! |
17:21 | <annevk> | JakeA: my laptop has a battery, but preserving isn't needed if power is plugged in |
17:21 | <JakeA> | hm, it sounds like it'll still happen on battery but preserve it somehow, like a low power mode |
17:21 | <JakeA> | maybe that's just me |
17:22 | <JakeA> | notDuringDischarge but ew discharge |
17:22 | <JakeA> | ugh |
17:22 | <annevk> | I mean the UA might still do it on battery I think |
17:22 | <annevk> | I don't think we want to give the app absolute control here |
17:22 | <annevk> | All these things are hints |
17:22 | <wanderview> | JakeA: I think preserveBattery makes sense... because the battery will be used as long as the device is on... and yea... gives wiggle room for the UA |
17:23 | <wanderview> | bikeshedding names makes me hungry |
17:23 | <JakeA> | The only use-case I have for this option is deferring it to a settings menu for the user, so the UA doing something different breaks that |
17:24 | <annevk> | I don't follow that |
17:25 | <JakeA> | So, my podcast app has a menu, where I the user can say "only sync when plugged in please" |
17:25 | <JakeA> | Does the option have a use outside of user settings? |
17:25 | <annevk> | Not sure, but if it's up to the user it shouldn't be up to the app |
17:26 | <JakeA> | right, ideally all syncs should be in one settings menu in the browser, and the user gets to decide what connectivity or battery state they're restricted to |
17:26 | <JakeA> | but for that to work, you need to display the sync's description |
17:26 | <JakeA> | which is set by the app |
17:27 | <JakeA> | which means you get that problem |
17:27 | <JakeA> | (https://github.com/slightlyoff/BackgroundSync/issues/29) |
17:27 | <annevk> | yeah, the user would just disable it for all syncs |
17:28 | <JakeA> | but I'm happy for my podcast app to update feeds whenever, but not download podcasts - actually that means the sync still happens, the battery api would be used within the sync in that case |
17:28 | <JakeA> | hmm |
17:43 | <wanderview> | fyi... if anyone is interested in testing the gecko service worker implementation... I'll be posting updated builds here until everything is in the tree: http://blog.wanderview.com/sw-builds/ |
17:49 | <Domenic> | Anyone else have opinions on this? https://twitter.com/streamsstandard/status/565196470836396033 |
17:50 | <wanderview> | Domenic: I prefer silent... you're asking it to enter a state... its already in that state... not an error (in my opinion) |
17:50 | wanderview | lunches |
18:00 | <jgraham> | annevk: Does fetch have enough infrastructure for specifying a HTTP-based protocol? Or how does one do that? The context is the WebDriver spec which specifies a HTTP-based API for remote controlling browsers. So it feels like you need some mechanism for parsing requests and constructing responses. |
18:01 | <jgraham> | current spec is https://w3c.github.io/webdriver/webdriver-spec.html |
18:07 | <JakeA> | Domenic: agree with wanderview. It's in the spirit of clearTimeout(123456) |
18:37 | <annevk> | jgraham: well everything XHR and fetch() can do... |
18:37 | <annevk> | jgraham: it depends on the details I guess |
18:38 | <jgraham> | Yeah, so I wonder if refering to Fetch is the right thing |
18:39 | <jgraham> | I wasn't sure it had all the bits needed for a server though, since it's all about being a client |
18:56 | <annevk> | Ooh |
18:56 | <annevk> | Not sure, Fetch is heavily client-focused |
18:59 | <Domenic> | I think you're underselling yourself annevk :). Service worker is like a server in many ways and the Fetch primitives (like Response) seem to be working pretty well there |
19:03 | <jgraham> | So this is literally my internal monolouge on the subject played out on irc :) |
19:09 | <wanderview> | that would be an interesting experiment... build a web server where network requests produce an onfetch event and you respondWith() the response |
19:10 | <wanderview> | would be a cool node module |
19:10 | <wanderview> | just need some streams support :-) |
19:32 | <Domenic> | I really should start putting together some demos with the streams polyfill that's already all ready to go |
19:32 | <Domenic> | In Node especially |
19:32 | <Domenic> | Although to be fair there's https://streams.spec.whatwg.org/#example-rs-pull :P |
20:01 | <botie> | hsivonen, at 2015-02-10 07:44 UTC, MikeSmith said: when you have a minute please take a look at the following and let me know if you're OK with it. Basically it just refines fatal-error messages for files with content-type mismatches to include mention of the URL for the file. It seems safe to do since it's |
20:01 | <botie> | not leading any info the user doesn't already know. https://github.com/validator/validator/commit/c98215c55d2a8cd433877da23119 and at 2015-02-10 07:44 UTC, MikeSmith said: https://github.com/validator/validator/commit/c98215c55d2a8cd433877da2311916c9ebbfd342 |
21:05 | <annevk> | wanderview: your blog needs some TLS |
21:05 | <wanderview> | annevk: not supported on custom domains with github pages... I checked |
21:05 | <wanderview> | annevk: I put the images on people.mozilla.org behind https, though |
21:06 | <annevk> | wanderview: you would need to know that in advance to avoid being spoofed :-) |
21:06 | <annevk> | wanderview: that's kinda shitty with GitHub, but I guess it makes some sense |
21:07 | <ondras> | firebase hosting uses tls by default |
21:07 | <ondras> | just in case. |
21:07 | <wanderview> | annevk: if you just do wanderview.github.io... https works... but there is no way to specify a cert for a custom domain |
21:12 | <Domenic> | wanderview: I indirect behind CloudFlare because I am lazy... |
21:12 | <wanderview> | Domenic: is there a guide on setting that up? |
21:13 | <Domenic> | wanderview: it is pretty simple, and you can use terinjokes as your personal tech support. Basically you follow https://help.github.com/articles/setting-up-a-custom-domain-with-github-pages/ |
21:14 | <wanderview> | ok... I've done that using dnsimple as my DNS provider |
21:14 | <wanderview> | Domenic: cloudflare lets you get ssl on github pages, though? not sure I understand how that works |
21:15 | <Domenic> | wanderview: yeah cloudflare gives you free TLS on your custom domain. |
21:15 | <Domenic> | It then proxies gh-pages in the background |
21:15 | <terinjokes> | if you upgrade to Pro you can upload the custom cert |
21:15 | <wanderview> | ah.... I see the diagrams here now: https://www.cloudflare.com/ssl |
21:17 | <terinjokes> | nvm, i read "custom cert" rather than "custom domain" |
21:18 | <wanderview> | Domenic: terinjokes: thanks! I'll make a note of that for a weekend project :-) |
23:21 | <JonathanNeal> | In today’s world of browsers and machines, does it improve performance to cache deep objects like toString = Object.prototype.toString? |
23:23 | <gsnedders> | JonathanNeal: in cold code? yes; in hot code? you're saving *at most* one class check per access |
23:23 | <gsnedders> | (of course in cold code you shouldn't care about the performance!) |
23:26 | <JonathanNeal> | gsnedders: Interesting. I still see this pattern in new scripts (and to be clear and narrow I’m referring to caching only for the sake of shortening the lookup). So, should we drop it? Did it once have significant impact on performance in old IE or something? |
23:27 | <gsnedders> | JonathanNeal: it did everywhere in the days before JITs |
23:28 | <gsnedders> | you might see a small performance increase in really tight loops, but by the time you're doing toString.call you've probably lost |
23:28 | <gsnedders> | But benchmark and don't take my word for it, etc. |
23:28 | <JonathanNeal> | I’ve been looking for existing benchmarks. Are there some keywords I haven’t used that might help me in my search? |
23:29 | <gsnedders> | I dunno! |
23:30 | <Domenic> | You should be benchmarking a larger app anyway |
23:30 | <Domenic> | Your code will be cold or hot only depending on the context of the app it's running in |
23:30 | <gsnedders> | And quite possibly inlined into it |
23:35 | <JonathanNeal> | Thanks gsnedders, Domenic. In our polyfill project, there’s a small discussion happening as to whether we should drop local variables that cache deep properties. I can’t find an existing benchmark, so I’ll just recommend we keep the local variables and test to see if we can drop them. |
23:36 | <MikeSmith> | does anybody know, when you do a multipart/formdata file upload in a browser running under Windows, it seems like it sets a Content-Type based on the file extension |
23:36 | <Domenic> | Or you could actually benchmark your own code instead of looking for a benchmark of someone else' code |
23:36 | <JonathanNeal> | Domenic: That’s what I thought I just said. Sorry if I miscommunicated. |
23:37 | <Domenic> | hmm ok |
23:37 | <Domenic> | sorry then |
23:37 | <JonathanNeal> | I did miscommunicate. I meant, s/test/test our library ourselves |