| import random |
| |
| import time |
| |
| body = u''' |
| onactivate = (e) => e.waitUntil(clients.claim()); |
| var resolve_wait_until; |
| var wait_until = new Promise(resolve => { |
| resolve_wait_until = resolve; |
| }); |
| onmessage = (e) => { |
| if (e.data == 'wait') |
| e.waitUntil(wait_until); |
| if (e.data == 'go') |
| resolve_wait_until(); |
| };''' |
| |
| def main(request, response): |
| headers = [(b'Cache-Control', b'no-cache, must-revalidate'), |
| (b'Pragma', b'no-cache'), |
| (b'Content-Type', b'application/javascript')] |
| |
| skipWaiting = u'' |
| if b'skip-waiting' in request.GET: |
| skipWaiting = u'skipWaiting();' |
| |
| return headers, u'/* %s %s */ %s %s' % (time.time(), random.random(), skipWaiting, body) |