96 lines
3 KiB
HTML
96 lines
3 KiB
HTML
<!DOCTYPE html>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/common/get-host-info.sub.js"></script>
|
|
<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
|
|
<body>
|
|
<script>
|
|
const worker = 'resources/request-reset-attributes-worker.js';
|
|
|
|
function wait(ms) {
|
|
return new Promise(resolve => step_timeout(resolve, ms));
|
|
}
|
|
|
|
promise_test(async (t) => {
|
|
const scope = 'resources/hello.txt?name=isReloadNavigation';
|
|
let frame;
|
|
let reg;
|
|
|
|
try {
|
|
reg = await service_worker_unregister_and_register(t, worker, scope);
|
|
await wait_for_state(t, reg.installing, 'activated');
|
|
frame = await with_iframe(scope);
|
|
assert_equals(frame.contentDocument.body.textContent,
|
|
'old: false, new: false');
|
|
await new Promise((resolve) => {
|
|
frame.onload = resolve;
|
|
frame.contentWindow.location.reload();
|
|
});
|
|
assert_equals(frame.contentDocument.body.textContent,
|
|
'old: true, new: false');
|
|
} finally {
|
|
if (frame) {
|
|
frame.remove();
|
|
}
|
|
if (reg) {
|
|
await reg.unregister();
|
|
}
|
|
}
|
|
}, 'Request.isReloadNavigation is reset with non-empty RequestInit');
|
|
|
|
promise_test(async (t) => {
|
|
const scope = 'resources/hello.html?name=isHistoryNavigation';
|
|
let frame;
|
|
let reg;
|
|
|
|
try {
|
|
reg = await service_worker_unregister_and_register(t, worker, scope);
|
|
await wait_for_state(t, reg.installing, 'activated');
|
|
frame = await with_iframe(scope);
|
|
assert_equals(frame.contentDocument.body.textContent,
|
|
'old: false, new: false');
|
|
// Use step_timeout(0) to ensure the history entry is created for Blink
|
|
// and WebKit. See https://bugs.webkit.org/show_bug.cgi?id=42861.
|
|
await wait(0);
|
|
await new Promise((resolve) => {
|
|
frame.onload = resolve;
|
|
frame.src = 'resources/hello.html?ignore';
|
|
});
|
|
await wait(0);
|
|
await new Promise((resolve) => {
|
|
frame.onload = resolve;
|
|
frame.contentWindow.history.go(-1);
|
|
});
|
|
assert_equals(frame.contentDocument.body.textContent,
|
|
'old: true, new: false');
|
|
} finally {
|
|
if (frame) {
|
|
frame.remove();
|
|
}
|
|
if (reg) {
|
|
await reg.unregister();
|
|
}
|
|
}
|
|
}, 'Request.isHistoryNavigation is reset with non-empty RequestInit');
|
|
|
|
promise_test(async (t) => {
|
|
const scope = 'resources/hello.txt?name=mode';
|
|
let frame;
|
|
let reg;
|
|
|
|
try {
|
|
reg = await service_worker_unregister_and_register(t, worker, scope);
|
|
await wait_for_state(t, reg.installing, 'activated');
|
|
frame = await with_iframe(scope);
|
|
assert_equals(frame.contentDocument.body.textContent,
|
|
'old: navigate, new: same-origin');
|
|
} finally {
|
|
if (frame) {
|
|
frame.remove();
|
|
}
|
|
if (reg) {
|
|
await reg.unregister();
|
|
}
|
|
}
|
|
}, 'Request.mode is reset with non-empty RequestInit when it\'s "navigate"');
|
|
</script>
|