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>