import time body = ''' 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 = [('Cache-Control', 'no-cache, must-revalidate'), ('Pragma', 'no-cache'), ('Content-Type', 'application/javascript')] skipWaiting = '' if 'skip-waiting' in request.GET: skipWaiting = 'skipWaiting();' return headers, '/* %s %s */ %s %s' % (time.time(), time.clock(), skipWaiting, body)