From 38e77a73f8a648185a608ca02d087d0a67df12b2 Mon Sep 17 00:00:00 2001 From: Dominic Farolino Date: Fri, 26 Oct 2018 11:15:22 -0700 Subject: [PATCH] Change default classic script fetch options credentials mode This CL changes the default classic script fetch options credentials mode from "omit" to "same-origin", as per the recent spec change [1], and adds descendant worker credentials tests as a follow-up to said spec change and [2]. [1]: https://github.com/whatwg/html/pull/3656 [2]: https://github.com/web-platform-tests/wpt/issues/13426 R=domenic@chromium.org, kouhei@chromium.org, nhiroki@chromium.org Bug: 849101 Change-Id: I958f552f0ee91beb8aab98269f79a1eb219fb40a --- .../dedicated-worker-options-credentials.html | 256 ++++++++++++++++-- ...ed-worker-options-credentials.html.headers | 2 +- workers/modules/resources/credentials.py | 1 + ...e-origin-credentials-checker-worker.sub.js | 2 + ...-same-origin-credentials-checker-worker.js | 1 + ...e-origin-credentials-checker-worker.sub.js | 2 + ...-same-origin-credentials-checker-worker.js | 1 + 7 files changed, 240 insertions(+), 25 deletions(-) create mode 100644 workers/modules/resources/dynamic-import-remote-origin-credentials-checker-worker.sub.js create mode 100644 workers/modules/resources/dynamic-import-same-origin-credentials-checker-worker.js create mode 100644 workers/modules/resources/static-import-remote-origin-credentials-checker-worker.sub.js create mode 100644 workers/modules/resources/static-import-same-origin-credentials-checker-worker.js diff --git a/workers/modules/dedicated-worker-options-credentials.html b/workers/modules/dedicated-worker-options-credentials.html index 6603eb9be9b8f0..b7a23079b6b7a2 100644 --- a/workers/modules/dedicated-worker-options-credentials.html +++ b/workers/modules/dedicated-worker-options-credentials.html @@ -2,84 +2,292 @@ DedicatedWorker: WorkerOptions 'credentials' + diff --git a/workers/modules/dedicated-worker-options-credentials.html.headers b/workers/modules/dedicated-worker-options-credentials.html.headers index 6f53744a6ae77b..8da851ab736387 100644 --- a/workers/modules/dedicated-worker-options-credentials.html.headers +++ b/workers/modules/dedicated-worker-options-credentials.html.headers @@ -1,2 +1,2 @@ -Set-Cookie: COOKIE_NAME=COOKIE_VALUE +Set-Cookie: COOKIE_NAME=1 Access-Control-Allow-Credentials: true diff --git a/workers/modules/resources/credentials.py b/workers/modules/resources/credentials.py index 8f79563fb5ff9c..7623d849625db4 100644 --- a/workers/modules/resources/credentials.py +++ b/workers/modules/resources/credentials.py @@ -2,6 +2,7 @@ def main(request, response): cookie = request.cookies.first("COOKIE_NAME", None) response_headers = [("Content-Type", "text/javascript"), + ("Access-Control-Allow-Origin", request.headers.get("Origin")), ("Access-Control-Allow-Credentials", "true")] cookie_value = ''; diff --git a/workers/modules/resources/dynamic-import-remote-origin-credentials-checker-worker.sub.js b/workers/modules/resources/dynamic-import-remote-origin-credentials-checker-worker.sub.js new file mode 100644 index 00000000000000..fb4f6e067a89f7 --- /dev/null +++ b/workers/modules/resources/dynamic-import-remote-origin-credentials-checker-worker.sub.js @@ -0,0 +1,2 @@ +// Import a remote origin script. +import('http://{{domains[www1]}}:{{ports[http][0]}}/workers/modules/resources/credentials.py'); diff --git a/workers/modules/resources/dynamic-import-same-origin-credentials-checker-worker.js b/workers/modules/resources/dynamic-import-same-origin-credentials-checker-worker.js new file mode 100644 index 00000000000000..b267d3441005ac --- /dev/null +++ b/workers/modules/resources/dynamic-import-same-origin-credentials-checker-worker.js @@ -0,0 +1 @@ +import('./credentials.py'); diff --git a/workers/modules/resources/static-import-remote-origin-credentials-checker-worker.sub.js b/workers/modules/resources/static-import-remote-origin-credentials-checker-worker.sub.js new file mode 100644 index 00000000000000..41ef6a8de71ea2 --- /dev/null +++ b/workers/modules/resources/static-import-remote-origin-credentials-checker-worker.sub.js @@ -0,0 +1,2 @@ +// Import a remote origin script. +import 'http://{{domains[www1]}}:{{ports[http][0]}}/workers/modules/resources/credentials.py'; diff --git a/workers/modules/resources/static-import-same-origin-credentials-checker-worker.js b/workers/modules/resources/static-import-same-origin-credentials-checker-worker.js new file mode 100644 index 00000000000000..17755d9099f187 --- /dev/null +++ b/workers/modules/resources/static-import-same-origin-credentials-checker-worker.js @@ -0,0 +1 @@ +import './credentials.py';