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