blob: bdfe40aed613594af5a985f5e9e6ff2c2c016318 [file] [log] [blame]
<!DOCTYPE html>
<meta charset=utf-8>
<title>Cache Storage: Verify Cache Storage on detached context</title>
<link rel="help" href="https://slightlyoff.github.io/ServiceWorker/spec/service_worker/#cache-storage">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../serviceworker/resources/test-helpers.js"></script>
<style>iframe { display: none; }</style>
<body>
Something
<script>
var frame_url = "resources/self-detach-iframe.html";
promise_test(function(t) {
return new Promise(function(resolve, reject) {
var f = with_iframe(frame_url);
return resolve(f);
}).then(function(frame) {
frame.contentWindow.postMessage('go', '*');
// Listen to reply from iframe.
var listener = new Promise(function(resolve, reject) {
window.onmessage = t.step_func(function(e) {
resolve(e.data);
});
});
// Since iframe doesn't receive response from Cache API, we limit the wait to 2 seconds.
var timeout = new Promise(resolve => {
setTimeout(function() {
resolve({status: 'timeout doc', keys: []});
}, 2000);
});
return Promise.race([listener, timeout]);
})
.then(function(data) {
assert_equals(data.keys.length, 0, 'Keys return empty from the cache since nothing is cached.');
assert_equals(data.status, 'timeout doc', 'Currently detached iframe doesn\'t receive the reply.');
});
});
</script>
</body>