Skip to content

Latest commit

 

History

History
47 lines (28 loc) · 1.51 KB

README.md

File metadata and controls

47 lines (28 loc) · 1.51 KB

Don't use this

This was a polyfill for the ServiceWorker specification. The idea was to enable exploration of the ServiceWorker API and the implications it has for users, applications and developer workflow.

Setup

Requirements

  • Node + npm
  • Chrome Canary

This may only work on OSX. Sorry.

Install

In theory:

$ npm install -g serviceworker && serviceworker

This will start an instance of Chrome Canary and a ServiceWorker proxy server. All requests from Canary will go through the proxy.

Point Canary to a (local) site, add some ServiceWorker stuff and off you go!

If you'd like a site to play with, try using the demo site in the site directory. You'll need to host the files with the domain workerdemo.dev – try using distra for this.

Architecture

Here's the general idea.

  1. Page requests something
  2. Chrome extension picks up the request and adds an X-Service-Worker-Request-Type header.
  3. Proxy follows the ServiceWorker spec to check if there's a worker registered for the page, and puts request through it.
  4. The worker generates a response or allows the request to go to the network
  5. ServiceWorker server returns response to page

There's also registration, install and activation steps. Check the spec for this.

Notes

  • This stuff (possibly) doesn't play nice with VPNs.
  • No HTTPS

Contributing

Submit an issue or pull request!