Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

<!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>