42 lines
1.4 KiB
HTML
42 lines
1.4 KiB
HTML
<!DOCTYPE html>
|
|
<title>Same-origin prerendering can access Indexed Database</title>
|
|
<meta name="timeout" content="long">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="/common/utils.js"></script>
|
|
<script src="/common/dispatcher/dispatcher.js"></script>
|
|
<script src="resources/indexedb-utils.js"></script>
|
|
<script src="../resources/utils.js"></script>
|
|
<script src="resources/utils.js"></script>
|
|
|
|
<body>
|
|
<script>
|
|
setup(() => assertSpeculationRulesIsSupported());
|
|
|
|
promise_test(async t => {
|
|
const db = await openIndexedDatabase(t);
|
|
assert_not_equals(db, null, 'Failed to open database.');
|
|
await addData(db, INITIATOR_KEY, INITIATOR_VALUE);
|
|
|
|
const {exec} = await create_prerendered_page(t);
|
|
|
|
const result = await exec(async () => {
|
|
await import_script_to_prerendered_page("indexedb-utils.js");
|
|
const db = await openIndexedDatabase();
|
|
|
|
await addData(db, PRERENDER_KEY, PRERENDER_VALUE);
|
|
const result = await readData(db, INITIATOR_KEY);
|
|
db.close();
|
|
return result;
|
|
});
|
|
|
|
assert_equals(
|
|
result, INITIATOR_VALUE,
|
|
'prerendering page should be able to read from Indexed DataBase');
|
|
const initiatorReadResult = await readData(db, PRERENDER_KEY);
|
|
assert_equals(
|
|
initiatorReadResult, PRERENDER_VALUE,
|
|
'prerendering page should be able to write to Indexed DataBase');
|
|
db.close();
|
|
}, 'prerendering page should be able to access Indexed DataBase')
|
|
</script>
|