07:33:24 RRSAgent has joined #webapps 07:33:24 logging to http://www.w3.org/2016/09/20-webapps-irc 07:33:34 Zakim has joined #webapps 07:33:53 zakim, this is TPAC Service Workers meeting 07:33:53 got it, xiaoqian 07:37:22 IanPouncey has joined #webapps 07:40:39 smaug has joined #webapps 07:42:05 LJWatson has joined #webapps 07:43:54 anssik has joined #webapps 07:47:54 weinig has joined #webapps 07:49:59 jungkees has joined #webapps 07:51:06 falken has joined #webapps 07:51:53 makoto has joined #webapps 07:52:23 makoto has left #webapps 07:52:36 shimazu has joined #webapps 07:53:39 MichaelC has joined #webapps 07:54:10 jamesn has joined #webapps 07:54:15 Florian has joined #webapps 07:58:08 Gus__ has joined #webapps 07:59:12 rniwa has joined #webapps 08:01:43 chair: chaals 08:02:44 Todd has joined #webapps 08:02:48 tantek has joined #webapps 08:03:03 present+ jakeA, jungkees, hober, weinig, chaals, 08:03:20 kborchers has joined #webapps 08:03:42 taekyu has joined #webapps 08:06:04 lilin_ has joined #webapps 08:06:06 hjlee has joined #webapps 08:10:06 chaals has joined #webapps 08:10:14 https://github.com/w3c/ServiceWorker/issues/974 08:10:18 bz has joined #webapps 08:10:41 scribe: chaals 08:10:46 ericc has joined #webapps 08:10:54 Topic: angenda-bashing 08:11:45 dom has joined #webapps 08:11:46 Byungjin has joined #webapps 08:11:59 Todd_ has joined #webapps 08:12:02 WalterTamboer has joined #webapps 08:12:24 What's the link to the stuff we're looking at right now? 08:12:30 CMN: Please make sure you are signed up to the group if you're contributing substantive content. 08:12:56 Topic: V1 update 08:13:17 Jungkee: we've got 24 issues, half solved and need to be edited in, so the agenda issue has the rest. 08:13:47 https://github.com/w3c/ServiceWorker/issues/816 08:14:49 … there are a couple of issues, already decided-ish: 816 08:14:51 hjlee_ has joined #webapps 08:15:03 … same object cannot be used for union type in IDL 08:15:18 https://github.com/heycam/webidl/issues/71 08:15:19 … filed in WebIDL as an issue. Want to check the status. 08:15:39 BZ: This is an IDL bug that should be fixed - just assume it will happen. 08:15:43 JS: OK 08:15:44 jcraig has joined #webapps 08:16:00 I have made the request to generate http://www.w3.org/2016/09/20-webapps-minutes.html xiaoqian 08:16:30 https://github.com/w3c/ServiceWorker/issues/873 08:16:34 Topic: 873 08:17:07 JS: related to fetch. we have API that can probably use fetch event cache attribute. 08:17:09 kbx has joined #webapps 08:17:38 AvK: This is for normal reload stuff? not shift? 08:17:54 JA: We don't get shift through the service worker. 08:18:01 AvK: Why do we want this 08:18:08 JA: Alex made the case... 08:18:11 kborchers has joined #webapps 08:18:27 BZ: navigating to yourself is semantically different to reloading yourself - at least sometimes. 08:18:33 SW: cache strategies are different. 08:18:43 plh has joined #webapps 08:18:54 JA: If you trigger reload you *might* move from offline-first to online-first … 08:19:04 … cache mode of the request would reflect that 08:19:08 AvK: Hmmm. 08:19:23 This is exactly this issue: https://github.com/w3c/ServiceWorker/issues/875 08:19:23 JA: Won't go to cache on reload, will re-validate. 08:19:31 AvK: Do we want to expose that? 08:19:41 … would need a hidden flag. 08:19:45 JA: Why hide it? 08:19:54 AvK: Then script can bypass the action... 08:20:03 JA: service workers *do* that. 08:20:26 JS: In normal reload serviec worker can do what it wants. For full reload it should bypass the service worker. 08:20:34 JA: We already have that. 08:21:09 … with cient API we know the page that triggered the request is the same as the URL you are asking for. 08:21:15 s/cient/client/ 08:21:22 … does cache mode reflect this? 08:21:35 AvK: May be implementation-specific what reload does. 08:22:22 ??:If you hit the button we may have different things we do. It's up to the UA to decide what to do, but we want to match the service worker process. 08:23:22 JA: We should reflect what the user wants to do. If you follow a live feed, and you hit reload, you might want to get the new stuff off the network, not the cache. 08:23:53 JA: We have cache mode where you can skip the HTTP cache… 08:24:11 … think the cache mode should reflect what the browser thinks it is doing. 08:24:33 AvK: So UX reload, navigation to self, and location.reload can be different? 08:25:06 KB: We currently have two kinds of behaviour, but we want to have just one 08:25:18 SW: I'd have to write a test to see exactly what we do. 08:25:54 … think we revalidate main resource if you hit return in the address bar, and reload button validates sub resources on cache. 08:26:21 Salvador: There should be a way to say "this reload is meant to bypass the cache." 08:26:54 JA: If browsers do different things - it isn't specced - we can expect different behaviours. Do we want to expose a user intent to refresh? 08:27:46 JA: Is this a feature that is useful? 08:28:05 kborchers_ has joined #webapps 08:28:19 AvK: We can define location.reload in one way or another. If we reflect that in cache mode that would be easy, then suggest the UI gestures should behave in the same way. 08:28:35 N8: Yep. 08:28:46 JS: Can we drop the reloaded thing then? 08:28:47 MichaelC_ has joined #webapps 08:29:12 IanPouncey has joined #webapps 08:29:16 aboxhall has joined #webapps 08:29:29 JA: If browser decides what a reload button does, do you want the website to follow howthe browser intends its UI to work, or do you want to know what the user asked? 08:29:49 N8: We want to know what the browser is going to do in regards to how it will treat the HTTP cache. 08:30:02 JA: So that would be enough to replae the isReload property? 08:30:29 AvK: We don't need to define shift-reload, but if normal reload affects resources then we need an inheritane model to store cache mode 08:30:44 JA: Browser does this already, so it's just a hook in the spec to keep that data. 08:30:59 jungbin has joined #webapps 08:31:25 AvK: if location.reload only reloads the main resource, then you only need to handle that request not a fetch-group policy 08:31:47 JA: Should it be in spec? 08:31:55 AvK: There's no API for it, so no... 08:32:50 bkardell_ has joined #webapps 08:33:37 AR: isReload can't be killed... 08:33:43 JA: But this does it instead. 08:33:52 … look at request.cache ... 08:34:00 AR: This is the ugliest way to do it. 08:34:51 … this is reload plus top-level navigation. 08:35:20 JA: You see browser intent here. It's consistent for document reloads. 08:35:23 AR: OK. 08:35:28 … It's still ugly. 08:36:02 AvK: Not sure if this is a comon pattern - if it is we could add a shortcut 08:36:12 AR: Use case: Google Docs team 08:36:22 … needs to know. 08:36:36 SW: There are at least 4 different kinds of reload… 08:36:40 BZ: 5 08:36:53 SW: Each browser has different behaviour for all of these. 08:37:14 AR: We said that if you were going to bypass the cache you should bypass the service worker. 08:37:31 AvK: Doesn't happen for location.reload 08:37:35 rniwa has joined #webapps 08:37:54 … there you go through the worker but not cache. 08:38:54 SW: We should try to understand how browsers handle reload, in the future 08:39:04 kborchers has joined #webapps 08:39:27 bz: https://github.com/whatwg/html/issues/1742 08:39:28 lilin_ has joined #webapps 08:39:39 https://github.com/w3c/ServiceWorker/issues/875 08:39:44 Topic: Issue 875 08:39:58 JS: This is covered by what we discussed. 08:41:23 Topic: Issue 870 08:41:37 -> https://github.com/w3c/ServiceWorker/issues/875 Issue 875 08:42:08 JS: There is no concept like reserved client ID. We designed a reserved client ID to reference target client environment of a request. 08:42:28 oh9405 has joined #webapps 08:42:33 … expose this as source / target of a fetch. 08:43:01 … was having a hard time speccing this, because the HTML navigation doesn't have a concept like this. 08:43:33 … When a navigation is triggered we have to create some state that holds the ID, URL and origin of the request to pass into fetch. 08:44:31 sangchul has joined #webapps 08:44:45 … propose fetch have a client, passed through end of fetch, that developers can use. Fetch returns to HTML and HTML creates the status object. Plan is to override the ID at the end, we're discussing the design now. 08:45:21 .. AvK thinks the design is a bit odd. I need the client ID… 08:45:36 AvK: New info is that you need a reserved ID. 08:45:44 s/.. AvK/… AvK/ 08:45:55 … we should just add the ID and pass it on the request. 08:46:10 … then you make a collection of IDs and settings objects. 08:46:43 … An environment settings object without a global object or realm, is pretty weird… 08:46:58 … So change the API to also operate on reserved IDs instead. 08:47:23 JA: So under the hood there is onformation coming from different places… 08:47:33 rniwa_ has joined #webapps 08:47:37 AvK: Right - either reservedID or an environment settings object. 08:47:42 JA/JS: OK 08:48:25 JS: So we need to refer to targetn client ID. It's browsing context, because we need to refer to UI properties, for use in the service worker 08:48:36 AvK: What info? 08:48:45 JS: Visibility state, focus state. 08:48:59 AvK: That's in browsing context or document? 08:49:12 JS: I capture that info during method call. 08:49:33 AvK: What about target window object not browsing context. You can check if it is active, or abort. 08:49:43 JS: Target client should be a regular client. 08:50:14 AvK: There will be differnce where there is another navigation, and they race. 08:50:34 JA: When you click a link and there is a target as iframe or window. 08:51:03 jamesn has joined #webapps 08:51:06 AvK: Represent target by current active document, whatever that is at the time you check. 08:51:21 JA: WOud be weird for the ID of a client to change ... 08:51:30 AvK: not in browsing context. 08:51:48 … why not pass the info before you enter, and not going back and forward. 08:52:10 aliams has joined #webapps 08:52:14 JS: We capture the info in the client's context, create object in service worker. So it doesn't cross. 08:52:25 AvK: Yes, you do when fetch goes async. 08:52:40 … better to pass that to fetch from the start. 08:52:48 JA: This proposal is to do that. 08:52:57 AvK: No. This is reserved. 08:53:14 JA: We suggest both. 3 IDs on the fetch. 08:53:19 jmann has joined #webapps 08:53:32 hjlee has joined #webapps 08:53:57 JS: We hvae to go to client context to get visibility state. So we capture that from client context, service worker is waiing on the state, intialises it with what we captured. 08:54:11 plh has joined #webapps 08:55:19 cabanier has joined #webapps 08:55:20 JA: There is a task to get the properties, but the IDs just live on the fetch event. At one point we have client objects on it, but that was really heavy. 08:55:44 JS: Problem that client we get later could be different 08:55:47 JA: Already can. 08:55:58 JS: We can capture ID during creation. 08:56:10 JA: The client might be gone when you look for it, but you have the IDs 08:56:30 JS: Need both the browsing context and the ID … 08:56:36 IanPouncey has joined #webapps 08:56:59 JS: So, how to design this - an we do superclassing for those two? 08:57:36 AvK: ID is a new field on environment settings object. You could have a base class with ID, and env.settings is a subclass with more fields. 08:57:58 … sounds OK, if it's OK with Domenic. 08:58:11 JS: OK, I'll discuss that outside. 08:58:18 jmann_ has joined #webapps 08:59:33 nainar_ has joined #webapps 09:01:18 I am a fish 09:01:27 rrsagent, draft minutes 09:01:27 I have made the request to generate http://www.w3.org/2016/09/20-webapps-minutes.html chaals 09:03:40 wilsonpage has joined #webapps 09:05:42 bz has joined #webapps 09:05:48 Florian_ has joined #webapps 09:13:30 MichaelC_ has joined #webapps 09:13:46 Florian has joined #webapps 09:14:32 plh_ has joined #webapps 09:19:27 Florian_ has joined #webapps 09:21:47 chaals has joined #webapps 09:22:09 Topic: Longdesc 09:22:17 Issue 873 09:22:32 JA: It's important to have the fist client by creation time. 09:22:40 kbx has joined #webapps 09:22:45 … seems to make sense to focus the most recent one 09:22:51 SW: I think we will be fine 09:22:58 N8: think that is OK. 09:23:06 JA: Doing it by focused order will be a bigger task 09:23:13 SW: Yeah, but not that big. 09:23:20 JM: What's the value? 09:23:42 JA: If you've got a window that's been sitting three days, and another that you were using 5 minutes ago, pick that one… 09:23:54 AvK: Most recently focused same-origin? 09:24:21 SW: Yep. We could find most-recently focused of all origins, ... 09:24:25 JA: Seems easy. 09:24:34 … we track focus ordering for everything. 09:24:46 SW: We recently added a lot more timestamped tracking. 09:25:25 JM: Yes, this is OK. 09:25:46 SW: We're OK with this. 09:26:25 LJWatson has joined #webapps 09:26:53 s/873/887 09:26:53 jungbin has joined #webapps 09:27:04 Topic: Issue: 893 09:27:38 JA: We agreed on this. Lots of long max-age for JS resources. We cap it for 24 hours already, but it's a real gotcha. 09:27:48 https://github.com/w3c/ServiceWorker/issues/893 09:28:02 … we're planning to make it always revalidate with a way to opt back into cache, and that's the bit we are missing. 09:28:07 Byungjin has joined #webapps 09:28:14 AR: Still capping on 24 hours? 09:28:18 JA: Yes. 09:28:30 JS: Change this for v1? 09:28:31 weinig has joined #webapps 09:28:32 JA: Yes. 09:28:48 JS: Suggest install API not register option? 09:28:59 AvK: Seems good. 09:29:03 JA: Yeah... 09:29:14 … [thinks] 09:29:26 … lots of options are on registration - it's a choice of the two 09:29:38 AvK: prefer install, so you don't need to remove and add. 09:29:52 dom has joined #webapps 09:30:06 JA: If it's on registration you could set it in install. Benefit of install is you can have a default that takes over if a new service worker doesn't have an opinion. 09:30:22 N8: Can you read it later if it is on install? 09:30:33 JA: Probably not. On registration it's set and forget… 09:30:57 N8: Can't think why we would want to use the value later, but think people are going to want that... 09:31:10 AvK: Why couldn't you still expose this on register? 09:31:23 … do you need to unregister? 09:31:31 rniwa has joined #webapps 09:31:39 JA: Scope is primary key, you can change values without unregistering. 09:31:45 AR: You do get a new registration. 09:32:13 JA: If you change URL you get an update. Otherwise tehre is a noop. So feels like it should sit on registration 09:32:13 jmann has joined #webapps 09:32:31 [yeah whatevs] 09:32:44 AvK: We don't have a good strategy for choosing between register and install. 09:32:57 JA: Would like to remove foreignFetch from install... 09:33:07 AR: There are those two and activate as places to put stuff. 09:33:45 MichaelC has joined #webapps 09:33:47 chaals has joined #webapps 09:33:50 plh_ has joined #webapps 09:34:01 rniwa has joined #webapps 09:34:11 dom has joined #webapps 09:34:23 AR: Thought if caches should be tied to the worker. Desgined it against that. There isn't a lot of state hanging around on register or service worker. relationship is dynamic. 09:34:37 JA: If it lives as long as registration it needs to go on the registration object. 09:34:53 … don't think we should put too much on actiavte because that casuses blocking. 09:34:58 kbx has joined #webapps 09:35:37 LJWatson has joined #webapps 09:36:01 xiaoqian has changed the topic to: TPAC Service Workers meeting - https://github.com/w3c/ServiceWorker/issues/974 09:36:08 weinig has joined #webapps 09:37:33 [blue! Green! …] 09:38:37 AvK: We can start with true as a keyword, and add an enum if we ever need to. 09:38:55 Topic: path to CR 09:39:37 JS: We're planning to publish the FPWD for v2 now to get the latest features, and publish a draft for v1 heading to Rec. 09:39:42 hjlee has joined #webapps 09:39:50 … my question is if we can skip an exclusion. 09:40:05 … until the next version. We did it with CR of the next spec. 09:40:24 … purpose is to see the gap between the CR and the latest draft of v2 09:40:42 … this can produce quite a lot of burden maintaining two versions. 09:41:16 chaals: once you publish the CR, you don't want to change it any more 09:41:41 ... when you make a FPWD, you have to start a CFE 09:42:02 ... people have 60 days from the day of CR for exclusion 09:42:20 ... you must have those two CfE 09:42:39 ... CR is your nightly 09:43:07 kbx has joined #webapps 09:43:44 Yves: You might like to put a link to latest version 09:43:58 ... which should fit in the model for SW 09:45:08 ... the min time to move a spec to REC (?) is 6 months 09:45:33 slightlyoff: you can maintain two branches 09:45:42 ... one is the latest 09:45:46 ... one is the stable 09:46:39 JakeA: we have nightly for v1, which is the one missing foreign fetch 09:47:01 Yves: you can focus on updating the latest, once you have something stable, put it to ... 09:47:24 jungkees: let's go with adrianba's proposal 09:47:36 JM: we have a v1... 09:48:28 jungkees: /TR/ServiceWorkers always refers to the latest 09:48:30 scribe: chaals 09:48:34 Topic: 879 09:48:40 JA: We'll do this after v1 09:48:47 naming nit, I would prever "level 1" over "v1", but that's up to the grop 09:48:50 Topic: 703 09:49:01 JA: This is security and work. 09:49:31 … HTML doesn't talk about range requests but browsers do it. We can't do it in service worker we need this in HTML and they need to defend against ranges from multiple origins. 09:49:39 SW: We ran into this with service workers. 09:50:02 … range requests plus CSP plus media engines == bad time. 09:50:14 … so, agree. Needs to be dealt with in HTML 09:50:22 JA: Not blocking for v1 09:50:25 aliams has joined #webapps 09:52:08 JS: We're done now for this? 09:52:22 JA: Yep. Service worker can't do this, so we need it in HTML. 09:52:50 AvK: Seeing range requests for images now. 09:52:58 JA: Chrome can be persuaded to do it for CSS… 09:53:41 Topic: HEIST 09:54:15 JA: Heist was revealed - series of attacks where we provide info about size of a x-origin resource when we shouldn't. 09:54:41 … e.g. a search will be a different size if there is a match or not, detectable through timing or cache-based attacks. 09:55:19 MichaelC has left #webapps 09:55:43 taekyu has joined #webapps 09:56:37 smaug has joined #webapps 09:56:47 … Ryan Sleevi said we should stop trying to fiddle the edges, and block at the source. Would be opt-in, e.g. using mike west's proposal for same site cookies. 09:57:22 BH: No great soluton, like Ryan's intuition. Almost impossible to beat these side channels because it is hard to disguise elephants as mice. 09:57:31 IanPouncey has joined #webapps 09:57:56 … shouldn't expose privacy-differentiated data gives up on a lot of what we expect from teh same origin policy, involves pretty serious changes in how we use the web. 09:58:18 … would like to find other ways to provide systematic answers that make it harder to get high-precision views from side channels. 09:58:38 … randomisation is a strategy. Defeatable by statistical samples. 09:58:49 … bucketising things? 09:59:41 … this would have a big impact. 09:59:50 AvK: This has been broken for a long time, right? 10:00:17 BH: Yep. We have access control for timing to set resolution of views available. 10:00:49 AvK: we're trying to minimise storage attacks - we've made estimating sizes easier. 10:00:58 AR: We have that already. 10:01:36 SW: What's the use case for x-origin storage in search cache 10:01:59 AR: Website includes 3rd party JS. We don't want the responses for that to be exposed. 10:02:23 Florian has joined #webapps 10:02:49 JA: We culd say put CORS on your CDNs. Might work… 10:03:10 … if your CSS is on CDN there is no way to request a background image with CORS 10:03:25 AvK: We made a big effort to cache things… 10:03:36 AR: If you're not doing anything in service worker, it's a noop. 10:03:54 JA: upgrading CSS to CORS is a wrapping issue. 10:04:18 SW: Should we have been explicit about resources you can cache being cached x-origin? 10:04:51 [What the web would like like if we made it tomorrow…] 10:06:38 JA: Mike you are disagreeing with opt-in solutions? 10:06:54 MW: Would be nice if we could do something else - but we haven't figured out what that could be yet. 10:07:05 … you have timing attacks, and those are hard to fight. 10:07:21 … bucketise or reduce data granularity. 10:07:35 … and there are explicit things like quota giving data. 10:07:59 rniwa_ has joined #webapps 10:08:07 … have we considered applying quotas based on origins? 10:08:31 AR: Value of cache API is that you know what is in it. That's the property we want to preserve. We want to be able to have 3rd party things in it. 10:08:52 AvK: Then you get persisitent storage, and if the quota doesn't count against yourself, who does it count against? 10:09:03 AR: If you evict today you evict the entire cache not one entity 10:09:30 MW: We give a handle to a resource, that might be in someone else's cache. You lose the reference, but the other guys do. 10:09:37 … or we do some GC-like approach. 10:10:20 AR: You need to know when you are going to have a write failure. I write into a cache as a 3rd party, I'm near the limit and want to write something too big. Do i have a write error? 10:10:43 MW: Yes. But you wont know the size of the 3rd party cache. 10:10:50 tantek has joined #webapps 10:10:51 [yes, if you filled it up to start with...] 10:11:49 MW: I see it as a better problem to solve, and if we assign blame for putting things into a cache we can deal with the issue. 10:12:12 SW: We do something like this already… 10:12:28 MW: Think this would be the inverse, allowing one origin to put things into another one. 10:12:55 SW: Sure, but technique is the same 10:13:25 JA: Think the storage issue can be dealt with by padding, but timing attacks are harder... 10:13:34 BH: They an be solved to a certain resolution. 10:13:44 Brad is sad. 3 ways. 10:14:23 … would hate to take away a whole class of functionality. 10:14:56 join #webdriver 10:14:58 … Can we let people opt in, and then give people choices to do work to get more perf or security. 10:16:05 s/join #webdriver// 10:16:30 JA: If we have same-site cookies and let requests opt out via CORS preflight, does that solve it? 10:16:52 BH: Nope. Don't want random 3rd party sites make requests to things and learn about them 10:17:39 … want to show differentiated content without leaking data about which user is there. 10:20:25 [frames, framebusting. There are use cases for wanting to be, or not be, framed] 10:21:03 MW: If you have no-opener, you get problems knowing if you're framed, and where. 10:21:41 ES: Giving you no-opener but having ancestor origin gets around a bunch of that. 10:22:13 AR: To what extent is this a service worker problem? 10:22:20 JA: It's an img problem. 10:22:48 Zakim has left #webapps 10:23:11 Zakim has joined #webapps 10:23:40 bz has joined #webapps 10:28:43 [break - 15 minutes] 10:28:58 present+ Salvador, Kris_Borchers, Nathan_Schloss, yoav, Brad_Hill, annevk, Kenji, ilya, bz, Alex_Russell, yves, xiaoqian, toddreifsteck, Jatinder_Mann, Mike_West, Joshua, esprehn, 10:29:06 RRSAgent, make minutes 10:29:06 I have made the request to generate http://www.w3.org/2016/09/20-webapps-minutes.html xiaoqian 10:31:16 jcraig has joined #webapps 10:35:52 Todd has joined #webapps 10:36:20 jamesn has joined #webapps 10:40:57 jnurthen has joined #webapps 10:47:37 Florian has joined #webapps 10:49:48 kbx has joined #webapps 10:50:33 chaals has joined #webapps 10:52:29 Topic: storage… 10:53:36 hjlee has joined #webapps 10:53:44 Topic: Uploading 10:53:55 issue - fetch-with-streams 66 10:54:30 aliams has joined #webapps 10:54:35 DomenicD: problem - what if you upload to endpoint and get a redirect? 10:54:40 present+ 10:55:01 … or asked for credentials. These are realistic scenarios… 10:55:08 https://github.com/yutakahirano/fetch-with-streams/issues/66 10:56:03 present+ 10:56:04 … could say "redirect-mode error", otherwise you get the problem… 10:56:10 present+ chaals 10:56:47 … Teeing is bad, because you can't delete bits of the stream. 10:56:54 JA: This is where we are now? 10:57:11 DD: Yep. We're trying to allow streaming uploads not hold the whole thing in memory 10:57:17 present+ 10:57:19 JA: Do we want stream representing progress? 10:57:23 DD: Separate question. 10:57:43 … idea is to have a new status code "won't send 301/4xx" so you can drop the rest of the Tee 10:58:22 YL: in HTTP 1.1 people were sending an expect 101 to ask if they could send a payload. Looks like this 10:58:43 AvK: Looked at it. If you get a 101 there is no guarantee on not getting redirect later. And the expect thing didn't work 10:58:51 YL: broken because of caches. 10:59:15 AvK: That status code is not needed for v1 10:59:25 JA: Not all codes require resending? 10:59:41 … reposting is the exception. 10:59:49 AvK: 301 for PUT doesn't go to GET 10:59:59 … if you see 303 you can stop teeing. 11:00:05 JA: But you've sent the thing 11:00:19 DD: No, the response can come any time during the transfer. 11:00:34 AvK: New code is when you need the whole body, but you know you won't redirect. 11:00:46 aliams has joined #webapps 11:00:48 JA: If function returned a promise for a stream does that expose the redirect? 11:00:51 AvK: Yep. 11:01:02 … you can detect the number of endpoints. 11:01:16 … people didn't want to deviate from existing model. 11:01:58 DD: v0 just dies on 301/4xx, v1 opt into allowing with maybe needing to buffer everything, v2 with new status code lets you optimise and throw away the rest of the body 11:02:11 AvK: Requestere doesn't know about redirects and wants to follow. 11:02:41 … server knows if they will redirect. Send early 199, wait with the final status. So client can discard tee early on. 11:03:12 DD: Client runs into redirect, so allows it, but asks servers to provide 199 to help the client. 11:03:30 … pushing to the future is fine, this is niche. 11:03:46 JA: Michael fails on redirects, nobody cared. 11:04:04 DD: Was looking to see if people cared. 11:04:15 JA: Dev could turn a stream into a blob. 11:04:55 … if you have to do full buffering, why not? I suppose you can start earlier, but it's not much. 11:05:40 AvK: you get network error with redirect, 401, 407 11:05:47 … we could allow 303. 11:06:14 … you post to a generic endpoint, and get redirected to the comment page you came from 11:06:22 DD: Do we opt you in automatically? 11:06:28 JA: Yep. 11:06:33 .. you provided a stream already. 11:07:55 AvK: Want to allow 303 11:08:06 JA: If you get redirect manual, you don't know what you're getting 11:08:23 DD: Problem is error is not programatically treatable. 11:08:40 AvK: Should we expose different classes of errors… oh look, worms. 11:09:18 … if you get a redirect other than 303 for an upload of a stream or 401 or 407, you get a network error 11:09:49 JA: This seems fine 11:09:56 SW: I agree with Alex. 11:11:15 Topic: upload progress 11:11:57 DD: originally we figured you could track how much of your stream is uploaded. What if you have a blob? 11:12:26 … API is uncomfortable. People do New request(blob.body) 11:12:41 AvK: XHR makes progress easy, getting UI from fetch is pretty low-level. 11:12:57 DD: Think the concern is ergonomic. 11:13:07 AR: Is making a blob into a stream OK? 11:13:26 DD: People are hacking this so we should do it. e.g. blob.toStream or vice versa 11:13:44 JA: You'll need to observe your stream to get progress 11:14:02 DD: Yeah, and it takes a bunch of low-level work to follow the stream's progress. 11:14:34 [which side of the shed does the door go on] 11:14:47 JA: If I have formdata with a bunch of things, it's blergh 11:15:27 DD: Dislike factories… 11:15:44 JA: We would need to know the size, and add tostream to formdata. 11:15:53 DD: You need size to know upload progress. 11:16:04 AvK; You can still say how much transferred. 11:16:05 aliams has joined #webapps 11:16:29 SW: This was done for progress events 11:16:35 AvK: But not for streams. 11:16:45 DD: Right. So you'll need to find the size somehow. 11:17:03 JA: .toStream all the Thingz! 11:17:08 … plus a .size 11:17:26 SW: forces serialisation eagerly on a lazy object 11:17:31 JA: Doesn't need to be. 11:17:48 AvK: We can make it sync because blob is sync 11:18:06 ES: We may send the serialising somewhere else. 11:18:14 SW: You know the boundary size. 11:18:31 ES: Once you escape all the values. If the code exists. 11:18:57 JA: If .toStream() returns a bounded stream with .size it can be a promise 11:19:10 DD: awkward… you figure out size when it goes to the network code. 11:19:23 … we could add a magic uploadProgress API 11:19:30 … strawman on init... 11:20:25 ES: You want a progress handle, right? 11:20:39 JA: Yep, a callback with amount-sent and total 11:21:10 ES: Or wrap the blob and it's a drain you can watch. It's simpler with an uploadObserverFactoryThingy 11:21:58 DD: Trying to make streams single observer only. This is probably fine. 11:22:07 smaug has joined #webapps 11:22:09 JA: a bounded stream would be good for download progress, too. 11:22:39 DD: Interesting 11:22:52 AvK: can't expose total easily. Fetch will have a notion for blob and stuff. 11:23:02 JA: Don't need to give total until the first call of the callback. 11:23:24 AvK: This means you require streams at each end. 11:23:39 … which is extra work in a simple case. 11:23:55 AR: Would like to see what pattern comes out here 11:24:03 DD: This looks like it will set a precedent 11:24:12 SW: Looks like observables. 11:24:51 RESOLUTION: lunch is good 11:37:41 kbx has joined #webapps 11:38:33 WalterTamboer_ has joined #webapps 11:54:01 rrsagent, make minutes 11:54:01 I have made the request to generate http://www.w3.org/2016/09/20-webapps-minutes.html adrianba 11:59:18 hyojin has joined #webapps 12:12:53 Geunhyung has joined #webapps 12:29:25 Florian has joined #webapps 12:29:44 bkardell_ has joined #webapps 12:32:54 chaals has joined #webapps 12:33:34 Meeting: Web Platform WG - Service Workers 12:33:51 s/angenda-bashing/agenda-bashing/ 12:33:53 rrsagent, make minutes 12:33:53 I have made the request to generate http://www.w3.org/2016/09/20-webapps-minutes.html adrianba 12:40:03 i/once you publish the CR, you don't want to change it any more/scribe: xiaoqian/ 12:40:07 rrsagent, make minutes 12:40:07 I have made the request to generate http://www.w3.org/2016/09/20-webapps-minutes.html adrianba 12:45:26 jcraig has joined #webapps 12:46:08 chaals has joined #webapps 12:47:35 LJWatson has joined #webapps 12:47:51 bz has joined #webapps 12:49:33 tantek has joined #webapps 12:49:35 IanPouncey has joined #webapps 12:51:16 hjlee has joined #webapps 12:51:25 ericc has joined #webapps 12:52:20 aliams has joined #webapps 12:52:42 present+ Ali_Alabbas 12:54:53 rrsagent, draft minutes 12:54:53 I have made the request to generate http://www.w3.org/2016/09/20-webapps-minutes.html chaals 12:59:25 kbx has joined #webapps 13:02:10 LJWatson has joined #webapps 13:04:13 satoshin has joined #webapps 13:04:15 weinig has joined #webapps 13:13:14 dom has joined #webapps 13:14:48 WalterTamboer has joined #webapps 13:18:02 is webapps reconvening? 13:18:16 s/webapps/platform 13:18:55 bkardell_: minuting is happening on GitHub 13:19:56 bkardell_: aw, hug 13:30:07 dka has joined #webapps 13:30:23 dka has left #webapps 13:32:11 link to github? 13:33:39 [no scribing, follow the agenda issue to get to the issues being discussed] 13:36:04 -> https://github.com/w3c/ServiceWorker/issues/920#issuecomment-245621515 upload requests 13:36:52 rrsagent, make minutes 13:36:52 I have made the request to generate http://www.w3.org/2016/09/20-webapps-minutes.html LJWatson 13:42:29 Florian_ has joined #webapps 13:47:46 [break] 13:47:59 [resume in 15 minutes] 13:53:48 hjlee has left #webapps 13:55:05 This "no scribing" thing sucks pretty bad. It means people who have difficulty following live discussions are excluded, and it kills discussion context for the decisions that get recorded. 14:04:16 jamesn has joined #webapps 14:04:45 plh has joined #webapps 14:05:05 chaals has joined #webapps 14:05:25 LJWatson has joined #webapps 14:05:53 dka has joined #webapps 14:06:00 dka has left #webapps 14:13:48 LJWatson has joined #webapps 14:20:02 kbx has joined #webapps 14:28:23 -> https://github.com/jakearchibald/background-cache background cache 14:30:38 satoshin has joined #webapps 14:34:49 RESOLUTION: Put Background Cache in the WICG 14:36:08 Florian has joined #webapps 14:38:47 -> https://github.com/w3c/ServiceWorker/issues/756 Multiple instances 14:39:29 xiaoqian: I'm around on irc if there are any questions for me on this issue 14:42:05 smaug has joined #webapps 14:42:24 kbx has joined #webapps 14:49:48 present+ wanderview 14:51:37 xiaoqian: you guys dropped 14:51:47 JakeA: I think you dropped... so you can stop talking to me 14:53:24 it says I'm still in the meeting but you guys are not... 14:55:03 jcraig has joined #webapps 14:59:00 tantek has joined #webapps 15:01:37 kbx has joined #webapps 15:03:49 Florian has joined #webapps 15:08:31 schuki has joined #webapps 15:15:44 dka has joined #webapps 15:19:09 JFSIII has joined #webapps 15:26:26 RRSAgent, make minutes 15:26:26 I have made the request to generate http://www.w3.org/2016/09/20-webapps-minutes.html xiaoqian 15:38:47 IanPouncey has joined #webapps 15:46:42 ericc has joined #webapps 15:48:30 LJWatson has joined #webapps 15:49:23 chaals has joined #webapps 15:51:32 tantek has joined #webapps 15:52:01 jamesn has joined #webapps 15:52:20 ericc has joined #webapps 15:52:46 wanderview: thanks for stepping in, sorry it was a bit tough 15:52:58 weinig has joined #webapps 15:53:14 JakeA: np, thanks 15:56:36 dka has joined #webapps 15:56:43 dka has left #webapps 16:00:07 plh has joined #webapps 16:20:35 jcraig has joined #webapps 16:21:09 IanPouncey has joined #webapps 16:22:25 smaug has joined #webapps 16:53:39 Zakim has left #webapps 16:54:03 RRSAgent, bye 16:54:03 I see no action items