Source code

Revision control

Copy as Markdown

Other Tools

<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/speculation-rules/prerender/resources/utils.js"></script>
<script src="/speculation-rules/prerender/resources/deferred-promise-utils.js"></script>
<body>
<script>
const params = new URLSearchParams(location.search);
// The main test page (restriction-shared-storage.https.html) loads the initiator page,
// then the initiator page will prerender itself with the `prerendering`
// parameter.
const isPrerendering = params.has('prerendering');
if (!isPrerendering) {
loadInitiatorPage();
} else {
const prerenderEventCollector = new PrerenderEventCollector();
const test_type = params.get('type');
let add_module_promise = null;
switch (test_type) {
case 'add_module':
add_module_promise = window.sharedStorage.worklet.addModule(
"shared-storage-worklet.js");
prerenderEventCollector.start(
add_module_promise, 'add_module');
break;
case 'run':
add_module_promise = window.sharedStorage.worklet.addModule(
"shared-storage-worklet.js");
prerenderEventCollector.start(
window.sharedStorage.run("test-prerender"), 'run');
break;
case 'select_url':
add_module_promise = window.sharedStorage.worklet.addModule(
"shared-storage-worklet.js");
// Run the URL selection operation
const fenced_frame_promise = window.sharedStorage.selectURL(
"test-prerender-selection",
[{
url: "/resources/blank.html?a=1"
},
{
url: "/resources/blank.html?a=2"
},
], {
resolveToConfig: true,
},
);
prerenderEventCollector.start(
fenced_frame_promise, 'select_url');
break;
default:
prerenderEventCollector.start(
window.sharedStorage.set('prerender', 'yes'),
'window.sharedStorage.set');
}
}
</script>
</body>