diff --git a/html/dom/elements-metadata.js b/html/dom/elements-metadata.js index 1b23a27a33053e..c463e2409ecba6 100644 --- a/html/dom/elements-metadata.js +++ b/html/dom/elements-metadata.js @@ -18,6 +18,13 @@ var metadataElements = { defaultVal: "", invalidVal: "" }, + scope: "string", + updateViaCache: { + type: "enum", + keywords: ["imports", "all", "none"], + defaultVal: "imports", + invalidVal: "imports" + }, media: "string", nonce: "string", integrity: "string", diff --git a/service-workers/service-worker/registration-updateviacache.https.html b/service-workers/service-worker/registration-updateviacache.https.html new file mode 100644 index 00000000000000..0df401efcc6786 --- /dev/null +++ b/service-workers/service-worker/registration-updateviacache.https.html @@ -0,0 +1,222 @@ + +Service Worker: Registration-updateViaCache + + + + + diff --git a/service-workers/service-worker/resources/update-max-aged-worker-imported-script.py b/service-workers/service-worker/resources/update-max-aged-worker-imported-script.py new file mode 100644 index 00000000000000..3f7f88bafaac61 --- /dev/null +++ b/service-workers/service-worker/resources/update-max-aged-worker-imported-script.py @@ -0,0 +1,12 @@ +import time + +def main(request, response): + headers = [('Content-Type', 'application/javascript'), + ('Cache-Control', 'max-age=86400'), + ('Last-Modified', time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime()))] + + body = ''' + const importTime = {time}; + '''.format(time=time.time()) + + return headers, body diff --git a/service-workers/service-worker/resources/update-max-aged-worker.py b/service-workers/service-worker/resources/update-max-aged-worker.py new file mode 100644 index 00000000000000..0fc112d8b0f033 --- /dev/null +++ b/service-workers/service-worker/resources/update-max-aged-worker.py @@ -0,0 +1,28 @@ +import time +import json + +def main(request, response): + headers = [('Content-Type', 'application/javascript'), + ('Cache-Control', 'max-age=86400'), + ('Last-Modified', time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime()))] + + test = request.GET['test'] + + body = ''' + const mainTime = {time}; + const testName = {test}; + importScripts('update-max-aged-worker-imported-script.py'); + + addEventListener('message', event => {{ + event.source.postMessage({{ + mainTime, + importTime, + test: {test} + }}); + }}); + '''.format( + time=time.time(), + test=json.dumps(test) + ) + + return headers, body