tor-browser

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

clear-cache-partitioning.tentative.https.html (4072B)


      1 <!DOCTYPE html>
      2 <body>
      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="support/clear-cache-helper.sub.js"></script>
      8 <script>
      9 "use strict";
     10 
     11 const CLEAR_ORIGIN_CACHE = {
     12    clear: "cache",
     13 }
     14 
     15 promise_test(test => {
     16    const TEST_SITE = {
     17        iframe: {
     18            cache: true,
     19        }
     20    }
     21    return testCacheClear(test, [TEST_SITE, CLEAR_ORIGIN_CACHE, TEST_SITE], assert_not_equals);
     22 }, "same site data also gets cleared in iframe");
     23 
     24 promise_test(test => {
     25    const TEST_SITE = {
     26        iframe: {
     27            cache: true,
     28            crossSite: true,
     29        }
     30    }
     31    return testCacheClear(test, [TEST_SITE, CLEAR_ORIGIN_CACHE, TEST_SITE], assert_equals);
     32 }, "cross origin iframe data doesn't get cleared");
     33 
     34 promise_test(test => {
     35    const TEST_SITE = {
     36        cache: true,
     37    }
     38    const CLEAR_ORIGIN_CACHE = {
     39        iframe: {
     40            clear: "cache",
     41            crossSite: true,
     42        }
     43    }
     44    return testCacheClear(test, [TEST_SITE, CLEAR_ORIGIN_CACHE, TEST_SITE], assert_equals);
     45 }, "clear in cross origin iframe doesn't affect embedder");
     46 
     47 promise_test(test => {
     48    const TEST_SITE = {
     49        cache: true,
     50        subdomain: true,
     51    }
     52    return testCacheClear(test, [TEST_SITE, CLEAR_ORIGIN_CACHE, TEST_SITE], assert_equals);
     53 }, "clearing cache doesn't affect subdomain");
     54 
     55 promise_test(test => {
     56    const TEST_SITE = {
     57        iframe: {
     58            crossSite: true,
     59            cache: true,
     60        }
     61    }
     62    const TEST_SITE_CLEAR_IFRAME = {
     63        iframe: {
     64            crossSite: true,
     65            clear: "all",
     66        }
     67    }
     68    return testCacheClear(test, [TEST_SITE, TEST_SITE_CLEAR_IFRAME, TEST_SITE], assert_not_equals);
     69 }, "clear in cross origin iframe clears data from that iframe");
     70 
     71 promise_test(test => {
     72    const TEST_SITE = {
     73        cache: true
     74    };
     75    const TEST_SITE_CLEAR_IFRAME = {
     76        crossSite: true,
     77        iframe: {
     78            clear: "cache",
     79        }
     80    }
     81    return testCacheClear(test, [TEST_SITE, TEST_SITE_CLEAR_IFRAME, TEST_SITE], assert_equals);
     82 }, "clear in cross origin iframe doesn't clear unpartitioned data from that cross origin");
     83 
     84 promise_test(test => {
     85    const TEST_SITE = {
     86        crossSite: true,
     87        iframe: {
     88            cache: true,
     89        }
     90    }
     91 
     92    const TEST_SITE_CLEAR_IFRAME = {
     93        clear: "cache"
     94    };
     95    return testCacheClear(test, [TEST_SITE, TEST_SITE_CLEAR_IFRAME, TEST_SITE], assert_equals);
     96 }, "clear in unpartitioned context doesn't clear partitioned data");
     97 
     98 promise_test(test => {
     99    const TEST_SITE = {
    100        iframe: {
    101            crossSite: true,
    102            iframe: {
    103                cache: true,
    104            }
    105        }
    106    }
    107    return testCacheClear(test, [TEST_SITE, CLEAR_ORIGIN_CACHE, TEST_SITE], assert_equals);
    108 }, "clear in unpartitioned context doesn't clear double partitioned data with intermediate cross origin");
    109 
    110 promise_test(test => {
    111    const TEST_SITE = {
    112        cache: true,
    113    };
    114 
    115    const TEST_CLEAR_IFRAME_IFRAME = {
    116        iframe: {
    117            crossSite: true,
    118            iframe: {
    119                clear: "cache",
    120            }
    121        }
    122    }
    123    return testCacheClear(test, [TEST_SITE, TEST_CLEAR_IFRAME_IFRAME, TEST_SITE], assert_equals);
    124 }, "clear in double partitioned with intermediate cross origin context doesn't clear unpartitioned data");
    125 
    126 promise_test(test => {
    127    const TEST_SITE = {
    128        iframe: {
    129            crossSite: true,
    130            iframe: {
    131                cache: true,
    132            }
    133        }
    134    }
    135 
    136    const TEST_CLEAR_IFRAME_IFRAME = {
    137        iframe: {
    138            crossSite: true,
    139            iframe: {
    140                clear: "cache",
    141            }
    142        }
    143    }
    144    return testCacheClear(test, [TEST_SITE, TEST_CLEAR_IFRAME_IFRAME, TEST_SITE], assert_not_equals);
    145 }, "clear double partitioned context with intermediate cross origin clears that partitioned data");
    146 
    147 </script>
    148 </body>
    149 </html>