tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

require-corp-sw-from-none.https.html (3238B)


      1 <!doctype html>
      2 <html>
      3 <script src=/resources/testharness.js></script>
      4 <script src=/resources/testharnessreport.js></script>
      5 <script src="/common/get-host-info.sub.js"></script>
      6 <script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
      7 <script>
      8 const SCOPE = new URL(location.href).pathname;
      9 const SCRIPT =
     10  'resources/sw.js?' +
     11  `pipe=header(service-worker-allowed,${SCOPE})|` +
     12  'header(cross-origin-embedder-policy,require-corp)';
     13 
     14 function remote(path) {
     15  const REMOTE_ORIGIN = get_host_info().HTTPS_REMOTE_ORIGIN;
     16  return new URL(path, REMOTE_ORIGIN + '/html/cross-origin-embedder-policy/');
     17 }
     18 
     19 promise_test(async (t) => {
     20  const reg = await service_worker_unregister_and_register(t, SCRIPT, SCOPE);
     21  add_completion_callback(() => {
     22      reg.unregister();
     23  });
     24  await new Promise(resolve => {
     25    navigator.serviceWorker.addEventListener('controllerchange', resolve);
     26  });
     27 }, 'setting up');
     28 
     29 promise_test(async (t) => {
     30  await fetch('resources/nothing-same-origin-corp.txt', {mode: 'no-cors'});
     31 }, 'making a same-origin request for CORP: same-origin');
     32 
     33 promise_test(async (t) => {
     34  await fetch('/common/blank.html', {mode: 'no-cors'});
     35 }, 'making a same-origin request for no CORP');
     36 
     37 promise_test(async (t) => {
     38  await fetch('resources/nothing-cross-origin-corp.js', {mode: 'no-cors'});
     39 }, 'making a same-origin request for CORP: cross-origin');
     40 
     41 promise_test(async (t) => {
     42  await promise_rejects_js(
     43    t, TypeError,
     44    fetch(remote('resources/nothing-same-origin-corp.txt'), {mode: 'no-cors'}));
     45 }, 'making a cross-origin request for CORP: same-origin');
     46 
     47 promise_test(async (t) => {
     48  await promise_rejects_js(
     49    t, TypeError, fetch(remote('/common/blank.html'), {mode: 'no-cors'}));
     50 }, 'making a cross-origin request for no CORP');
     51 
     52 promise_test(async (t) => {
     53  await fetch(
     54    remote('resources/nothing-cross-origin-corp.js'),
     55    {mode: 'no-cors'});
     56 }, 'making a cross-origin request for CORP: cross-origin');
     57 
     58 promise_test(async (t) => {
     59  await promise_rejects_js(
     60    t, TypeError,
     61    fetch(remote('resources/nothing-same-origin-corp.txt?passthrough'),
     62      {mode: 'no-cors'}));
     63 }, 'making a cross-origin request for CORP: same-origin [PASS THROUGH]');
     64 
     65 promise_test(async (t) => {
     66  await fetch(remote('/common/blank.html?passthrough'), {mode: 'no-cors'});
     67 }, 'making a cross-origin request for no CORP [PASS THROUGH]');
     68 
     69 promise_test(async (t) => {
     70  await fetch(
     71    remote('resources/nothing-cross-origin-corp.js?passthrough'),
     72    {mode: 'no-cors'});
     73 }, 'making a cross-origin request for CORP: cross-origin [PASS THROUGH]');
     74 
     75 promise_test(async (t) => {
     76  await promise_rejects_js(
     77    t, TypeError, fetch(remote('/common/blank.html'), {mode: 'cors'}));
     78 }, 'making a cross-origin request with CORS without ACAO');
     79 
     80 promise_test(async (t) => {
     81  const URL = remote(
     82    '/common/blank.html?pipe=header(access-control-allow-origin,*)');
     83  await fetch(URL, {mode: 'cors'});
     84 }, 'making a cross-origin request with CORS');
     85 
     86 promise_test(async (t) => {
     87  const URL = remote('/fetch/api/resources/preflight.py?allow_headers=hoge');
     88  await fetch(URL, {mode: 'cors', headers: {'hoge': 'fuga'}});
     89 }, 'making a cross-origin request with CORS-preflight');
     90 
     91 </script>
     92 </html>