- From: Arvind Jain <arvind@google.com>
- Date: Wed, 21 May 2014 22:15:41 -0700
- To: Alex Russell <slightlyoff@google.com>
- Cc: Ilya Grigorik <igrigorik@google.com>, Kornel Lesiński <kornel@geekhood.net>, public-web-perf <public-web-perf@w3.org>, Jake Archibald <jakearchibald@google.com>
- Message-ID: <CAOYaDdNrjn744EAwjHnv46368SD_iFb4vWZgn4u7A8rJXZ6=iw@mail.gmail.com>
So I assume there's nothing specific to SW that we need to add to the spec. Is that right? On Mon, May 19, 2014 at 5:14 PM, Alex Russell <slightlyoff@google.com>wrote: > On Mon, May 19, 2014 at 11:13 AM, Ilya Grigorik <igrigorik@google.com>wrote: > >> +jake, alex >> >> On Fri, May 16, 2014 at 5:14 PM, Kornel Lesiński <kornel@geekhood.net>wrote: >> >>> >>> It's not immediately obvious how the beacons should be "seen" by Service >>> Workers and how UAs should interact with them, so it'd be nice if the spec >>> gave some guidance about this. >>> >>> My suggestion is: >>> >>> The Service Worker should be able to intercept beacon requests. The >>> implementation of service worker should forward these requests immediately. >>> Even when Service Worker is used, the UA should still be in charge of error >>> handling and when it decides to retry sending the beacon it should make >>> another request. >>> >> >> I think that's implicit. All network requests should pass through SW, not >> sure we need a special carve out? >> > > I'm pretty sure we *don't* need a special carve out. > > >> Basically, just passing the request through should be an ideal >>> implementation of the service worker. >>> >>> The alternative would be to make Service Worker responsible for queueing >>> and retrying beacon requests, which may seem like a good idea at first. >>> However, IMHO, that would be a sharp jump in difficulty for authors: >>> >>> - authors would have to reinvent UA's logic for managing network >>> traffic/priorities and strategy for optimal use of cellular radio power. >>> That's currently not even possible, and even if it was, that's a pretty >>> complex problem to throw at authors. >>> >>> - authors may use Service Workers for other reasons than interception of >>> beacons, so reliability of sendBeacon should not be negatively affected by >>> mere presence of a Service Worker. >>> >>> - having simple, useful default behavior without reliance on a service >>> worker is very useful, and doesn't stop authors from implementing >>> additional logic in the SW if they wish. >>> >> >> It seems like, at the very least, there should be some special flag on >> the beacon request, such that SW could identify beacon requests and carve >> out a special path for them? That would allow you to inherit default >> sendBeacon logic implemented by the browser. Alternatively, SW could >> synthesize a 200 response and then "roll its own" logic? >> > > SW's are additive. They aren't required for normal operation, either for > Beacon or for regular XHR-like requests. To the extent that they interact > with beacons, it'll need to be via lifetime extension for the onfetch event > that gets sent as a result of the beacon, but this isn't any different to > how other requests work. >
Received on Thursday, 22 May 2014 05:16:09 UTC