IRC log of webapps on 2016-09-20

Timestamps are in UTC.

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