| <!DOCTYPE html> |
| <head> |
| <meta charset="utf-8"/> |
| <meta name="timeout" content="long"> |
| <title>SharedWorker: Partitioned Cookies</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/test-helpers.sub.js"></script> |
| <script src="/common/get-host-info.sub.js"></script> |
| <script src="support/shared-worker-partitioned-cookies-helper.js"></script> |
| </head> |
| |
| <body> |
| <script> |
| |
| promise_test(async () => { |
| // Set a Partitioned cookie. |
| document.cookie = |
| '__Host-partitioned=123; Secure; Path=/; SameSite=None; Partitioned;'; |
| assert_true(document.cookie.includes('__Host-partitioned=123')); |
| |
| // Set an unpartitioned cookie. |
| document.cookie = 'unpartitioned=456; Secure; Path=/; SameSite=None;'; |
| assert_true(document.cookie.includes('unpartitioned=456')); |
| |
| const worker = new SharedWorker('support/shared-worker-echo-cookies.js'); |
| const next_message = worker_message_generator(worker); |
| |
| worker.port.postMessage({type: 'test_message'}); |
| const msg1 = await next_message(); |
| assert_true(msg1.ok, 'Message passing'); |
| |
| worker.port.postMessage({type: 'echo_cookies_http'}); |
| const msg2 = await next_message(); |
| assert_true(msg2.ok, 'Get cookies'); |
| assert_true( |
| msg2.cookies.includes('__Host-partitioned'), |
| 'Can access partitioned cookie via HTTP'); |
| assert_true( |
| msg2.cookies.includes('unpartitioned'), |
| 'Can access unpartitioned cookie via HTTP'); |
| |
| worker.port.postMessage({type: 'echo_cookies_import'}); |
| const msg3 = await next_message(); |
| assert_true(msg3.ok, 'Get cookies'); |
| assert_true(msg3.cookies.includes( |
| '__Host-partitioned'), |
| 'Can access partitioned cookie via importScripts'); |
| assert_true( |
| msg3.cookies.includes('unpartitioned'), |
| 'Can access unpartitioned cookie via importScripts'); |
| |
| const popup = window.open( |
| new URL( |
| `./support/shared-worker-partitioned-cookies-3p-window.html?origin=${ |
| encodeURIComponent(self.location.origin)}`, |
| get_host_info().HTTPS_NOTSAMESITE_ORIGIN + self.location.pathname)); |
| await fetch_tests_from_window(popup); |
| }); |
| |
| </script> |
| </body> |