tor-browser

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

same-origin-cookies.https.html (3083B)


      1 <!DOCTYPE html>
      2 <meta name="timeout" content="long">
      3 <script src="/resources/testharness.js"></script>
      4 <script src="/resources/testharnessreport.js"></script>
      5 <script src="/resources/testdriver.js"></script>
      6 <script src='/resources/testdriver-vendor.js'></script>
      7 <script src="/common/dispatcher/dispatcher.js"></script>
      8 <script src="/common/subset-tests.js"></script>
      9 <script src="/common/utils.js"></script>
     10 <script src="../resources/utils.js"></script>
     11 <script src="resources/utils.sub.js"></script>
     12 
     13 <!--Split test cases due to the use of timeouts in speculation rules test utilities.-->
     14 <meta name="variant" content="?1-1">
     15 <meta name="variant" content="?2-last">
     16 
     17 <script>
     18  setup(() => assertSpeculationRulesIsSupported());
     19 
     20  subsetTest(promise_test, async t => {
     21    await test_driver.delete_all_cookies();
     22 
     23    let executor = 'cookies.py';
     24    let agent = await spawnWindow(t, { executor });
     25    let response_cookies = await agent.getResponseCookies();
     26    let request_cookies = await agent.getRequestCookies();
     27    assert_equals(request_cookies["count"], undefined);
     28    assert_equals(request_cookies["type"], undefined);
     29    assert_equals(response_cookies["count"], "1");
     30    assert_equals(response_cookies["type"], "navigate");
     31 
     32    let nextUrl = agent.getExecutorURL({ executor, page: 2 });
     33    await agent.forceSinglePrefetch(nextUrl);
     34    await agent.navigate(nextUrl);
     35 
     36    response_cookies = await agent.getResponseCookies();
     37    request_cookies = await agent.getRequestCookies();
     38    assert_equals(request_cookies["count"], "1");
     39    assert_equals(request_cookies["type"], "navigate");
     40    assert_equals(response_cookies["count"], "2");
     41    assert_equals(response_cookies["type"], "prefetch");
     42 
     43    assert_prefetched(await agent.getRequestHeaders());
     44  }, "speculation rules based prefetch should use cookies for same origin urls.");
     45 
     46  // Regression test for https://crbug.com/1524338
     47  subsetTest(promise_test, async t => {
     48    await test_driver.delete_all_cookies();
     49 
     50    let executor = 'cookies.py';
     51    let agent = await spawnWindow(t, { executor });
     52    let response_cookies = await agent.getResponseCookies();
     53    let request_cookies = await agent.getRequestCookies();
     54    assert_equals(request_cookies["count"], undefined);
     55    assert_equals(request_cookies["type"], undefined);
     56    assert_equals(response_cookies["count"], "1");
     57    assert_equals(response_cookies["type"], "navigate");
     58 
     59    await agent.setReferrerPolicy("no-referrer");
     60 
     61    let nextUrl = agent.getExecutorURL({ executor, page: 2 });
     62    await agent.forceSinglePrefetch(nextUrl);
     63    await agent.navigate(nextUrl);
     64 
     65    response_cookies = await agent.getResponseCookies();
     66    request_cookies = await agent.getRequestCookies();
     67    assert_equals(request_cookies["count"], "1");
     68    assert_equals(request_cookies["type"], "navigate");
     69    assert_equals(response_cookies["count"], "2");
     70    assert_equals(response_cookies["type"], "prefetch");
     71 
     72    assert_prefetched(await agent.getRequestHeaders());
     73  }, "same origin prefetch with no referrer works when cookies are present.");
     74 </script>