Location: TPAC, Lyon, France.
When: 9AM, October, 25, 2018
Please let us know if you're planning on attending the F2F meeting.
The agenda is subject to change reflecting the progress of the work. Please update it if you notice things outdated or missing.
Share implementation status and issues, performance issues, compatibility issues, etc.
ready promise when controlling rgistration is resurrected: https://github.com/w3c/ServiceWorker/issues/1198.ready promise weirdnessready promise is kind of weird with overlapping scopes: https://github.com/w3c/ServiceWorker/issues/1278.ready promise is kind of weird after you call unregister(): https://github.com/w3c/ServiceWorker/issues/1279.updateViaCache mint a new ServiceWorkerRegistration or update them all?: https://github.com/w3c/ServiceWorker/issues/1189. This is being implemented. We need to help them by working on the corresponding part of the spec.postMessage() if there is no message event handler?: https://github.com/w3c/ServiceWorker/issues/1200, https://github.com/whatwg/dom/issues/371#issuecomment-378476612.ServiceWorker#postMessage: https://github.com/w3c/ServiceWorker/issues/1146.Client.navigate() reject on uncontrolled clients?: https://github.com/w3c/ServiceWorker/issues/1254.updatefound event in service worker context seems unreliable: https://github.com/w3c/ServiceWorker/issues/1255.createObjectURL: https://github.com/w3c/ServiceWorker/issues/1261.client.id persists across Discards/Reloads of the same page?: https://github.com/w3c/ServiceWorker/issues/1263.Client.postMessage() throwing for unloaded client is problematic: https://github.com/w3c/ServiceWorker/issues/1291.skipWaiting: https://github.com/w3c/ServiceWorker/issues/1295.update() should resolve to a registration, but browsers do different things: https://github.com/w3c/ServiceWorker/issues/1304.unregister()'s same-origin check ever fail?: https://github.com/w3c/ServiceWorker/issues/1305.TODO: Update this section.
addEventListener/removeEventListener for 'fetch' to called at anytime: https://github.com/w3c/ServiceWorker/issues/1195.Clients.matchAll() should exclude the current environment: https://github.com/w3c/ServiceWorker/issues/1037.Clients.matchAll(): https://github.com/w3c/ServiceWorker/issues/1036.self.clients on window and other worker globals: https://github.com/w3c/ServiceWorker/issues/955.navigation event: https://github.com/w3c/ServiceWorker/issues/1028.registration.ready promise: https://github.com/w3c/ServiceWorker/issues/770.Should have been done by this point.
If possible I'd like to discuss a proposal for a new API to help sites measure the performance of their FetchEvent handlers. It spans both the WebPerf and ServiceWorker API surface. I'm going to be discussing it in WebPerf on Friday, but I'd also like to discuss with the ServiceWorker group on Thursday if possible.
The explainer for this proposal can be found here:
https://github.com/wanderview/fetchevent-worker-timing/blob/master/explainer.md
Thanks!
@jatindersmann huge thank you for getting the agenda together. I realise I've been totally useless this time around.
If we get time, I'd like to discuss:
cache.match generating partial responses #913.And that's it, @jatindersmann already captured everything else 馃帀
Also: We didn't have a meet-up this year. Was that a bad thing?
One thing that came up in the Devices and Sensors WG and that I would like to discuss is geofencing and how it relates to service workers. Abstracting from that, essentially we are looking for some sort of mechanism ("Alarms API") to wake up a service worker based on an event (which could be a geofence being crossed but should not be limited to that) to do some work. Here is the related issue: https://github.com/w3c/geolocation-sensor/issues/22.
A couple of folks today have mentioned the complexity of testing service workers (@yoavweiss, @rniwa). We could introduce something specific for testing mode (we did something similar for background fetch), but maybe we can do something that would benefit regular users too?
@tomayac
we are looking for some sort of mechanism ("Alarms API") to wake up a service worker based on an event
Isn't this covered by https://w3c.github.io/ServiceWorker/#extensibility?
Isn't this covered by https://w3c.github.io/ServiceWorker/#extensibility?
@jakearchibald This is exactly what I would want to discuss. Or if there needs to be another primitive.
@tomayac could you write up an issue or DM me about this? I think I can answer this before Thursday, & it doesn't need to take up the time of the room. If it turns out it does need the room to discuss, at least we'll have the problem written up in a way that gets everyone caught up quickly.
A chat with @jakearchibald indeed removed the need to discuss this. It's covered by https://w3c.github.io/ServiceWorker/#extensibility.
Maybe we should discuss the cache API ordering issues:
https://github.com/w3c/ServiceWorker/issues/823#issuecomment-417788337
Action item: Now's the time to provide something like .ready for a specific registration.
.ready returns the same promise forevermore, which is confusing. Look at deprecating and doing something better.
I'd also like to discuss File Handling.
Action: start using the "decided" tag again.
F2F: Things linkedin would like this see:
unregister({ force: true }) - unclaims pages.skipWaiting({ deadline: 0 }) - kill the current active service worker regardless of events after this time.worker.skipWaiting() - please.Will things break if we fire controllerchange when the controller becomes null.
skipWaiting({ deadline: 0 }) is higher priority than unreg, but only just.
Instead of skipWaiting({ deadline }), how about serviceWorker.terminate() / self.terminate(). Also useful for tests. Or unsafelyDispose()? @wanderview is worried that it's a footgun.
EDIT by falken: Merged in some of the minutes into here.
AI for @jakearchibald create an issue for a rough static routes proposal.
Hello,
I was interested in Foreign Fetch, is something has been discussed to cover it's use cases?
Sorry to bother you and thanks for your attention :smile:
@DeltaEvo We did not end up discussing foreign fetch use cases at this meeting. Sorry.
@jakearchibald
FWIW, there's already a terminate() for web workers. Not sure if using the same name would be confusing or better. Probably confusing if we add service worker specific options.
It's unclear to me what exactly unregister({ force: true }) vs terminate() would mean. I believe the simplest MVP to accomplish what we (linkedin) want would be to add options to unregister() that allow immediately stopping any new events being sent to the service worker (even for already opened clients) and then terminating all associated workers (and their associated tasks) with some time guarantee. For instance:
// Immediately stop sending events to the service worker, all
// workers will be completely gone within 10 seconds.
navigator.serviceWorker.unregister({
unclaim: true,
terminateDeadline: 10000
});
I believe "unregister" is simpler, because it doesn't have to deal with transitioning events to another worker, which is needed if the active worker is terminated and there's a waiting/installed worker.
@asakusuma It'd be better to discuss on the dedicated issues, #1292 in this case. Can you repost it there?
@mattto good call, though I'm not actually sure which issue to move to. https://github.com/w3c/ServiceWorker/issues/614 or https://github.com/w3c/ServiceWorker/issues/1296 might also fit
@asakusuma Ah fair enough, we can continue here. As an implementor I feel I like the contract of unregister(force) or skipWaiting(timeout) over terminate(). Whether to declaim clients or evict the active worker is only indirectly related to whether the active worker is actually running. I can imagine some race conditions where we terminate the active worker but it gets woken up before activation can be triggered.
@mattto not sure I follow the theoretical race condition. How would the terminating worker get woken up if events are no longer being sent from the clients?
If we can table terminate for now, let's move the conversation to https://github.com/w3c/ServiceWorker/issues/1303
@jakearchibald any updates on https://github.com/w3c/ServiceWorker/issues/1026?
I wish service worker API can provide us the ability to bypass the service worker for certain cases. I have experienced the performance regression on the page load time when there are too many network requests.
Most helpful comment
A chat with @jakearchibald indeed removed the need to discuss this. It's covered by https://w3c.github.io/ServiceWorker/#extensibility.